セキュリティグループの送信先が全アドレス

送信先を必要な範囲に制限し、他の関連セキュリティグループの許可も確認してください。

説明

送信先が 0.0.0.0/0 または ::/0 の場合、そのアドレス体系のすべての宛先が許可対象になります。プロトコルとポートは同じルールの設定に従い、実際の接続にはルーティングなどの条件も必要です。

不要に広い宛先許可は、マルウェアの通信や未承認の外部接続を制限しにくくします。必要な外部サービスと更新経路を把握してから範囲を決めてください。セキュリティグループはステートフルなので、許可された受信要求への応答に別の送信ルールは不要です。

想定される影響

  • 侵害されたワークロードが、許可されたプロトコルやポートで外部接続やデータ送信を行うおそれがあります。
  • 一律に制限すると、正常な外部サービス接続が途絶える場合があります。

対処方法

  • 必要な宛先 CIDR、対応するセキュリティグループ参照、プレフィックスリストを使い、ポートも制限してください。
  • 関連付けられた全グループと IPv4・IPv6 のルールを確認してください。狭いルールを追加しても、既存の広い許可は消えません。
  • 外部依存先と必要な接続を試験してください。新しいグループの作成時に送信ルールを省略すると、既定の全許可が追加される場合があります。

例

VPC を省略しているため、そのリージョンにデフォルト VPC が必要です。宛先は実際の要件に合わせて変更してください。

変更前

yaml
Resources:
  InstanceSecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: Allow http to client host
      SecurityGroupEgress:
        - IpProtocol: tcp
          FromPort: 80
          ToPort: 80
          CidrIp: 0.0.0.0/0

すべての IPv4 宛先に TCP 80 を許可します。全プロトコルの許可ではありません。

変更後

yaml
Resources:
  InstanceSecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: Allow http to client host
      SecurityGroupEgress:
        - IpProtocol: tcp
          FromPort: 80
          ToPort: 80
          CidrIp: 192.0.2.0/24

このルールの宛先を絞ります。192.0.2.0/24 は文書用の範囲なので、実際に許可する範囲に置き換えてください。

参考資料