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

受信サービスに必要なプロトコル、ポート、接続元だけを許可してください。

説明

受信ルールで IpProtocol: "-1" を使うと、指定した送信元に全プロトコルを許可します。ポート値ではこの許可を狭められないため、アクセスが不要なサービスまで接続対象になる可能性があります。

実際のアクセスは、送信元、経路、待ち受けサービス、他のネットワーク制御によって決まります。信頼された内部リソース間などで広い許可が必要な場合も、その範囲と目的を確認してください。

想定される影響

  • 許可された送信元から、意図しないサービスへの接続や脆弱性への攻撃が可能になるおそれがあります。
  • 許可元のリソースが侵害されると、他のサービスへの攻撃経路になる可能性があります。

対処方法

  • 必要なプロトコルと TCP・UDP ポート、または ICMP のタイプ・コードだけを許可してください。
  • 送信元 CIDR やセキュリティグループを、接続が必要なクライアントに制限してください。
  • 関連グループの許可は併せて適用されます。不要な広いルールを削除し、正常な接続とサービスの認証・権限を確認してください。

例

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

変更前

yaml
Resources:
  InboundRule:
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      IpProtocol: "-1"
      FromPort: 0
      ToPort: 65535
      GroupId: !GetAtt TargetSG.GroupId

送信元を補うと全プロトコルを許可します。ポート値では -1 を制限できません。

変更後

yaml
Resources:
  InboundRule:
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      IpProtocol: tcp
      FromPort: 443
      ToPort: 443
      GroupId: !GetAtt TargetSG.GroupId

TCP 443 だけを許可します。必要なクライアントと、サービスの TLS・認証設定も確認してください。

参考資料