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