説明
EKS マネージドノードグループの作成時に EC2 SSH キーを指定し、接続元セキュリティグループを指定しないと、管理ポートが 0.0.0.0/0 に開かれます。Linux は SSH の 22 番、Windows は RDP の 3389 番ポートが対象です。実際の接続可否は、アドレス、ルートなどのネットワーク設定にも左右されます。
リモートアクセス自体が常に危険なわけではありませんが、許可範囲を明確にする必要があります。
想定される影響
- 管理ポートの露出拡大: ノードへのリモートアクセス範囲が必要以上に広がる可能性があります。
- 運用アクセス制御の弱まり: 承認済み管理ホストだけに接続を限定しにくくなります。
- 攻撃対象の拡大: 外部から到達できるノードが認証試行や脆弱性探索を受ける可能性があります。
対処方法
remote_access.source_security_group_idsに、承認済み管理ホストが使用するセキュリティグループ ID を指定してください。- リモートアクセスが不要な場合は削除を検討してください。
- 踏み台ホストや SSM Session Manager などの代替経路には、必要な IAM 権限と接続経路を用意し、変更計画にノードの置換が含まれるか確認してください。
例
リモートアクセス設定の抜粋です。参照するリソース、スケーリング設定、既存の EC2 キーペアを別途用意してください。変更後の management セキュリティグループは、承認済みの管理ホストに関連付けたグループを使用してください。
変更前
hcl
resource "aws_eks_node_group" "example" {
cluster_name = aws_eks_cluster.example.name
node_group_name = "example"
node_role_arn = aws_iam_role.example.arn
subnet_ids = aws_subnet.example[*].id
remote_access {
ec2_ssh_key = "my-rsa-key"
}
}
変更後
hcl
resource "aws_eks_node_group" "example" {
cluster_name = aws_eks_cluster.example.name
node_group_name = "example"
node_role_arn = aws_iam_role.example.arn
subnet_ids = aws_subnet.example[*].id
remote_access {
ec2_ssh_key = "my-rsa-key"
source_security_group_ids = [aws_security_group.management.id]
}
}
変更前はキーだけを指定し、管理ポートの接続元を制限していません。変更後は管理ホストのセキュリティグループ ID をリストで指定します。実際のホスト接続と、他のセキュリティグループルールも確認してください。