使用 Docker 注册表 _catalog 与 API 与 GCP Artifact 注册表需要什么 IAM 角色?

问题描述 投票:0回答:1

我有一个 Google 服务帐户 (GSA),我试图用它来列出 docker 映像。例如:

curl -sL https://us-central1-docker.pkg.dev/v2/_catalog --user "_json_key_base64:${GSA_KEY_B64?}"

{
   "repositories" : []
}

我希望 GSA 仅在特定注册表上有

roles/artifactregistry.reader
,这对于拉取特定图像来说很好,但会导致空的 _catalog。我试过了:

    特定注册表上的
  • roles/artifactregistry.reader
    --> 空结果
  • roles/viewer
    在特定注册表上 --> 空结果
  • 整个 GCP 项目的
  • roles/artifactregistry.reader
    -> 空结果
  • roles/viewer
    整个 GCP 项目 -> 结果!(但这在我看来太粗糙了)

我将 viewer 角色上的 artifactregistry.* 权限与 ArtifiactRegistry Reader 角色进行了比较,我看到的唯一真正区别是

artifactregistry.repositories.getIamPolicy
。我在
访问控制文档
中没有看到任何特定于 _catalog 的内容。

那么

_catalog
API 中列出存储库所需的细粒度权限/角色是什么?

google-cloud-platform google-artifact-registry
1个回答
0
投票

要使用

v2/_catalog
API,您需要 2 个角色:

  • roles/artifactregistry.reader
    在项目级别或特定工件注册表上
  • roles/browser
    在项目层面。特别是您需要许可
    resourcemanager.projects.get
    。这允许检索项目元数据(包括项目级资源列表)。
© www.soinside.com 2019 - 2024. All rights reserved.