説明
セキュリティグループのインバウンド規則では、0.0.0.0/0 はすべての IPv4 アドレス、::/0 はすべての IPv6 アドレスを許可する指定です。実際にインターネットから到達できるかは、パブリックアドレス、経路、ほかのネットワーク制御にも依存します。公開ウェブサービスと管理用・内部用サービスのアクセス要件を区別してください。
想定される影響
外部アクセスが不要なサービスにインターネットから到達できる場合、不要な接続試行やサービスの脆弱性を悪用する攻撃にさらされるおそれがあります。
対処方法
公開する必要がないサービスでは、規則の送信元を承認済みクライアントの CIDR や適切なセキュリティグループの参照に制限してください。必要なポートだけを許可し、IPv4 と IPv6 の規則を両方確認してください。変更後は正規クライアントの接続と不要なアクセスの遮断を試験してください。
例
内部クライアントだけが使う HTTP サービスの例です。myVPC に実際の VPC ID、AllowedClientCidr に承認済みクライアントの IPv4 範囲を指定します。セキュリティグループとリソースの関連付けは別途設定します。
変更前
yaml
Parameters:
myVPC:
Type: AWS::EC2::VPC::Id
Resources:
InstanceSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: HTTP
VpcId: !Ref myVPC
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: 80
ToPort: 80
CidrIp: 0.0.0.0/0
変更後
yaml
Parameters:
myVPC:
Type: AWS::EC2::VPC::Id
AllowedClientCidr:
Type: String
Resources:
InstanceSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: HTTP
VpcId: !Ref myVPC
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: 80
ToPort: 80
CidrIp: !Ref AllowedClientCidr