正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

GitLabチャートを使用したGKE用ワークロードアイデンティティフェデレーション

チャートでの外部オブジェクトストレージのデフォルト設定では、シークレットキーを使用します。ワークロードアイデンティティフェデレーションfor GKEを使用すると、短時間のトークンを使用して、Kubernetesクラスタにオブジェクトストレージへのアクセスを許可できます。既存のGKEクラスタがある場合は、ワークロードアイデンティティフェデレーションを使用するためにノードプールを更新する方法については、Googleのドキュメントを参照してください

ワークロードIDを使用するには、object-storage.yamlシークレットのgoogle_json_key_stringを省略します:

provider: Google
google_project: your-project-id
google_client_email: null  # Will use workload identity
google_json_key_string: null  # Will use workload identity

トラブルシューティング

iam.gke.io/gcp-service-account注釈を介して、KubernetesサービスアカウントがIAMサービスアカウントにリンクされていることを確認してください。

toolboxポッド内のメタデータエンドポイントにクエリを実行して、ワークロードIDが適切に設定されているかどうかを確認できます。クラスタに関連付けられたサービスアカウントが返されるはずです:

$ curl -H "Metadata-Flavor: Google" http://169.254.169.254/computeMetadata/v1/instance/service-accounts/default/email
example@your-example-project.iam.gserviceaccount.com

このアカウントは、次のスコープにもアクセスできる必要があります:

$ curl -H "Metadata-Flavor: Google" http://169.254.169.254/computeMetadata/v1/instance/service-accounts/default/scopes
https://www.googleapis.com/auth/cloud-platform
https://www.googleapis.com/auth/userinfo.email