创建域 - CodeArtifact

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

创建域

您可以使用 CodeArtifact 控制台、 AWS Command Line Interface (AWS CLI) 或创建域 AWS CloudFormation。创建域时,域中不包含任何存储库。有关更多信息,请参阅 创建存储库。有关使用管理 CodeArtifact 域的更多信息 CloudFormation,请参阅使用创建 CodeArtifact 资源 AWS CloudFormation

创建域(控制台)

  1. https://console.aws.amazon.com/codesuite/codeartifact /hom AWS CodeArtifact e 打开控制台。

  2. 在导航窗格中,选择,然后选择创建域

  3. 名称中,输入域的名称。

  4. 展开其他配置

  5. 使用 AWS KMS key (KMS密钥)加密您域中的所有资产。您可以使用 AWS 托管密KMS钥或自己管理的KMS密钥。有关中支持的KMS密钥类型的更多信息 CodeArtifact,请参阅中支持的 AWS KMS 密钥类型 CodeArtifact

    • 如果要使用默认密钥,请选择AWS托管密钥 AWS 托管式密钥。

    • 如果您想使用自己管理的密钥,请选择客户管理的KMS密钥。要使用您管理的KMS密钥,请在客户管理的密钥ARN中搜索并选择该KMS密钥。

    有关更多信息,请参阅《AWS Key Management Service 开发人员指南》中的 AWS 托管式密钥客户管理的密钥

  6. 选择创建域

创建域 (AWS CLI)

要使用创建域 AWS CLI,请使用create-domain命令。您必须使用 AWS KMS key (KMS密钥)来加密您域中的所有资产。您可以使用 AWS 托管密KMS钥或自己管理的KMS密钥。如果您使用 AWS 托管KMS密钥,请不要使用--encryption-key参数。

有关中支持的KMS密钥类型的更多信息 CodeArtifact,请参阅中支持的 AWS KMS 密钥类型 CodeArtifact。有关KMS密钥的更多信息,请参阅《AWS Key Management Service 开发人员指南》中的AWS 托管式密钥客户托管密钥

aws codeartifact create-domain --domain my_domain

JSON-格式的数据将出现在输出中,其中包含有关您的新域的详细信息。

{ "domain": { "name": "my_domain", "owner": "111122223333", "arn": "arn:aws:codeartifact:us-west-2:111122223333:domain/my_domain", "status": "Active", "encryptionKey": "arn:aws:kms:us-west-2:111122223333:key/your-kms-key", "repositoryCount": 0, "assetSizeBytes": 0, "createdTime": "2020-10-12T16:51:18.039000-04:00" } }

如果您使用自己管理的KMS密钥,请在--encryption-key参数中包含其 Amazon 资源名称 (ARN)。

aws codeartifact create-domain --domain my_domain --encryption-key arn:aws:kms:us-west-2:111122223333:key/your-kms-key

JSON-格式的数据将出现在输出中,其中包含有关您的新域的详细信息。

{ "domain": { "name": "my_domain", "owner": "111122223333", "arn": "arn:aws:codeartifact:us-west-2:111122223333:domain/my_domain", "status": "Active", "encryptionKey": "arn:aws:kms:us-west-2:111122223333:key/your-kms-key", "repositoryCount": 0, "assetSizeBytes": 0, "createdTime": "2020-10-12T16:51:18.039000-04:00" } }

创建带标签的域

要创建带标签的域,请在 create-domain 命令中添加 --tags 参数。

aws codeartifact create-domain --domain my_domain --tags key=k1,value=v1 key=k2,value=v2

AWS KMS 密钥策略示例

在中创建域时 CodeArtifact,使用KMS密钥加密该域中的所有资产。您可以选择 AWS 托管KMS密钥或由您管理的客户托管密钥。有关KMS密钥的更多信息,请参阅《AWS Key Management Service 开发人员指南》

要使用客户管理的密钥,您的KMS密钥必须具有授予访问权限的密钥策略 CodeArtifact。密钥策略是密 AWS KMS 钥的资源策略,也是控制KMS密钥访问的主要方式。每个KMS密钥必须只有一个密钥策略。密钥策略中的声明决定谁有权使用KMS密钥以及他们如何使用密钥。

以下示例密钥策略声明 AWS CodeArtifact 允许代表授权用户创建授权和查看密钥详细信息。本政策声明将权限限制为使用kms:ViaServicekms:CallerAccount条件键代表指定账户 ID CodeArtifact 行事。它还向 IAM root 用户授予所有 AWS KMS 权限,因此可以在创建密钥后对其进行管理。

{ "Version": "2012-10-17", "Id": "key-consolepolicy-3", "Statement": [ { "Sid": "Allow access through AWS CodeArtifact for all principals in the account that are authorized to use CodeArtifact", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:CallerAccount": "111122223333", "kms:ViaService": "codeartifact.us-west-2.amazonaws.com" } } }, { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" } ] }