对连接器仓库进行身份验证,以连接到上游来源

为 Artifact Registry 连接器制品库配置上游身份验证后,您可以使用自己的账号凭据连接到私有外部注册中心。您可以将个人访问令牌存储在 Secret Manager 中,并将其附加到连接器代码库,以对向上游来源发出的请求进行身份验证。

如需完成这些步骤,您需要一个 Artifact Registry 连接器仓库和一个具有外部来源的账号。如需详细了解连接器仓库,请参阅连接器仓库概览。

所需的角色

如需获得为连接器代码库配置上游来源的身份验证所需的权限,请让管理员向您授予项目的以下 IAM 角色:

如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。

您也可以通过自定义角色或其他预定义角色来获取所需的权限。

用户定义的上游来源

如需为用户定义的上游来源配置身份验证,请完成以下步骤。

将访问令牌保存在 Secret 中

  1. 在私有注册表中创建访问令牌。
  2. 在 Secret Manager 中创建 Secret。
  3. 将您的个人访问令牌保存为 Secret 版本。

授予 Artifact Registry 服务账号对您的 Secret 的访问权限

Artifact Registry 服务代理在与 Cloud de Confiance 服务交互时会代表 Artifact Registry 执行操作。如需允许服务代理使用 Secret Manager 中存储的 Secret,您必须向服务代理授予查看 Secret 版本的权限。

服务代理标识符为:

service-PROJECT-NUMBER@gcp-sa-artifactregistry.s3ns-system.iam.gserviceaccount.com

PROJECT-NUMBER 是运行 Artifact Registry 的 Cloud de Confiance 项目的项目编号。

如需向 Artifact Registry 服务代理授予 Secret Manager Secret Accessor 角色,请执行以下操作:

控制台

  1. 前往 Cloud de Confiance 控制台中的 Secret Manager 页面。

    转到 Secret Manager 页面

  2. 在 Secret Manager 页面上,点击 Secret 名称旁边的复选框。

  3. 如果面板尚未打开,请点击显示信息面板以打开面板。

  4. 在信息面板中,点击添加主账号。

  5. 在新主账号文本区域中,输入要添加的成员的电子邮件地址。

  6. 在选择角色下拉列表中,选择 Secret Manager,然后选择 Secret Manager Secret Accessor。

gcloud

$ gcloud secrets add-iam-policy-binding secret-id \
    --member="member" \
    --role="roles/secretmanager.secretAccessor"

其中,member 是 IAM 成员,例如用户、群组或服务账号。

API

注意:与其他示例不同,它将替换整个 IAM 政策。

$ curl "https://secretmanager.googleapis.com/v1/projects/project-id/secrets/secret-id:setIamPolicy" \
    --request "POST" \
    --header "authorization: Bearer $(gcloud auth print-access-token)" \
    --header "content-type: application/json" \
    --data "{\"policy\": {\"bindings\": [{\"members\": [\"member\"], \"role\": \"roles/secretmanager.secretAccessor\"}]}}"

如需详细了解如何授予或撤消对 Secret 的访问权限,请参阅管理对 Secret 的访问权限。

向连接器代码库添加上游凭据

如需使用上游来源凭据更新连接器仓库,请执行以下操作:

控制台

  1. 在 Cloud de Confiance 控制台中打开代码库页面。

    打开“代码库”页面

  2. 在代码库列表中,选择相应代码库,然后点击修改代码库。

  3. 在连接器仓库身份验证模式部分中,更新或添加您的上游来源用户名以及包含访问令牌的 Secret。

gcloud CLI

如需使用上游来源凭据更新连接器代码库,请运行以下命令:

gcloud artifacts repositories update REPOSITORY \
    --project=PROJECT_ID \
    --location=LOCATION \
    --remote-username=USERNAME \
    --remote-password-secret-version=projects/SECRET_PROJECT_ID/secrets/SECRET_ID/versions/SECRET_VERSION

替换以下内容:

  • REPOSITORY:您的 Artifact Registry 连接器代码库的名称。
  • PROJECT_ID:您的 Cloud de Confiance 项目 ID。
  • LOCATION:制品库的单区域或多区域位置。如果您设置默认值,则可以省略此标志。如需查看受支持位置的列表,请运行命令 gcloud artifacts locations list。
  • USERNAME:您的上游来源用户名。
  • SECRET_PROJECT_ID:您在其中创建 Secret 的项目的 ID。
  • SECRET_ID:您为 Secret 指定的名称。
  • SECRET_VERSION:您在其中保存访问令牌的 Secret 版本。

当连接器代码库下次向上游来源发送制品请求时,系统会使用您的凭据。