GCP - Artifact Registry Enum

支持 HackTricks

基本信息

Google Cloud Artifact Registry 是一个完全托管的服务,允许您管理、存储和保护您的软件工件。它本质上是一个存储构建依赖项的仓库,例如Docker 镜像、Maven、npm 包和其他类型的工件。它通常用于 CI/CD 管道中存储和版本控制在软件开发过程中生成的工件。

Artifact Registry 的主要功能包括:

  1. 统一仓库:它支持多种类型的工件,允许您拥有一个用于 Docker 镜像、语言包(如 Java 的 Maven、Node.js 的 npm)和其他类型工件的单一仓库,从而实现一致的访问控制和对所有工件的统一视图。

  2. 完全托管:作为一个托管服务,它处理底层基础设施、扩展和安全性,减少用户的维护开销。

  3. 细粒度访问控制:它与 Google Cloud 的身份和访问管理(IAM)集成,允许您定义谁可以访问、上传或下载您仓库中的工件。

  4. 地理复制:它支持在多个区域之间复制工件,提高下载速度并确保可用性。

  5. 与 Google Cloud 服务的集成:它与其他 GCP 服务如 Cloud Build、Kubernetes Engine 和 Compute Engine无缝协作,使其成为已经在 Google Cloud 生态系统中工作的团队的便捷选择。

  6. 安全性:提供漏洞扫描和容器分析等功能,以帮助确保存储的工件是安全的,并且没有已知的安全问题。

格式和模式

创建新仓库时,可以在多个格式/类型中选择仓库的格式/类型,如 Docker、Maven、npm、Python...,以及通常可以是以下三种模式之一:

  • 标准仓库:用于直接在 GCP 中存储您自己的工件(如 Docker 镜像、Maven 包)的默认模式。它安全、可扩展,并且与 Google Cloud 生态系统良好集成。

  • 远程仓库(如果可用):作为缓存来自外部公共仓库的工件的代理。它有助于防止上游依赖项变化带来的问题,并通过缓存频繁访问的工件来减少延迟。

  • 虚拟仓库(如果可用):提供一个统一接口,通过单一端点访问多个(标准或远程)仓库,简化了客户端配置和跨多个仓库的工件访问管理。

  • 对于虚拟仓库,您需要选择仓库并给予优先级(优先级最高的仓库将被使用)。

  • 您可以在虚拟仓库中混合远程和标准仓库,如果远程优先级大于标准,将使用远程的包(例如 PyPi)。这可能导致依赖混淆

请注意,在Docker 的远程版本中,可以提供用户名和令牌以访问 Docker Hub。令牌将存储在 Secret Manager 中

加密

如预期的那样,默认使用 Google 管理的密钥,但可以指示客户管理的密钥(CMEK)。

清理策略

  • 删除工件:工件将根据清理策略标准被删除

  • 干运行:(默认)工件将不会被删除。清理策略将被评估,并将测试删除事件发送到 Cloud Audit Logging。

漏洞扫描

可以启用漏洞扫描器,它将检查容器镜像中的漏洞。

枚举

# Get repositories
gcloud artifacts repositories list
gcloud artifacts repositories describe --location <location> <repo-name>
gcloud artifacts versions list --repository=<repo-name> -location <location> --package <package-name>

# Get settings of a repository (example using python but could be other)
gcloud artifacts print-settings python --repository <repo-name> --location <location>

# Get docker images
gcloud artifacts docker images list us-central1-docker.pkg.dev/<proj-name>/<repo-name>

# Get packages (like python and others...)
gcloud artifacts packages list --repository <repo-name> --location <location>

# Get SBOMB artifacts
gcloud artifacts sbom list

# Get vulnerabilities (docker images)
gcloud artifacts vulnerabilities list us-east1-docker.pkg.dev/project123/repository123/someimage@sha256:49765698074d6d7baa82f
gcloud artifacts docker images list-vulnerabilities projects/<proj-name>/locations/<location>/scans/<scan-uuid>

权限提升

未经身份验证的访问

后期利用

持久性

支持 HackTricks

Last updated