Permission artifactregistry.repositories.uploadArtifacts denied on resource using github actions 的解决方案
错误概述
在使用 GitHub Actions 部署或上传工件到 Google Artifact Registry 时,您可能会遇到以下错误信息:“Permission artifactregistry.repositories.uploadArtifacts denied on resource using github actions”。这通常是因为缺少适当的权限或身份验证配置不正确。
该错误表明,GitHub Actions 尝试执行上传操作,但由于权限设置不当而被拒绝。为了解决这个问题,我们需要确保 GitHub Actions 拥有适当的权限来访问和上传工件。
常见原因
导致此错误的常见原因包括:
- 缺少服务账户:GitHub Actions 需要一个有效的 Google Cloud 服务账户来进行身份验证和授权。
- 权限不足:即使有服务账户,可能仍未为其分配必要的权限。
- 身份验证配置错误:GitHub Actions 的身份验证可能未正确配置,导致访问被拒绝。
- 未正确设置工作负载身份池:如果使用工作负载身份池,则需要确保其配置正确。
解决方法
为了解决“Permission artifactregistry.repositories.uploadArtifacts denied on resource using github actions”错误,您可以按照以下方法进行操作。
方法 1: 创建服务账户并授予权限
- 登录到 Google Cloud 控制台。
- 导航到 “IAM & 管理员” > “服务账户”。
- 点击 “创建服务账户”。
- 填写服务账户的名称和描述,然后点击 “创建”。
- 在“角色”部分,选择 “Artifact Registry > Artifact Registry Administrator”。
- 点击 “完成”以创建服务账户。
- 记下服务账户的电子邮件地址,以便稍后使用。
方法 2: 配置 GitHub Secrets
- 在 GitHub 仓库中,导航到 “设置” > “Secrets and variables” > “Actions”。
- 点击 “新建仓库秘密”。
- 添加以下两个秘密:
GOOGLE_SERVICE_ACCOUNT: 包含您创建的服务账户的 JSON 密钥。GOOGLE_PROJECT_ID: 您的 Google Cloud 项目 ID。- 保存秘密。
方法 3: 配置 GitHub Actions 工作流
在您的 GitHub Actions 工作流文件(如 .github/workflows/deploy.yml)中,确保以下内容:
“`yaml
name: Deploy to Artifact Registry
on:
push:
branches:
– main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
– name: Checkout code
uses: actions/checkout@v2
- name: Set up Google Cloud SDK
uses: google-github-actions/setup-gcloud@v0
with:
service_account_key: $

コメント