プロファイル適用性: レベル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を使用する
- Kubernetes Engine websiteに移動します。
- クラスタのリストから、目的のクラスタ名をクリックしてください。
- クラスター内の各ノードプールについて、[詳細] ペインを開き、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を使用する
- Kubernetes Engine websiteに移動します。
- クラスタのリストから、Workload Identityが無効になっているクラスタを選択してください。
- [詳細] ペインの下にあるセキュリティサブセクションに移動します。
- [Edit Workload Identity]という名前の鉛筆アイコンをクリックし、ポップアップウィンドウで[Enable Workload Identity]をクリックし、ドロップダウンボックスからワークロードプールを選択します。デフォルトでは、クラスタを含むクラウドプロジェクトの名前空間になります。例:
<project_id>.svc.id.goog. - [SAVE CHANGES]をクリックして、クラスタの更新を待ちます。
- クラスターが更新されたら、クラスターの詳細ページで各ノードプールを選択してください。
- 各ノードプールについて、ノードプール詳細ページ内で[EDIT]を選択してください。
- [Edit node pool]ペイン内で、[GKEメタデータサーバを有効にする]チェックボックスをオンにします。
- [保存] をクリックします。
コマンドラインを使用する:
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 ドキュメントを参照してください。
