セキュリティグループで送信を無制限に許可

無制限の送信許可を確認し、必要な宛先、プロトコル、ポートだけを残してください。

説明

IpProtocol: "-1" と 0.0.0.0/0 または ::/0 を併せて許可すると、そのアドレス体系の全宛先に全プロトコルを許可します。経路などの条件も満たすと、侵害されたワークロードの外部接続やデータ送信を制限しにくくなります。

実際の外部依存先を把握し、必要な許可を明示してください。狭いルールを追加しても、別のルールや関連グループの広い許可は取り消されません。

想定される影響

  • 悪意のあるプロセスが、制御サーバーや未承認の外部サービスに接続するおそれがあります。
  • 一律に削除すると、更新、ログ配信、業務サービスの通信が途絶える可能性があります。

対処方法

  • 宛先、プロトコル、ポートを実際の要件に制限し、すべての関連グループを確認してください。
  • 新しいグループで送信ルールを省略すると、既定の全許可が追加される場合があります。デプロイ後の実際のルールを確認してください。
  • 必要なプロキシ、ファイアウォール、VPC エンドポイントを使い、正常な接続を試験してください。許可された受信接続への応答は、セキュリティグループの状態追跡で許可されます。

例

VPC を省略しているため、そのリージョンにデフォルト VPC が必要です。グループの説明文は実際のルールを制限しません。

変更前

yaml
Resources:
  InstanceSecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: Enable SSH access via port 22
      SecurityGroupEgress:
        - IpProtocol: "-1"
          CidrIp: 0.0.0.0/0

すべての IPv4 宛先に全プロトコルを許可します。

変更後

yaml
Resources:
  InstanceSecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: Enable SSH access via port 22
      SecurityGroupEgress:
        - IpProtocol: tcp
          FromPort: 443
          ToPort: 443
          CidrIp: 10.0.0.0/8

このルールは 10.0.0.0/8 宛ての TCP 443 に制限します。依然として広いプライベート範囲なので、必要な宛先に絞り、TLS と認証も別途確認してください。

参考資料