我正在编写一个 GitHub Action,将我的应用程序部署到 GCP 的“Cloud Run”服务。
name: Deploy to production
on:
push:
branches:
- master
env:
PROJECT_ID: XXX
SERVICE_NAME: XXX
RUN_REGION: XXX
PACKAGE_VERSION : XXX
permissions:
contents: read
id-token: write
jobs:
deployment-job:
runs-on: ubuntu-latest
environment: production
steps:
- uses: actions/checkout@v2
- name: Authenticate to Google Cloud
uses: google-github-actions/auth@v0
with:
workload_identity_provider: XXX
service_account: XXX
- name: Deploy to Cloud Run
uses: google-github-actions/deploy-cloudrun@v0
with:
service: ${{ env.SERVICE_NAME }}
source: gcr.io/${{ env.PROJECT_ID }}/${{ env.SERVICE_NAME }}:${{ env.PACKAGE_VERSION }} # equivalent to "gcloud builds submit ..."
region: ${{ env.RUN_REGION }}
tag: ${{ env.PACKAGE_VERSION }}
我遇到这个错误:
ERROR: (gcloud.beta.run.deploy) The user is forbidden from accessing the bucket [XXX]. Please check your organization's policy or if the user has the "serviceusage.services.use" permission
我尝试将此权限添加到我的服务帐户,但我仍然遇到相同的错误:
gcloud projects add-iam-policy-binding XXX --member=serviceAccount:XXX --role=roles/serviceusage.serviceUsageAdmin
我从此设置了工作负载身份联合tutorial.
Grant 存储管理员服务帐户的角色而不是存储对象管理允许您的 Github Action 使用工作流程模板进行部署。
我在将 Workload Identity 设置为 Github Action 时遇到此错误。错误消息很奇怪,但问题出在工作流模板中。该模板将指导您授予存储对象管理,但从所需权限页面也在模板中链接,它说我们需要授予存储管理员.
您可能还需要授予服务使用消费者角色;我已经有了,所以我不确定是否需要它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)