GCPのCloud DeployをCloud Buildから呼び出すときにエラーになる(ACTAS_PERMISSION_DENIED)
GCP環境で主にGKEのCI/CDをやろうとしたときに軽くハマったのでメモ的に書きます。
Cloud Deployとは
主にGKE(Google Kubernetes Engine)へのコンテナイメージのデプロイに利用します。
CI/CDで言うとCD(Continuous Delivery)にあたります。
Kubernetesでは良くCIとCDを分けて考えられるのですが、ArgoCDなどをインストールしなくても、コンテナイメージを動作環境に合わせてプロモート出来るのが最大の魅力と考えます。
(参考)
https://cloud.google.com/blog/ja/products/devops-sre/google-cloud-deploy-automates-deploys-to-gke
Cloud Buildとは
GCP上で様々なタスクを実行するためのサービス。Github Actionsのようなもの
コンテナイメージのビルドも出来る。
Cloud Deployを使うなら、Cloud Buildと連携してGCP内でCI/CDを完結させたいというモチベーションは高い。
本題のエラーについて
設定して使ってみたところ、Cloud Buildから以下のような感じで Cloud Deployを実行する際にエラーになる
それぞれの設定はダミーです。
実行内容
- name: gcr.io/google.com/cloudsdktool/cloud-sdk
entrypoint: gcloud
args:
[
"deploy", "releases", "create", "rel-${SHORT_SHA}",
"--delivery-pipeline", "${_PIPELINE_NAME}",
"--region", "${_COMPUTE_ZONE}",
"--source", "hoge.yaml",
"--images", "app=$_IMAGE_NAME:$COMMIT_SHA"
]
エラー
domain: clouddeploy.googleapis.com
metadata:
serviceAccount: [email protected]
reason: ACTAS_PERMISSION_DENIED
解決策
Cloud Buildを実行させるサービスアカウント
[email protected]
に権限を追加する。
NGだった
カスタムロールを作成して
iam.serviceAccounts.actAs
を入れておけば良いかなと思ったがNG
OKだった
Editor権限を追加したらうまくいった(調査中)
(IAMで足りていない権限を見ていくと
container.clusters.getCredentials
あたりが怪しいのではないか)
所感
Cloud Deployがすごく便利なので、是非試してみて欲しいです。
Author And Source
この問題について(GCPのCloud DeployをCloud Buildから呼び出すときにエラーになる(ACTAS_PERMISSION_DENIED)), 我々は、より多くの情報をここで見つけました https://qiita.com/n_morioka/items/d5dd62caddb6a5f4ef75著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .