ビュー:
プロファイル適用性: レベル2
GKEメタデータサーバを実行することで、ワークロードが機密性の高いインスタンスメタデータにアクセスするのを防ぎ、ワークロードアイデンティティを容易にします。
すべてのノードはメタデータをメタデータサーバに保存します。このメタデータの一部、例えばkubelet認証情報やVMインスタンスのアイデンティティトークンは機密性が高く、Kubernetesワークロードに公開されるべきではありません。GKEメタデータサーバを有効にすると、ホストネットワークで実行されていないポッドがこのメタデータにアクセスするのを防ぎ、Workload Identityを容易にします。
指定されていない場合、デフォルト設定では、実行中のポッドがノードの基盤となるメタデータサーバに完全にアクセスできるようになります。
注意
注意
デフォルトでは、実行中のポッドはノードの基礎となるメタデータサーバへの完全なアクセス権を持ちます。

影響

Workload Identityを使用する場合、GKEメタデータサーバを実行する必要があります。Workload Identityはメタデータ隠蔽を使用する必要性を置き換えるため、これら二つのアプローチは互換性がありません。
GKE Metadata ServerとWorkload Identityが有効になっている場合、Podがホストネットワーク上で実行されていない限り、PodはCompute Engineのデフォルトサービスアカウントを使用できません。
ワークロードアイデンティティを使用するために、ワークロードの修正が必要になる場合があります。詳細については、GKE ドキュメントを参照してください。

監査

Google Cloud Consoleを使用する
  1. Kubernetes Engine websiteに移動します。
  2. クラスタのリストから、目的のクラスタ名をクリックしてください。
  3. クラスター内の各ノードプールについて、[詳細] ペインを開き、GKEメタデータサーバが Enabled に設定されていることを確認してください。
コマンドラインを使用する:
クラスター内の各ノードプールに対してGKEメタデータサーバが有効かどうかを確認するには、次のコマンドを実行してください。
gcloud container clusters describe <cluster_name> --zone <cluster_zone> --
format json | jq .nodePools[].config.workloadMetadataConfig
これは各ノードプールに対して次の結果を返す必要があります:
{ 
    "mode": "GKE_METADATA" 
}
GKEメタデータサーバが有効でない場合、{ }はNullを返します。

修復

GKEメタデータサーバは、クラスターでWorkload Identityを有効にする必要があります。クラスターを変更してWorkload Identityを有効にし、GKEメタデータサーバを有効にしてください。
Google Cloud Consoleを使用する
  1. Kubernetes Engine websiteに移動します。
  2. クラスタのリストから、Workload Identityが無効になっているクラスタを選択してください。
  3. [詳細] ペインの下にあるセキュリティサブセクションに移動します。
  4. [Edit Workload Identity]という名前の鉛筆アイコンをクリックし、ポップアップウィンドウで[Enable Workload Identity]をクリックし、ドロップダウンボックスからワークロードプールを選択します。デフォルトでは、クラスタを含むクラウドプロジェクトの名前空間になります。例: <project_id>.svc.id.goog.
  5. [SAVE CHANGES]をクリックして、クラスタの更新を待ちます。
  6. クラスターが更新されたら、クラスターの詳細ページで各ノードプールを選択してください。
  7. 各ノードプールについて、ノードプール詳細ページ内で[EDIT]を選択してください。
  8. [Edit node pool]ペイン内で、[GKEメタデータサーバを有効にする]チェックボックスをオンにします。
  9. [保存] をクリックします。
コマンドラインを使用する:
gcloud container clusters update <cluster_name> --identity-
namespace=<project_id>.svc.id.goog
注意
注意
既存のノードプールには影響がありません。新しいノードプールはデフォルトで--workload-metadata-from-node=GKE_METADATA_SERVERになります。
既存のノードプールを変更してGKEメタデータサーバを有効にするには:
gcloud container node-pools update <node_pool_name> --cluster=<cluster_name> 
--workload-metadata-from-node=GKE_METADATA_SERVER
ワークロードアイデンティティを使用するために、ワークロードの修正が必要になる場合があります。詳細については、GKE ドキュメントを参照してください。