如何修复 Permission artifactregistry.repositories.uploadArtif…

スポンサーリンク

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 拥有适当的权限来访问和上传工件。

常见原因

导致此错误的常见原因包括:

  1. 缺少服务账户:GitHub Actions 需要一个有效的 Google Cloud 服务账户来进行身份验证和授权。
  2. 权限不足:即使有服务账户,可能仍未为其分配必要的权限。
  3. 身份验证配置错误:GitHub Actions 的身份验证可能未正确配置,导致访问被拒绝。
  4. 未正确设置工作负载身份池:如果使用工作负载身份池,则需要确保其配置正确。

解决方法

为了解决“Permission artifactregistry.repositories.uploadArtifacts denied on resource using github actions”错误,您可以按照以下方法进行操作。

方法 1: 创建服务账户并授予权限

  1. 登录到 Google Cloud 控制台。
  2. 导航到 “IAM & 管理员” > “服务账户”。
  3. 点击 “创建服务账户”。
  4. 填写服务账户的名称和描述,然后点击 “创建”。
  5. 在“角色”部分,选择 “Artifact Registry > Artifact Registry Administrator”。
  6. 点击 “完成”以创建服务账户。
  7. 记下服务账户的电子邮件地址,以便稍后使用。

方法 2: 配置 GitHub Secrets

  1. 在 GitHub 仓库中,导航到 “设置” > “Secrets and variables” > “Actions”。
  2. 点击 “新建仓库秘密”。
  3. 添加以下两个秘密:
  4. GOOGLE_SERVICE_ACCOUNT: 包含您创建的服务账户的 JSON 密钥。
  5. GOOGLE_PROJECT_ID: 您的 Google Cloud 项目 ID。
  6. 保存秘密。

方法 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: $

コメント

タイトルとURLをコピーしました