説明
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 管理経路も別途制限してください。