ビュー:
プロファイル適用性: レベル1 - クラスター / コントロールプレーン
エンドポイントPrivate Accessを有効にして、クラスターのコントロールプレーンへのアクセスを許可されたIPの許可リストのみに制限します。
許可されたネットワークは、クラスターのコントロールプレーンにアクセスを許可するIPアドレスの範囲を制限する方法です。Kubernetes Engineは、パブリックインターネットからクラスターのコントロールプレーンへの安全なアクセスを提供するために、Transport Layer Security (TLS) と認証の両方を使用します。これにより、どこからでもクラスターを管理する柔軟性が得られますが、制御可能なIPアドレスのセットにアクセスをさらに制限したい場合があります。この制限は、許可されたネットワークを指定することで設定できます。
許可されたネットワークへのアクセスを制限することで、コンテナクラスターに追加のセキュリティメリットを提供できます。
  • Better protection from outsider attacks: 承認されたネットワークは、指定した特定のアドレスセットに外部アクセスを制限することにより、追加のセキュリティ層を提供します。これにより、クラスターの認証または認可メカニズムに脆弱性がある場合に、クラスターへのアクセスを保護するのに役立ちます。
  • Better protection from insider attacks: 許可されたネットワークは、会社の敷地内からのマスター証明書の偶発的な漏洩からクラスターを保護するのに役立ちます。漏洩した証明書がクラウドサービス外および許可されたIP範囲外 (例えば、会社外のアドレスから) で使用された場合でも、アクセスは拒否されます。
注意
注意
デフォルトでは、エンドポイントパブリックアクセスは無効になっています。

影響

Endpoint Private Accessを実装する際には、意図せずにクラスターのコントロールプレーンへの外部アクセスをブロックしないように、すべての必要なネットワークが許可リスト (ホワイトリスト) に含まれていることを確認してください。

監査

次をenabled: trueに設定してください:
export CLUSTER_NAME=<your cluster name>
export REGION_CODE=<your region>
aws eks describe-cluster \
--name "${CLUSTER_NAME}" \
--region "${REGION_CODE}" \
--query \
"cluster.resourcesVpcConfig.{endpointPrivateAccess:endpointPrivateAccess,endpointPublicAccess:endpointPublicAccess,publicAccessCidrs:publicAccessCidrs}" \
--output json
出力を確認:
"endpointPrivateAccess": true,
"endpointPublicAccess": true
publicAccessCidrsが有効なIPアドレスに設定されており、0.0.0.0/0に設定されていないことを確認してください。
"publicAccessCidrs": [
"203.0.113.5/32"
]

修復

KubernetesAPIサーバーへのプライベートエンドポイントアクセスを有効にすることで、ノードとAPIサーバー間のすべての通信がVPC内に留まります。また、インターネットからAPIサーバーにアクセスできるIPアドレスを制限したり、APIサーバーへのインターネットアクセスを完全に無効にすることもできます。
これを念頭に置いて、AWS CLIを使用してクラスターを更新し、プライベートエンドポイントアクセスが有効になっていることを確認できます。
パブリックエンドポイントアクセスを有効にする場合、許可されるCIDRブロックのリストを設定する必要があります。これにより、インターネットからのアクセスが制限されます。CIDRブロックを指定しない場合、パブリックAPIサーバエンドポイントはデフォルトで['0.0.0.0/0']に設定され、すべてのIPアドレスからのリクエストを受信して処理することができます。
例えば、次のコマンドは、Kubernetes APIへのプライベートアクセスを有効にし、単一のIPアドレスからインターネット経由での限定的なパブリックアクセスを可能にします (/32 CIDRサフィックスに注意してください):
aws eks update-cluster-config \
--region $REGION_CODE \
--name $CLUSTER_NAME \
--resources-vpc-config endpointPrivateAccess=true,endpointPublicAccess=true,publicAccessCidrs="203.0.113.5/32"
注意
注意
指定されたCIDRブロックには予約済みアドレスを含めることはできません。指定できるCIDRブロックの最大数があります。詳細については、参考セクションのEKSサービスクォータリンクを参照してください。より詳細な情報については、参考セクションのEKSクラスターエンドポイントドキュメントリンクを参照してください。