

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建立網域
<a name="domain-create"></a>

您可以使用 CodeArtifact 主控台、 AWS Command Line Interface (AWS CLI) 或 建立網域 CloudFormation。當您建立網域時，它不包含任何儲存庫。如需詳細資訊，請參閱[建立 儲存庫](create-repo.md)。如需使用 CloudFormation 管理 CodeArtifact 網域的詳細資訊，請參閱 [使用 建立 CodeArtifact 資源 AWS CloudFormation](cloudformation-codeartifact.md)。

**Topics**
+ [建立網域 （主控台）](#create-domain-console)
+ [建立網域 (AWS CLI)](#create-domain-cli)
+ [範例 AWS KMS 金鑰政策](#create-domain-kms-key-policy-example)

## 建立網域 （主控台）
<a name="create-domain-console"></a>

1. 開啟位於 https：//[https://console.aws.amazon.com/codesuite/codeartifact/home](https://console.aws.amazon.com/codesuite/codeartifact/home) 的 AWS CodeArtifact 主控台。

1.  在導覽窗格中，選擇**網域**，然後選擇**建立網域**。

1.  在**名稱**中，輸入網域的名稱。

1.  展開 **Additional configuration (其他組態)**。

1. 使用 AWS KMS key (KMS 金鑰） 加密網域中的所有資產。您可以使用 AWS 受管 KMS 金鑰或您管理的 KMS 金鑰。如需 CodeArtifact 中支援的 KMS 金鑰類型的詳細資訊，請參閱 [CodeArtifact 支援的 AWS KMS 金鑰類型](domain-overview.md#domain-overview-supported-kms-keys)。
   + 如果您想要使用預設 ，請選擇 **AWS 受管金鑰** AWS 受管金鑰。
   +  如果您想要使用您管理的 KMS 金鑰，請選擇**客戶受管**金鑰。若要使用您管理的 KMS 金鑰，請在**客戶受管金鑰 ARN** 中搜尋並選擇 KMS 金鑰。

    如需詳細資訊，請參閱《 *AWS Key Management Service 開發人員指南*》中的 [AWS 受管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk)和 [客戶受管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)。

1.  選擇**建立網域**。

## 建立網域 (AWS CLI)
<a name="create-domain-cli"></a>

若要使用 建立網域 AWS CLI，請使用 `create-domain`命令。您必須使用 AWS KMS key (KMS 金鑰） 來加密網域中的所有資產。您可以使用 AWS 受管 KMS 金鑰或您管理的 KMS 金鑰。如果您使用 AWS 受管 KMS 金鑰，請勿使用 `--encryption-key` 參數。

如需 CodeArtifact 中支援之 KMS 金鑰類型的詳細資訊，請參閱 [CodeArtifact 支援的 AWS KMS 金鑰類型](domain-overview.md#domain-overview-supported-kms-keys)。如需 KMS 金鑰的詳細資訊，請參閱《 *AWS Key Management Service 開發人員指南*》中的 [AWS 受管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk)和[客戶受管金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)。

```
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 Resource Name (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"
    }
}
```

### 使用標籤建立網域
<a name="create-domain-cli-tags"></a>

若要建立具有標籤的網域，請將 `--tags` 參數新增至您的`create-domain`命令。

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

## 範例 AWS KMS 金鑰政策
<a name="create-domain-kms-key-policy-example"></a>

當您在 CodeArtifact 中建立網域時，您可以使用 KMS 金鑰來加密網域中的所有資產。您可以選擇受 AWS 管 KMS 金鑰或您管理的客戶受管金鑰。如需 KMS 金鑰的詳細資訊，請參閱 [AWS Key Management Service 開發人員指南](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)。

若要使用客戶受管金鑰，您的 KMS 金鑰必須具有授予 CodeArtifact 存取權的金鑰政策。金鑰政策是 AWS KMS 金鑰的資源政策，是控制 KMS 金鑰存取的主要方式。每個 KMS 金鑰都必須只有一個金鑰政策。金鑰政策中的陳述式決定誰有使用 KMS 金鑰的許可以及可以使用它的方式。

下列範例金鑰政策陳述式允許 AWS CodeArtifact 代表授權使用者建立授予和檢視金鑰詳細資訊。此政策陳述式使用 `kms:ViaService`和 `kms:CallerAccount`條件索引鍵，將許可限制為 CodeArtifact 代表指定的帳戶 ID。它也會將所有 AWS KMS 許可授予 IAM 根使用者，以便在建立金鑰之後進行管理。

------
#### [ JSON ]

****  

```
{
    "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": "*"
        }
    ]
}
```

------