本页面介绍如何添加、查看和删除 Artifact Registry 代码库。
准备工作
- 启用 Artifact Registry,包括启用 Artifact Registry API 和安装 Cloud SDK。
- (可选)为 gcloud 命令配置默认值。
概览
您必须先创建代码库,然后才能上传工件。每个代码库都可以包含单个受支持格式的工件。
所有代码库内容都已使用 Google 管理的加密密钥或客户管理的加密密钥进行加密。Artifact Registry 默认使用 Google 管理的加密密钥,此选项无需进行任何配置。
为代码库设置 CMEK
默认情况下,Google Cloud 会自动使用您在 Cloud Key Management Service 中管理的 Google 加密密钥来加密静态数据。如果您有与保护数据的密钥相关的特定合规性或监管要求,则可以创建使用客户管理的加密密钥 (CMEK) 来加密代码库内容的代码库。
在创建您希望使用 CMEK 加密的代码库之前,您必须在 Cloud KMS 中创建并启用密钥。然后,您可以在创建代码库时将该密钥分配给该代码库。
您无法更改现有代码库的加密机制。如果您有 CMEK 加密的代码库,则无法将加密机制更改为 Google 默认加密或分配其他 Cloud KMS 密钥用于加密。
创建代码库
创建代码库时,您必须选择以下设置:
创建代码库后,这些设置便无法更改。
如需创建和配置新代码库,请执行以下操作:
如果您使用 CMEK 加密代码库数据,请创建要用于此代码库的密钥并授予使用该密钥的权限。请参阅启用客户管理的加密密钥。
添加代码库。
控制台
在 Cloud Console 中打开 代码库页面。
点击创建代码库。
指定代码库名称。对于项目中的每个代码库位置,代码库名称不得重复。
指定代码库格式。支持以下格式:
- Docker
- Maven(Alpha 版)
- npm(Alpha 版)
在位置类型下,选择代码库的位置:
选择位置类型:区域或多区域。位置列表会发生变化,以反映您所做的选择。
在区域或多区域列表中,选择一个位置。
如需了解位置类型和支持的位置,请参阅组织代码库
为代码库添加说明。说明可帮助确定代码库的用途及其包含的工件类型。
如果要使用标签来组织代码库,请点击添加标签并输入标签的键值对。您可以在创建代码库后添加、修改或移除标签。
在加密部分中,选择代码库的加密机制。
- Google 管理的密钥 - 使用 Google 管理的加密密钥来加密代码库内容。
- 客户管理的密钥 - 使用您通过 Cloud Key Management Service 控制的密钥来加密代码库内容。如需查看密钥设置说明,请参阅为代码库设置 CMEK。
点击创建。
gcloud
运行以下命令创建新代码库。
gcloud artifacts repositories create REPOSITORY \ --repository-format=FORMAT [--location=LOCATION] \ [--description=DESCRIPTION] [--kms-key=KMS-KEY] [--async]
其中
- REPOSITORY 是代码库的名称。对于项目中的每个代码库位置,代码库名称不得重复。
FORMAT 是代码库格式。支持的值为
docker
maven
(Alpha 版)npm
(Alpha 版)
LOCATION 是代码库的单区域或多区域位置。如果您设置默认值,则可以省略此标志。如需查看受支持位置的列表,请运行以下命令:
gcloud artifacts locations list
DESCRIPTION 是代码库的说明。
KMS-KEY 是 Cloud KMS 加密密钥的完整路径(如果您使用客户管理的加密密钥来加密代码库内容的话)。路径的格式为:
projects/KMS-PROJECT/locations/KMS-LOCATION/keyRings/KEY-RING/cryptoKeys/KEY
其中
- KMS-PROJECT 是存储密钥的项目。
- KMS-LOCATION 是密钥的位置。
- KEY-RING 是密钥环的名称。
- KEY 是密钥的名称。
--async
会立即返回结果,而无需等待正在进行的操作完成。
如需详细了解该命令,请运行以下命令:
gcloud artifacts repositories create --help
Terraform
如需了解如何使用 Terraform 预配代码库并授予代码库权限,请参阅与 Terraform 集成。
授予权限以访问代码库。
如果您已在项目级层授予任何 Artifact Registry 角色,则项目中的代码库会继承这些角色。如果您希望团队成员对项目中的代码库拥有不同级层的访问权限,请在代码库级层授予角色。
如需通过 Docker 或软件包管理器与代码库进行交互,您必须为这些工具配置身份验证。请参阅相应的页面:
为代码库添加标签
标签是一种键值对,可用于识别和分组相关代码库,例如 stage:production
或 team:development
。如需了解详情,请参阅创建和管理标签。
更新代码库说明
您可以使用以下命令更新现有代码库的说明:
gcloud artifacts repositories update REPOSITORY [--project=PROJECT] \
[--location=LOCATION] --description=DESCRIPTION
其中
- REPOSITORY 是代码库的名称。如果您配置了默认代码库,则可以省略此标志以使用默认值。
- PROJECT 是 Google Cloud 项目 ID。如果省略此标志,则系统会使用当前项目或默认项目。
- LOCATION 是单区域或多区域位置。使用此标志可查看特定位置的代码库。如果您配置了默认位置,则可以省略此标志以使用默认值。
- DESCRIPTION 是代码库的说明。
如需详细了解该命令,请运行以下命令:
gcloud artifacts repositories update --help
查看代码库
您可以查看 Google Cloud 项目中的代码库。
如需查看代码库列表,请执行以下操作:
控制台
在 Cloud Console 中打开 代码库页面。
该页面会显示您的代码库列表。
如需过滤 Artifact Registry 代码库列表,请执行以下操作:
- 在代码库列表上方,点击过滤表。
- 从过滤条件列表中选择一个过滤条件。
- 指定要用于过滤列表的值。
gcloud
如需列出现有代码库,请运行以下命令:
gcloud artifacts repositories list [--project=PROJECT] \ [--location=LOCATION]
如需查看为代码库配置的加密类型,请运行以下命令:
gcloud artifacts repositories describe REPOSITORY \ [--project=PROJECT] [--location=LOCATION]
在这些命令中,替换以下值:
- PROJECT 是项目 ID。如果省略此标志,则系统会使用当前项目或默认项目。
- REPOSITORY 是代码库的名称。
LOCATION 是单区域或多区域位置。使用此标志可查看特定位置的代码库。您还可以使用
--location=all
列出所有位置的代码库。如果省略此标志,该命令将使用默认位置(如果配置了默认值的话)。否则,省略此标志会导致系统列出所有位置的代码库。
如需详细了解该命令,请运行以下命令:
gcloud artifacts repositories list --help
删除代码库
在移除代码库之前,请确保要保留的任何软件包在其他位置提供。
如需删除代码库,请执行以下操作:
控制台
在 Cloud Console 中打开 代码库页面。
在代码库列表中,选择要删除的代码库。
点击删除。
gcloud
如需删除代码库,请运行以下命令:
gcloud artifacts repositories delete REPOSITORY \ [--location=LOCATION] [--async]
其中
如需详细了解该命令,请运行以下命令:
gcloud artifacts repositories delete --help
后续步骤
- 配置代码库的访问权限