本文档介绍如何对 Artifact Registry 连接器代码库的上游来源进行身份验证。
本文档假定您已创建 Artifact Registry 连接器代码库,并且拥有外部 来源的账号。
如需详细了解连接器代码库,请参阅 连接器代码库概览。
所需的角色
如需获得为连接器代码库配置对上游来源的身份验证所需的权限,请让您的管理员向您授予项目的以下 IAM 角色:
- Artifact Registry Admin (
roles/artifactregistry.admin) - Secret Manager Admin (
roles/secretmanager.admin)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
您也可以通过自定义 角色或其他预定义 角色来获取所需的权限。
用户定义的上游来源
如需为用户定义的上游来源配置身份验证,请完成以下步骤。
将访问令牌保存在 Secret 中
- 在私有注册表中创建访问令牌。
- 在 Secret Manager 中创建 Secret。
- 将您的个人访问令牌另存为 Secret 版本。
向 Artifact Registry 服务帐号授予对您的 Secret 的访问权限
Artifact Registry 服务代理在与服务交互 时会代表 Artifact Registry 执行操作 Google Cloud 。如需允许服务代理使用存储在 Secret Manager 中的 Secret,您必须向服务代理授予查看您的 Secret 版本的权限。
服务代理标识符为:
service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com
PROJECT-NUMBER 是运行 Artifact Registry 的项目的 项目编号 。 Google Cloud
如需向 Artifact Registry 服务代理授予 Secret Manager Secret Accessor 角色,请执行以下操作:
控制台
-
在 Google Cloud 控制台中前往 Secret Manager 页面。
-
在 Secret Manager 页面上,点击 Secret 名称旁边的复选框。
-
如果面板尚未打开,请点击显示信息面板以打开面板。
-
在信息面板中,点击添加主账号。
-
在新主账号文本区域中,输入要添加的成员的电子邮件地址。
-
在选择角色 下拉列表中,选择 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 的访问权限。
将上游凭据添加到连接器代码库
如需使用上游来源凭据更新连接器代码库,请执行以下操作:
控制台
在 Google Cloud 控制台中打开代码库页面。
在代码库列表中,选择代码库,然后点击修改代码库 。
在连接器代码库身份验证模式 部分中,更新或添加您的上游来源用户名以及包含访问令牌的 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
替换以下内容:
下次连接器代码库向上游来源发送制品请求时,系统会使用您的凭据。