

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# ドメインの概要
<a name="domain-overview"></a>

CodeArtifact で作業している場合、ドメインは次の場合に便利です。
+  **重複排除されたストレージ**: リポジトリで利用できるアセットが 1 つでも、1,000 個でも、ドメインには一度しか保存する必要がありません。つまり、ストレージ料金は一度しか払わないということです。
+  **高速コピー**: アップストリームの CodeArtifact リポジトリからダウンストリームにパッケージをプルする場合、または [[パッケージバージョンのコピー API]](copy-package.md) を使う場合、メタデータレコードだけ更新する必要があります。アセットはコピーされません。これにより、ステージングまたはテスト用の新しいリポジトリを迅速にセットアップできます。詳細については、「[CodeArtifact でアップストリームリポジトリを操作する](repos-upstream.md)」を参照してください。
+  **リポジトリとチーム間での共有が容易**: ドメイン内のすべてのアセットとメタデータは 1 つの AWS KMS key (KMS キー) で暗号化されます。リポジトリごとにキーを管理したり、複数のアカウントにひとつのキーへのアクセス権を付与したりする必要はありません。
+  **複数のリポジトリにポリシーを適用する**: ドメイン管理者は、ドメイン全体にポリシーを適用できます。これには、ドメイン内のリポジトリにアクセスできるアカウントを制限したり、パッケージのソースとして使用する公開リポジトリへの接続を設定できるアカウントを制限することも含まれます。詳細については、[[ドメインポリシー]](domain-policies.md) を参照してください。
+  **[固有のリポジトリ名]**: ドメインはリポジトリのネームスペースを提供します。リポジトリ名は、ドメイン内で固有であれば十分です。わかりやすい意味のある名前を使ってください。

ドメイン名はアカウント内で固有である必要があります。

ドメインがないと、リポジトリを作成することはできません。[[リポジトリの作成]](create-repo.md) API を使用してリポジトリを作成するには、ドメイン名を指定する必要があります。あるドメインから別のドメインにリポジトリを移動することはできません。

リポジトリは、ドメインを所有するのと同じ AWS アカウント、または別のアカウントによって所有できます。所有アカウントが異なる場合は、リポジトリ所有アカウントに`CreateRepository`ドメインリソースに対する権限を与える必要があります。これを行うには、[[ドメイン権限ポリシーを加える]](domain-policies.md#set-domain-policy) コマンドを使用してドメインにリソースポリシーを追加してください。

ひとつの組織が複数のドメインを使用することもできますが、開発チームが組織中でパッケージを見つけて共有できるように、公開されたアーティファクトをすべて含む 1 つの本稼働ドメインを使用することをお勧めします。二つ目の運用前ドメインがあれば、本稼働ドメイン設定の変更をテストするのに便利です。

## クロスアカウントドメイン
<a name="domain-overview-cross-account"></a>

ドメイン名はアカウント内でのみ固有であれば十分です。つまり、リージョン内に同じ名前のドメインが複数存在することも可能です。このため、認証されていないアカウントが所有するドメインにアクセスする場合は、CLI とコンソールの両方で、ドメイン所有者 ID とドメイン名を提供する必要があります。以下の CLI の例を参照してください。

**認証されたアカウントが所有するドメインにアクセス:**

認証されたアカウント内のドメインにアクセスする場合は、ドメイン名を指定するだけで済みます。以下の例では、アカウントに所有されている *[my\$1domain]* というドメインの *[my\$1repo]* リポジトリ内のパッケージを一覧表示します。

```
aws codeartifact list-packages --domain my_domain --repository my_repo
```

**認証されていないアカウントが所有するドメインにアクセス:**

認証されていないアカウントが所有するドメインにアクセスする場合は、ドメイン所有者とドメイン名を指定する必要があります。以下の例では、認証されていないアカウントが所有する *[other-domain]* ドメインの *[other-repo]* リポジトリ内パッケージを一覧表示します。`--domain-owner` パラメータが追加されたことに注目してください。

```
aws codeartifact list-packages --domain other-domain --domain-owner 111122223333 --repository other-repo
```

## CodeArtifact でサポートされている AWS KMS キーのタイプ
<a name="domain-overview-supported-kms-keys"></a>

CodeArtifact は、[対称 KMS キー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#symmetric-cmks)のみをサポートしています。[非対称 KMS キー](https://docs.aws.amazon.com/kms/latest/developerguide/symmetric-asymmetric.html#asymmetric-cmks) を使用して CodeArtifact ドメインを暗号化することはできません。詳細については、「[Identifying symmetric and asymmetric KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/find-symm-asymm.html)」を参照してください。新しいカスタマーマネージドキーの作成方法については、「*AWS Key Management Service Developer Guide*」の「[Creating symmetric encryption KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk)」を参照してください。

CodeArtifact は AWS KMS 外部キーストア (XKS) をサポートしています。CodeArtifact の可用性、耐久性、レイテンシーに影響を与える可能性のある XKS キーを使用するキーオペレーションの可用性、耐久性、レイテンシーについては、ユーザーが責任を負います。CodeArtifact で XKS キーを使用する場合の影響のいくつかの例を以下に示します。
+ リクエストされたパッケージのすべてのアセットとその依存関係は復号レイテンシーの影響を受けるため、XKS 操作のレイテンシーが増えると構築のレイテンシーが大幅に増加する可能性があります。
+ すべてのアセットは CodeArtifact で暗号化されるため、XKS キーマテリアルが失われると、XKS キーを使用するドメインに関連付けられているすべてのアセットが失われます。

XKS キーの詳細については、「*AWS Key Management Service Developer Guide*」の「[External key stores](https://docs.aws.amazon.com/kms/latest/developerguide/keystore-external.html)」を参照してください。