説明
受信ルールで 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・認証設定も確認してください。