ビュー:
プロファイル適用性: レベル2
KubernetesAPIへのアクセスが不要な場合は、ノードネットワーク外からのアクセスを無効にしてください。
プライベートクラスターでは、マスターノードにはプライベートエンドポイントとパブリックエンドポイントの2つのエンドポイントがあります。プライベートエンドポイントは、マスターの仮想ネットワーク内の内部ロードバランサーの背後にあるマスターの内部IPアドレスです。ノードはプライベートエンドポイントを使用してマスターと通信します。パブリックエンドポイントは、マスターの仮想ネットワーク外からKubernetes APIにアクセスできるようにします。
KubernetesAPIは機密性の高い操作を行うために認証されたトークンを必要としますが、脆弱性によりKubernetesが無制限のアクセスで公開される可能性があります。さらに、攻撃者は現在のクラスターとKubernetesAPIのバージョンを特定し、それが攻撃に対して脆弱かどうかを判断できるかもしれません。必要でない限り、パブリックエンドポイントを無効にすることで、そのような脅威を防ぎ、攻撃者がKubernetesAPIに対して攻撃を行うためにはマスターの仮想ネットワーク上にいる必要があります。

監査

次の項目が'enabled: false'であることを確認してください:
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サーバはインターネット経由でアクセスできません。これはプライベートクラスターの一般的な構成です。
次の項目が'enabled: true'であることを確認してください:
az aks show --name ${CLUSTER_NAME} --resource-group ${RESOURCE_GROUP} 
--query "apiServerAccessProfile.enablePrivateCluster"
このコマンドは、AKSクラスターのapiServerAccessProfile内のenablePrivateClusterプロパティを照会します。出力がtrueの場合、endpointPrivateAccessが有効であり、AKSクラスターのAPIサーバがプライベートエンドポイント経由でのみアクセス可能に設定されていることを示します。出力がfalseの場合、クラスターはプライベートアクセス専用に設定されておらず、他の設定によってはAPIサーバがインターネット経由でアクセス可能である可能性があります。

修復

プライベートエンドポイントを使用するには、仮想ネットワークに新しいプライベートエンドポイントを作成し、仮想ネットワークと新しいプライベートDNSゾーンの間にリンクを作成します。