管理用ポートを外部に公開するセキュリティグループ

管理用・ファイル共有サービスのポートは、必要な送信元と管理された経路だけに許可してください。

説明

SSH、RDP、ファイル共有などのサービスを全 IPv4・IPv6 アドレスに許可すると、不要な外部接続の試行が増える可能性があります。ポート番号だけでは実際のサービスを確定できないため、待ち受けプロセス、プロトコル、業務上の必要性を併せて確認してください。

実際の外部アクセスには、アドレス、経路、ホストファイアウォールも関係します。ネットワーク公開範囲の縮小と、サービスの認証・暗号化の強化を併せて実施してください。

想定される影響

  • 到達可能な管理用・ファイル共有サービスが、パスワード推測や漏えいした認証情報を使うログイン試行や脆弱性を悪用する試行の対象になる可能性があります。
  • サービスが侵害されると、データ漏えいや内部資産へのアクセスにつながる可能性があります。

対処方法

  • 不要なルールを削除し、管理接続を実際の管理者アドレス、VPN、踏み台経路に限定してください。IPv4 と IPv6 の両方を確認してください。
  • サービスごとに必要なプロトコルとポートを確認し、暗号化されない旧式のプロトコルは対応する保護方式へ移行してください。ポート番号を変えるだけではサービスは暗号化されません。
  • 他の関連グループとホスト制御も確認し、必要な通信、認証、不要な接続の拒否をテストしてください。

例

実際の VPC ID を指定してください。この比較は FTP データポートが不要で、内部 HTTPS アプリケーションだけが必要な環境を想定しています。FTP サービスを HTTPS へ変換するコードではありません。後の例のアドレス範囲を実際のクライアントへ置き換え、サービス、証明書、インスタンスの関連付けは別途構成してください。

変更前

yaml
Parameters:
  myVPC:
    Type: AWS::EC2::VPC::Id
Resources:
  InstanceSecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: Expose admin port
      VpcId:
        Ref: myVPC
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: 20
          ToPort: 20
          CidrIp: 0.0.0.0/0

全 IPv4 アドレスから TCP 20 を許可します。FTP データ転送に使われることがあるポートですが、ルール自体が FTP や管理サービスを実行するわけではありません。

変更後

yaml
Parameters:
  myVPC:
    Type: AWS::EC2::VPC::Id
Resources:
  InstanceSecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: Allow only application traffic
      VpcId:
        Ref: myVPC
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: 443
          ToPort: 443
          CidrIp: 10.10.10.0/24

必要な内部アプリケーションの TCP 443 だけを許可します。ポートの許可だけでは TLS は構成されないため、実際のサービス設定も確認してください。

参考資料