セキュリティグループの送信ポート範囲を確認

送信 TCP・UDP ポートの範囲を、ワークロードが実際に必要とする通信に合わせて制限してください。

説明

必要以上に広い TCP・UDP の送信ポートを許可すると、未承認のサービスへ接続する機会が増えます。必要なポートが1つなら、FromPort と ToPort を同じ値にしてください。

連続する複数のポートが必要なサービスには、範囲の指定が適切です。すべてのルールを単一ポートにする必要はありません。ICMP では両フィールドがタイプとコードを表すため、ポート範囲とは分けて扱ってください。

想定される影響

  • 侵害されたワークロードが、不要に許可されたポートで通信やデータ送信を行うおそれがあります。
  • 要件を確認せずに範囲を縮小すると、正常なサービス接続が失敗する可能性があります。

対処方法

  • 接続先サービスのポートを確認し、必要な単一 TCP・UDP ポートまたは最小の範囲を許可してください。
  • 宛先と他の関連セキュリティグループの許可も制限してください。
  • 依存先への接続を試験してください。セキュリティグループはステートフルなので、許可された受信接続への応答のために全送信ポートを開く必要はありません。

例

SourceSG と必須の宛先を省略したポート設定の抜粋です。使用時には宛先 CIDR、プレフィックスリスト、セキュリティグループのいずれか1つを指定してください。

変更前

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

宛先を補うと、全 TCP ポートを許可します。

変更後

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

TCP 443 に範囲を絞ります。必要なサービスがそのポートを使うことを確認し、アプリケーションの TLS と認証も構成してください。

参考資料