セキュリティグループで全アドレスからの SSH を許可

SSH 管理接続を必要な送信元に制限し、認証と鍵の管理を強化してください。

説明

0.0.0.0/0 または ::/0 からの TCP 22 を許可すると、そのアドレス体系の全送信元が SSH の許可対象になります。実際の接続には経路と SSH サービスも必要であり、このルールが SSH 認証を迂回するわけではありません。

SSH は必要な管理用アドレスやセキュリティグループからだけ許可してください。他の関連グループがポート 22 や全プロトコルを広く許可している場合、狭いルールを追加しても制限できません。

想定される影響

  • 到達可能な管理ポートに、スキャンや総当たりの試みが届くおそれがあります。
  • 漏えいした鍵や弱いアカウント・サービス設定があると、サーバー侵害につながる可能性があります。

対処方法

  • TCP 22 を承認された管理アドレスや適切なセキュリティグループに制限し、IPv4・IPv6 の両方を確認してください。
  • 不要な広いルールを削除してください。必要に応じて制限した踏み台や、必要な IAM 権限・エージェント・経路を備えた Session Manager を使ってください。
  • SSH 認証、鍵の失効・交換、アクセス記録を管理し、必要な管理接続が維持されることを試験してください。

例

VPC ID は実際の値に置き換えてください。インスタンスと経路は省略しています。デプロイ後に、以前の広いルールが残っていないことを確認してください。

変更前

yaml
Resources:
  InstanceSecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: SSH security group
      VpcId: vpc-0123456789abcdef0
  OpenSSHIngress:
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      GroupId: !Ref InstanceSecurityGroup
      IpProtocol: tcp
      FromPort: 20
      ToPort: 22
      CidrIpv6: "::/0"

全 IPv6 アドレスから TCP 20–22 を許可するため、SSH も対象になります。

変更後

yaml
Resources:
  InstanceSecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: SSH security group
      VpcId: vpc-0123456789abcdef0
  RestrictedSSHIngress:
    Type: AWS::EC2::SecurityGroupIngress
    Properties:
      GroupId: !Ref InstanceSecurityGroup
      IpProtocol: tcp
      FromPort: 22
      ToPort: 22
      CidrIp: 203.0.113.10/32

単一の IPv4 アドレスから TCP 22 だけを許可します。203.0.113.10/32 は文書用アドレスなので実際の管理元に置き換え、必要な IPv6 管理経路も別途制限してください。

参考資料