プロファイル適用性: レベル 1 - クラスター / コントロールプレーン
エンドポイントプライベートアクセスを有効にして、クラスターのコントロールプレーンへのアクセスを許可されたIPアドレスのリストに制限します。この対策は、クラスターのコントロールプレーンにアクセスできるIPアドレスの制限範囲を指定し、トランスポート層セキュリティ
(TLS) と認証と組み合わせることで、インターネットからのアクセスを保護します。Kubernetes Engineはどこからでもクラスターを管理する機能を提供しますが、管理下にある特定のIPアドレスにアクセスをさらに制限することを選択することもできます。許可されたネットワークは、外部アクセスを指定されたアドレスに制限することで、潜在的な外部からの攻撃からクラスターを保護し、内部の脅威からは、マスター証明書が組織外に誤って漏洩した場合でもアクセスを防ぐことでセキュリティを強化します。エンドポイントプライベートアクセスを設定する際には、クラスターのコントロールプレーンへの正当なアクセスを意図せずにブロックしないように、必要なすべてのIPアドレスを許可リストに含めるよう注意が必要です。
影響
エンドポイントプライベートアクセスを実装する際は、クラスターのコントロールプレーンへのアクセスをブロックしないように、必要なすべてのネットワークを許可リストに含めてください。
監査
次の設定がenabled: trueであることを確認してください:
export CLUSTER_NAME=<your cluster name>
aws eks describe-cluster --name ${CLUSTER_NAME} --query "cluster.resourcesVpcConfig.endpointPublicAccess"
aws eks describe-cluster --name ${CLUSTER_NAME} --query "cluster.resourcesVpcConfig.endpointPrivateAccess"
次の項目が null でないことを確認します。
export CLUSTER_NAME=<your cluster name>
aws eks describe-cluster --name ${CLUSTER_NAME} --query "cluster.resourcesVpcConfig.publicAccessCidrs"
修復
プライベートエンドポイントアクセスを有効にして、ノードとAPIサーバ間のすべての通信がVPC内に留まるようにします。これにより、インターネットからAPIサーバにアクセスできるIPアドレスを制限したり、インターネットアクセスを完全に無効にしたりすることができます。
例えば、次のコマンドを使用してプライベートアクセスと限定的なパブリックアクセスを有効にします。
aws eks update-cluster-config --region $AWS_REGION --name $CLUSTER_NAME --resources-vpc-config endpointPrivateAccess=true, endpointPublicAccess=true, publicAccessCidrs="203.0.113.5/32"
注: CIDRブロックには予約済みアドレスを含めることはできません。詳細については、EKSクラスターエンドポイントのドキュメントを参照してください。
