本页介绍了如何管理与存储在 Artifact Registry 中作为附件的工件相关的元数据。
附件是用于存储与存储在工件注册库中的相关工件相关的元数据的文件。如需了解如何创建附件,请参阅在附件中存储工件元数据。
准备工作
可选:为 Google Cloud CLI 命令配置默认值。
所需的角色
如需获得管理附件所需的权限,请让您的管理员为您授予代码库的以下 IAM 角色:
-
查看和下载附件:
Artifact Registry Reader (
roles/artifactregistry.reader
) -
创建附件:Artifact Registry Writer (
roles/artifactregistry.writer
) -
删除附件:
Artifact Registry Repository Administrator (
roles/artifactregistry.repoAdmin
)
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
列表附件
Artifact Registry 中的工件可以有任意数量的引用它的附件。您可以使用 Google Cloud 控制台、gcloud CLI 或 Oras(仅适用于 Docker 格式的容器映像)列出附件。
控制台(仅限 Docker)
在 Google Cloud 控制台中,打开代码库页面。
点击代码库名称可查看代码库中的映像。
如需查看映像的版本,请点击映像名称。
点击相应的图片版本。
如需查看该版本的附件,请点击附件标签页。
gcloud
在使用下面的命令数据之前,请先进行以下替换:
TARGET
:完全限定的版本名称。 对于 Docker 映像,您还可以使用附件引用的工件的 Artifact Registry URI。在 URI 中,您可以使用摘要,对于 Docker 映像,还可以使用标记,例如us-west1-docker.pkg.dev/my-project/my-repo/my-image:tag1
。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud artifacts attachments list \ --target=TARGET
Windows (PowerShell)
gcloud artifacts attachments list ` --target=TARGET
Windows (cmd.exe)
gcloud artifacts attachments list ^ --target=TARGET
gcloud artifacts attachments list
命令。
Oras(仅限 Docker)
在运行该命令之前,请先进行以下替换:
IMAGE_URI
:所列附件引用的目标图片的 URI。
oras discover --distribution-spec v1.1-referrers-api IMAGE_URI
以下示例列出了容器映像 my-image
的附件,该映像通过 URI 和标记进行标识:
oras discover --distribution-spec v1.1-referrers-api \
us-west1-docker.pkg.dev/my-project/my-repo/my-image:tag1
其中:
v1.1-referrers-api
是使用的引荐来源 API。如需了解详情,请参阅分发规范中的详细信息。us-west1-docker.pkg.dev/my-project/my-repo/my-image:tag1
是包含要为其列出附件的容器映像版本的标记的 URI。
如需查看完整指南和更多示例,请参阅 oras discover
文档。
描述附件
在使用下面的命令数据之前,请先进行以下替换:
ATTACHMENT
:附件的完全限定名称,例如projects/my-project/locations/us-west1/repositories/my-repo/attachments/my-attachment
。 或者,只提供附件 ID 并使用--location
和--repository
标志。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud artifacts attachments describe ATTACHMENT
Windows (PowerShell)
gcloud artifacts attachments describe ATTACHMENT
Windows (cmd.exe)
gcloud artifacts attachments describe ATTACHMENT
gcloud artifacts attachments describe
命令。
下载附件
您可以使用 gcloud CLI 下载附件,也可以使用 Oras(仅限 Docker 格式的容器映像)下载附件。
gcloud
在使用下面的命令数据之前,请先进行以下替换:
ATTACHMENT
:附件的完全限定名称,例如projects/my-project/locations/us-west1/repositories/my-repo/attachments/my-attachment
。 或者,只提供附件 ID 并使用--location
和--repository
标志。DESTINATION
:本地文件系统中用于下载附件的路径。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud artifacts attachments download ATTACHMENT \ --destination=DESTINATION
Windows (PowerShell)
gcloud artifacts attachments download ATTACHMENT ` --destination=DESTINATION
Windows (cmd.exe)
gcloud artifacts attachments download ATTACHMENT ^ --destination=DESTINATION
--oci-version-name
标志(后跟附件的完整版本名称或 Artifact Registry URI),作为提供 ATTACHMENT
的替代方案。您可以使用摘要或标记(例如 projects/my-project/locations/us-west1/repositories/my-repo/packages/my-package/versions/sha256:abc123
)。如需了解详情,请参阅
gcloud artifacts attachments download
命令。
Oras(仅限 Docker)
在运行命令之前,请先进行以下替换:
DESTINATION
:附件的目标目录。ATTACHMENT_URI
:要下载的附件的 URI。这是附件引用的图片容器的 URI,后跟附件的唯一 SHA。
oras pull -o DESTINATION ATTACHMENT_URI
以下示例下载了通过 URI 和摘要标识的附件:
oras pull -o . us-west1-docker.pkg.dev/my-project/my-repo/my-image@sha256:xxxx
其中:
-o .
将当前目录命名为下载目标位置。us-west1-docker.pkg.dev/my-project/my-repo/my-image@sha256:xxxx
是包含要下载的附件的摘要的图片 URI。
如需查看完整指南和更多示例,请参阅 oras pull
文档。
删除附件
您可以使用 Google Cloud 控制台或 gcloud CLI 直接删除附件。您可以通过删除关联的工件来间接删除附件。
直接删除附件
您可以使用以下任一选项直接删除附件:
控制台(仅限 Docker)
在 Google Cloud 控制台中,打开代码库页面。
点击代码库名称可查看代码库中的映像。
点击映像名称即可查看该映像的版本。
点击要查看其附件的图片版本。
点击附件标签页可查看该版本的附件。
点击要删除的附件的摘要。
点击删除。
在确认对话框中,点击删除。
gcloud
在使用下面的命令数据之前,请先进行以下替换:
ATTACHMENT
:附件的完全限定名称,例如projects/my-project/locations/us-west1/repositories/my-repo/attachments/my-attachment
。 或者,只提供附件 ID 并使用--location
和--repository
标志。
执行以下命令:
Linux、macOS 或 Cloud Shell
gcloud artifacts attachments delete ATTACHMENT
Windows (PowerShell)
gcloud artifacts attachments delete ATTACHMENT
Windows (cmd.exe)
gcloud artifacts attachments delete ATTACHMENT
gcloud artifacts attachments delete
命令。
间接删除附件
如果工件被删除,则所有 target
为已删除工件的版本名称的附件也会被删除。这适用于手动删除工件,也适用于清理政策导致的删除。
后续步骤
- 了解软件供应链安全。
- 详细了解软件物料清单 (SBOM)