説明
VPCのデフォルトセキュリティグループは、グループを指定しないリソースに関連付けられることがあります。既定の受信ルールは同じグループ内のリソース間通信を許可し、既定の送信ルールはすべての宛先を許可します。既定の受信ルール自体がインターネットからの接続を許可するわけではありません。
この共有グループに広い許可を追加すると、後から関連付けるリソースにも適用されます。用途別の専用グループを使い、使用しなくなったデフォルトグループのルールを削除することで、アクセス範囲を管理しやすくなります。
想定される影響
- 不要な受信ルールによって、内部サービスや管理ポートへの接続試行が増える可能性があります。
- 広い送信許可は、侵害されたリソースが外部と通信する経路を増やす可能性があります。
対処方法
- デフォルトグループを使うリソースと必要な通信を確認し、制限した専用グループを先に構成して関連付けてください。
- 必要な接続を確認した後、デフォルトグループの不要な受信・送信ルールを削除してください。デフォルトグループ自体は削除できません。
- 新しいセキュリティグループで送信ルールを省略すると、すべての宛先を許可するルールが追加されます。必要な宛先とプロトコルを明示し、実際のルールを確認してください。
例
最初の例は、IDで指定した既存のデフォルトグループに広いSSHルールを追加します。次の例は必要なSSH送信元と宛先だけを許可する専用グループを作成します。実際のVPCと承認済みCIDRを指定し、他に必要な通信も確認してください。専用グループの作成だけでは既存の関連付けやデフォルトグループのルールは変わりません。
変更前
yaml
Parameters:
DefaultSecurityGroupId:
Type: AWS::EC2::SecurityGroup::Id
Resources:
SharedSSHIngress:
Type: AWS::EC2::SecurityGroupIngress
Properties:
GroupId: !Ref DefaultSecurityGroupId
IpProtocol: tcp
FromPort: 22
ToPort: 22
CidrIp: 0.0.0.0/0
SharedSSHEgress:
Type: AWS::EC2::SecurityGroupEgress
Properties:
GroupId: !Ref DefaultSecurityGroupId
IpProtocol: tcp
FromPort: 22
ToPort: 22
CidrIp: 0.0.0.0/0
同じデフォルトグループを共有するすべてのリソースに影響する可能性があります。実際の外部接続には、経路、アドレス、他のネットワーク制御も関係します。
変更後
yaml
Parameters:
VpcId:
Type: AWS::EC2::VPC::Id
AdminCidr:
Type: String
SSHDestinationCidr:
Type: String
Resources:
DedicatedSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: Restricted SSH connectivity
VpcId: !Ref VpcId
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: 22
ToPort: 22
CidrIp: !Ref AdminCidr
SecurityGroupEgress:
- IpProtocol: tcp
FromPort: 22
ToPort: 22
CidrIp: !Ref SSHDestinationCidr
専用グループを関連付けて通信をテストしてから、従来のデフォルトグループとの関連付けと不要なルールを整理してください。セキュリティグループはステートフルであり、許可された接続への応答に逆方向のルールを追加する必要はありません。