説明
EKS マネージドノードグループの作成時に RemoteAccess.Ec2SshKey を指定し、SourceSecurityGroups を省略すると、管理ポートが 0.0.0.0/0 に開かれます。Linux ノードでは SSH の 22、Windows ノードでは RDP の 3389 が対象です。実際のインターネット到達性には、アドレス、経路、他のネットワーク条件も関係します。
運用ノードへの直接リモート接続は、必要な場合だけに制限してください。接続元を絞っても、OS の認証やノード・クラスターの権限管理は必要です。
想定される影響
- 到達可能な管理ポートが、外部スキャンや認証への攻撃の対象になるおそれがあります。
- ノードが侵害されると、そのノードのデータ、認証情報、権限に応じてワークロードやクラスターへ影響が広がる可能性があります。
対処方法
- リモート接続が必要な場合は、
SourceSecurityGroupsに承認された管理用グループを指定し、実際の管理ホストをそのグループに関連付けてください。 - 直接接続が不要ならリモートアクセス設定を削除し、必要なエージェント、IAM 権限、通信経路を備えた Session Manager などの管理方法を検討してください。
- CloudFormation でリモートアクセス属性を変更すると、ノードグループの置き換えが必要です。ワークロードの容量と移行を計画し、接続範囲を試験してください。
例
クラスター、ノードロール、サブネット、VpcId は実際の環境に合わせて用意してください。Ec2SshKey: ED25519 の値はアルゴリズムの指定ではなく、既存の EC2 キーペア名である必要があります。
変更前
yaml
Resources:
EKSNodegroup:
Type: AWS::EKS::Nodegroup
Properties:
ClusterName: prod
NodeRole: arn:aws:iam::012345678910:role/eksInstanceRole
Subnets:
- subnet-6782e71e
RemoteAccess:
Ec2SshKey: ED25519
キーペアだけを指定し、管理アクセスの送信元グループを制限していません。
変更後
yaml
Resources:
SSHAccessToNodeSG:
Type: AWS::EC2::SecurityGroup
Properties:
VpcId: !Ref VpcId
GroupDescription: ssh access to eks workers
EKSNodegroup:
Type: AWS::EKS::Nodegroup
Properties:
ClusterName: prod
NodeRole: arn:aws:iam::012345678910:role/eksInstanceRole
Subnets:
- subnet-6782e71e
RemoteAccess:
Ec2SshKey: ED25519
SourceSecurityGroups:
- !Ref SSHAccessToNodeSG
指定のグループを使う管理ホストからの接続に制限します。グループを作成するだけではホストは関連付けられないため、関連付けとネットワーク経路を別途準備してください。