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

影響

エンドポイントプライベートアクセスを実装する際には、クラスターのコントロールプレーンへの外部アクセスを誤ってブロックしないように、すべての必要なネットワークが許可リスト (ホワイトリスト) に含まれていることを確認してください。
制限事項: IP許可範囲はプライベートAPIサーバーエンドポイントには適用できず、パブリックAPIサーバーにのみ適用されます。可用性ゾーンは現在、特定のリージョンでサポートされています。Azure Private Linkサービスの制限はプライベートクラスターに適用されます。プライベートクラスターではAzure DevOpsのMicrosoftホストエージェントはサポートされていません。セルフホストエージェントの使用を検討してください。プライベートAKSでAzure Container Registryを有効にする必要があるお客様は、Container Registry仮想ネットワークをエージェントクラスター仮想ネットワークとピアリングする必要があります。

監査

次をenabled: trueに設定してください:
export CLUSTER_NAME=<your cluster name>
export RESOURCE_GROUP=<your resource group name>
az aks show --name ${CLUSTER_NAME} --resource-group ${RESOURCE_GROUP} 
--query "apiServerAccessProfile.enablePublicFqdn"
    
このコマンドは、AKSクラスターのapiServerAccessProfile内のenablePublicFqdnプロパティを照会します。出力がtrueの場合、endpointPublicAccessが有効になっており、インターネットからAKSクラスターのAPIサーバへのアクセスが可能です。falseの場合、endpointPublicAccessは無効であり、APIサーバはインターネット経由でアクセスできません。これはプライベートクラスターの一般的な構成です。
az aks show --name ${CLUSTER_NAME} --resource-group ${RESOURCE_GROUP} 
--query "apiServerAccessProfile.enablePrivateCluster"
このコマンドは、AKSクラスターのapiServerAccessProfile内のenablePrivateClusterプロパティを照会します。出力がtrueの場合、endpointPrivateAccessが有効であり、AKSクラスターのAPIサーバがプライベートエンドポイント経由でのみアクセス可能に設定されていることを示します。出力がfalseの場合、クラスターはプライベートアクセス専用に設定されておらず、他の設定によってはAPIサーバがインターネット経由でアクセス可能である可能性があります。
次の値がnullでないことを確認してください。
az aks show --name ${CLUSTER_NAME} --resource-group ${RESOURCE_GROUP} 
--query "apiServerAccessProfile.authorizedIpRanges"
このコマンドは、AKSクラスターのapiServerAccessProfile内のauthorizedIpRangesプロパティを照会します。出力には、AKSクラスターのAPIサーバにインターネット経由でアクセスすることが許可されているIP範囲が一覧表示されます。リストが空の場合、制限がないことを意味し、他のネットワークおよびセキュリティ設定が許可する限り、任意のIPがAKSクラスターのAPIサーバにアクセスできます。

修復

KubernetesAPIサーバへのプライベートエンドポイントアクセスを有効にすることで、ノードとAPIサーバ間のすべての通信がVPC内に留まります。また、インターネットからAPIサーバにアクセスできるIPアドレスを制限したり、APIサーバへのインターネットアクセスを完全に無効にすることもできます。これを考慮して、AKS CLIを使用してクラスターを更新し、プライベートエンドポイントアクセスが有効になっていることを確認できます。
パブリックエンドポイントアクセスを有効にする場合、許可されるCIDRブロックのリストを設定する必要があります。これにより、インターネットからのアクセスが制限されます。CIDRブロックを指定しない場合、パブリックAPIサーバエンドポイントはデフォルトで['0.0.0.0/0']に設定され、すべてのIPアドレスからのリクエストを受信および処理できるようになります。
たとえば、次のコマンドは、Kubernetes APIへのプライベートアクセスと、単一のIPアドレス (/32 CIDRサフィックスに注意) からのインターネット経由の限定的なパブリックアクセスを有効にします。