セキュリティグループの送信で全プロトコルを許可

セキュリティグループの送信プロトコルを、ワークロードが実際に必要とする通信に制限してください。

説明

送信ルールの IpProtocol: "-1" は、指定された宛先に全プロトコルを許可します。ポート値を併記しても、そのルールの TCP・UDP ポートは制限できません。実際の通信には宛先とネットワーク経路も必要です。

送信は実際に使うプロトコルとポートに制限してください。複数のセキュリティグループが関連付けられている場合、それぞれの許可が併せて適用されます。

想定される影響

  • 侵害されたプロセスや誤動作するプロセスが、不要なプロトコルで通信するおそれがあります。
  • データ送信や未承認サービスへの接続を、ネットワークで制限しにくくなる可能性があります。

対処方法

  • 必要な tcp、udp などのプロトコルを指定し、該当するポートや ICMP のタイプ・コードを制限してください。
  • 宛先と他の関連グループのルールも確認し、不要な全プロトコルの許可を削除してください。
  • 必要な外部接続を確認しながら変更してください。セキュリティグループはステートフルなので、許可された受信接続への応答のために送信を全許可する必要はありません。

例

プロトコルとポートだけを比較する抜粋です。SourceSG の定義と必須の宛先は省略しています。実際のルールには宛先 CIDR、プレフィックスリスト、セキュリティグループのいずれか1つを指定してください。

変更前

yaml
Resources:
  OutboundRule:
    Type: AWS::EC2::SecurityGroupEgress
    Properties:
      IpProtocol: "-1"
      FromPort: 0
      ToPort: 65535
      GroupId: !GetAtt SourceSG.GroupId

宛先を補うと全プロトコルを許可します。表示されたポート範囲では -1 を制限できません。

変更後

yaml
Resources:
  OutboundRule:
    Type: AWS::EC2::SecurityGroupEgress
    Properties:
      IpProtocol: tcp
      FromPort: 443
      ToPort: 443
      GroupId: !GetAtt SourceSG.GroupId

TCP 443 に制限します。必要な宛先とアプリケーションの TLS 検証も別途構成してください。

参考資料