

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

# AWS CodeArtifact アクセス許可リファレンス
<a name="auth-and-access-control-permissions-reference"></a>

## AWS CodeArtifact リソースとオペレーション
<a name="arn-formats"></a>

In AWS CodeArtifact、プライマリリソースはドメインです。ポリシーで Amazon リソースネーム (ARN) を使用して、ポリシーを適用するリソースを識別します。リポジトリはリソースでもあり、ARN が関連付けられています。詳細については、「*Amazon Web Services 全般のリファレンス*」の「[Amazon Resource Names (ARNs)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)」を参照してください。


| リソースタイプ | ARN 形式 | 
| --- | --- | 
| ドメイン | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:domain/{{my_domain}}` | 
| Repository | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| パッケージグループ | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package-group/{{my_domain}}/{{encoded_package_group_pattern}}` | 
| ネームスペースを持つパッケージ | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my_domain}}/{{my_repo}}/{{package-format}}/{{namespace}}/{{my_package}}` | 
| ネームスペースを持たないパッケージ | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my_domain}}/{{my_repo}}/{{package-format}}//{{my_package}}` | 
| すべての CodeArtifact リソース | `arn:aws:codeartifact:*` | 
| 特定の AWS リージョンの特定アカウントに所有されるすべての CodeArtifact リソース | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:*` | 

どのリソース ARN を指定するかは、アクセスをコントロールする対象のアクションによって異なります。

以下のように ARN を使用して、ステートメント内で特定のドメイン ({{myDomain}}) を指定できます。

```
"Resource": "arn:aws:codeartifact:{{us-east-2}}:{{123456789012}}:domain/{{myDomain}}"
```

以下のように ARN を使用して、ステートメント内で特定のリポジトリ ({{myRepo}}) を指定できます。

```
"Resource": "arn:aws:codeartifact:{{us-east-2}}:{{123456789012}}:domain/{{myDomain}}/{{myRepo}}"
```

単一のステートメントに複数のリソースを指定するには、コンマで ARN を区切ります。次のステートメントは、特定のドメインのすべてのパッケージとリポジトリに適用されます。

```
"Resource": [
  "arn:aws:codeartifact:{{us-east-2}}:{{123456789012}}:domain/{{myDomain}}",
  "arn:aws:codeartifact:{{us-east-2}}:{{123456789012}}:repository/{{myDomain}}/*",
  "arn:aws:codeartifact:{{us-east-2}}:{{123456789012}}:package/{{myDomain}}/*"
]
```

**注記**  
多くの AWS サービスは、ARN でARNs。ただし、CodeArtifact では、完全一致したリソースパターンとルールが使用されます。イベントパターンの作成時に正しい文字を使用して、リソース内の ARN 構文とそれらの文字が一致する必要があります。

## AWS CodeArtifact API オペレーションとアクセス許可
<a name="permission-ref"></a>

アクセスコントロールをセットアップし、IAM アイデンティティ (アイデンティティベースのポリシー) にアタッチできるアクセス権限ポリシーを作成する際に、以下の表をリファレンスとして使用できます。

 AWS CodeArtifact ポリシーで AWS全体の条件キーを使用して、条件を表現できます。表の詳細については、[[IAM ユーザーガイド]](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys)の「*IAM JSON ポリシー要素のリファレンス*」を参照してください。

アクションは、ポリシーの `Action` フィールドで指定します。アクションを指定するには、API オペレーション名 (例えば、`codeartifact:` や `codeartifact:CreateDomain`) の前に `codeartifact:AssociateExternalConnection` プレフィックスを使用します。単一のステートメントに複数のアクションを指定するには、コンマで区切ります (例えば、`"Action": [ "codeartifact:CreateDomain", "codeartifact:AssociateExternalConnection" ]`)。

**ワイルドカード文字の使用**

ポリシーの `Resource` フィールドでリソース値として、ワイルドカード文字 (\*) を使用して、または使用せずに ARN を指定します。ワイルドカードを使用して複数のアクションまたはリソースを指定することができます。例えば、`codeartifact:*` は、すべての CodeArtifact アクションを指定し、`codeartifact:Describe*` は、`Describe` という単語で始まるすべての CodeArtifact アクションを指定します。


**CodeArtifact API オペレーションおよびアクションで必要なアクセス許可**  

| AWS CodeArtifact API オペレーション | 必要な許可 (API アクション) | リソース | 
| --- | --- | --- | 
| AssociateExternalConnection | `codeartifact:AssociateExternalConnection`<br />リポジトリに外部接続を追加するのに必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| CopyPackageVersions | ソースリポジトリからターゲットリポジトリにパッケージバージョンをコピーするには、次の手順に従います。<br />`codeartifact:CopyPackageVersions`<br />ターゲットリポジトリで必要です。<br />`codeartifact:ReadFromRepository`<br />ソースリポジトリで必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| CreateDomain | `codeartifact:CreateDomain`<br />ドメインの作成に必要です。<br />`kms:DescribeKey` および `kms:CreateGrant`<br />デフォルトではない `encryptionKey` を指定する場合は、指定された KMS キーに必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:domain/{{my_domain}}` | 
| CreatePackageGroup | `codeartifact:CreatePackageGroup`<br />パッケージグループの作成に必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package-group/{{my_domain}}/{{encoded_package_group_pattern}}` | 
| CreateRepository | `codeartifact:CreateRepository`<br />リポジトリを作成するのに必要です。<br />`codeartifact:AssociateWithDownstreamRepository`<br />アップストリームリポジトリとしてダウンストリームのリポジトリに追加できるようにするために、リポジトリに必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| DeleteDomain | `codeartifact:DeleteDomain`<br />ドメインの削除に必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:domain/{{my_domain}}` | 
| DeleteDomainPermissionsPolicy | `codeartifact:DeleteDomainPermissionsPolicy`<br />ドメインのリソースポリシーを削除するために必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:domain/{{my_domain}}` | 
| DeletePackage | `codeartifact:DeletePackage`<br />パッケージを削除するのに必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my_domain}}/{{my_repo}}/{{package-format}}/{{namespace}}/{{my_package}}` | 
| DeletePackageGroup | `codeartifact:DeletePackageGroup`<br />パッケージグループの削除に必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package-group/{{my_domain}}/{{encoded_package_group_pattern}}` | 
| DeletePackageVersions | `codeartifact:DeletePackageVersions`<br />パッケージのバージョンを削除するために必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my_domain}}/{{my_repo}}/{{package-format}}/{{namespace}}/{{my_package}}` | 
| DeleteRepository | `codeartifact:DeleteRepository`<br />リポジトリを削除するのに必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| DeleteRepositoryPermissionsPolicy | `codeartifact:DeleteRepositoryPermissionsPolicy`<br />ドメインのリソースポリシーを削除するために必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| DescribeDomain | `codeartifact:DescribeDomain`<br />ドメインに関する情報を取得するのに必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:domain/{{my_domain}}` | 
| DescribePackage | `codeartifact:DescribePackage`<br />パッケージに関する情報を取得するのに必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my_domain}}/{{my_repo}}/{{package-format}}/{{namespace}}/{{my_package}}` | 
| DescribePackageGroup | `codeartifact:DescribePackageGroup`<br />パッケージグループに関する情報を取得するのに必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package-group/{{my_domain}}/{{encoded_package_group_pattern}}` | 
| DescribePackageVersion | `codeartifact:DescribePackageVersion`<br />パッケージのバージョンに関する情報を取得するのに必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my_domain}}/{{my_repo}}/{{package-format}}/{{namespace}}/{{my_package}}` | 
| DescribeRepository | `codeartifact:DescribeRepository`<br />ひとつのリポジトリに関する情報を取得するのに必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| DisassociateExternalConnection | `codeartifact:DisassociateExternalConnection`<br />リポジトリに外部接続を削除するのに必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| DisposePackageVersions | `codeartifact:DisposePackageVersions`<br />パッケージのバージョンを削除するために必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my_domain}}/{{my_repo}}/{{package-format}}/{{namespace}}/{{my_package}}` | 
| GetAssociatedPackageGroup | `codeartifact:GetAssociatedPackageGroup`<br />パッケージに関連付けられたパッケージグループを取得するために必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package-group/{{my_domain}}/{{encoded_package_group_pattern}}` | 
| GetAuthorizationToken | `codeartifact:GetAuthorizationToken`<br />`sts:GetServiceBearerToken`<br />リポジトリにアクセスするための一時的な認可トークンを取得するために必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:domain/{{my_domain}}` | 
| GetDomainPermissionsPolicy | `codeartifact:GetDomainPermissionsPolicy`<br />ドメインリソースポリシーを取得するのに必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:domain/{{my_domain}}` | 
| GetPackageVersionAsset | `codeartifact:GetPackageVersionAsset`<br />パッケージバージョンでアセットを取得するために必要です。 | arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my\_domain}}/{{my\_repo}}/{{package-format}}/{{namespace}}/{{my\_package}} | 
| GetPackageVersionReadme | `codeartifact:GetPackageVersionReadme`<br />パッケージバージョンの readme を取得するために必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my_domain}}/{{my_repo}}/{{package-format}}/{{namespace}}/{{my_package}}` | 
| GetRepositoryEndpoint | `codeartifact:GetRepositoryEndpoint`<br />リポジトリエンドポイントを取得するのに必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| GetRepositoryPermissionsPolicy | `codeartifact:GetRepositoryPermissionsPolicy`<br />リポジトリリソースポリシーを取得するのに必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| ListAssociatedPackages | `codeartifact:ListAssociatedPackages`<br />パッケージグループに関連付けられたパッケージのリストを返すために必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package-group/{{my_domain}}/{{encoded_package_group_pattern}}` | 
| ListDomains | `codeartifact:ListDomains`<br />AWS アカウントのドメインのページ分割されたリストを返すために必要です。 | `*` | 
| ListPackageGroups | `codeartifact:ListPackageGroups`<br />ドメインのパッケージグループのページ分割されたリストを返すために必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:domain/{{my_domain}}` | 
| ListPackages | `codeartifact:ListPackages`<br />リポジトリのパッケージのページ分割されたリストを返すために必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| ListPackageVersionAssets | `codeartifact:ListPackageVersionAssets`<br />パッケージバージョンのアセットのページ分割されたリストを返すために必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my_domain}}/{{my_repo}}/{{package-format}}/{{namespace}}/{{my_package}}` | 
| ListPackageVersionDependencies | `codeartifact:ListPackageVersionDependencies`<br />パッケージバージョンの依存関係のページ分割されたリストを返すために必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my_domain}}/{{my_repo}}/{{package-format}}/{{namespace}}/{{my_package}}` | 
| ListPackageVersions | `codeartifact:ListPackageVersions`<br />リポジトリのパッケージのページ分割されたリストを返すために必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my_domain}}/{{my_repo}}/{{package-format}}/{{namespace}}/{{my_package}}` | 
| ListRepositories | `codeartifact:ListRepositories`<br />AWS アカウントのリポジトリのページ分割されたリストを返すために必要です。 | `*` | 
| ListRepositoriesInDomain | `codeartifact:ListRepositoriesInDomain`<br />ドメインのリポジトリのページ分割されたリストを返すために必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:domain/{{my_domain}}` | 
| ListSubPackageGroups | `codeartifact:ListSubPackageGroups`<br />パッケージグループの直接子パッケージグループのリストを返すために必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package-group/{{my_domain}}/{{encoded_package_group_pattern}}` | 
| ListTagsForResource | `codeartifact:ListTagsForResource`<br />指定したリソースのタグを一覧表示するために必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:domain/{{my_domain}}`<br />`arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| PublishPackageVersion | `codeartifact:PublishPackageVersion`<br />パッケージバージョンをリポジトリに公開するために必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my_domain}}/{{my_repo}}/{{package-format}}/{{namespace}}/{{my_package}}` | 
| PutDomainPermissionsPolicy | `codeartifact:PutDomainPermissionsPolicy`<br />ドメインリソースポリシーを取得するのに必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:domain/{{my_domain}}` | 
| PutPackageMetadata | `codeartifact:PutPackageMetadata`<br />Maven パッケージのバージョンをリポジトリに公開したり、npm パッケージバージョンから npm タグを追加または削除したりするために必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my_domain}}/{{my_repo}}/{{package-format}}/{{namespace}}/{{my_package}}` | 
| PutPackageOriginConfiguration | `codeartifact:PutPackageOriginConfiguration`<br />パッケージのオリジン設定を更新するために必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my_domain}}/{{my_repo}}/{{package-format}}/{{namespace}}/{{my_package}}` | 
| PutRepositoryPermissionsPolicy | `codeartifact:PutRepositoryPermissionsPolicy`<br />リソースポリシーをリポジトリに追加するのに必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| ReadFromRepository | `codeartifact:ReadFromRepository`<br />パッケージマネージャークライアントを使用してリポジトリから読み取るために必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| TagResource | `codeartifact:TagResource`<br />リソースにタグを付けるために必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:domain/{{my_domain}}`<br />`arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| UntagResource | `codeartifact:UntagResource`<br />リソースからタグを削除するために必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:domain/{{my_domain}}`<br />`arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 
| UpdatePackageGroup | `codeartifact:UpdatePackageGroup`<br />パッケージグループを更新するために必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package-group/{{my_domain}}/{{encoded_package_group_pattern}}` | 
| UpdatePackageGroupOriginConfiguration | `codeartifact:UpdatePackageGroupOriginConfiguration`<br />パッケージグループのオリジン設定を更新するために必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package-group/{{my_domain}}/{{encoded_package_group_pattern}}` | 
| UpdatePackageVersionsStatus | `codeartifact:UpdatePackageVersionsStatus`<br />パッケージバージョンのステータスを変更するのに必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:package/{{my_domain}}/{{my_repo}}/{{package-format}}/{{namespace}}/{{my_package}}` | 
| UpdateRepository | `codeartifact:UpdateRepository`<br />リポジトリの説明、または、アップストリーム接続を更新するために必要です。詳細については、[リポジトリのアップストリーム設定を変更する](config-repos.md#modify-upstream) または [[リポジトリの更新]](https://docs.aws.amazon.com/codeartifact/latest/APIReference/API_UpdateRepository.html) の *[CodeArtifact API ガイド]*を参照してください。<br />`codeartifact:AssociateWithDownstreamRepository`<br />アップストリームリポジトリとしてダウンストリームのリポジトリに追加できるようにするために、リポジトリに必要です。 | `arn:aws:codeartifact:{{region-ID}}:{{account-ID}}:repository/{{my_domain}}/{{my_repo}}` | 

## パッケージグループ ARN
<a name="package-group-arns"></a>

**注記**  
このセクションでは、パッケージグループの ARN とパターンエンコーディングがどのように情報を提供するかについて説明します。パターンをエンコードして ARN を構築するのではなく、コンソールから ARN をコピーするか、`DescribePackageGroup` API を使用して ARN を取得することをお勧めします。

IAM ポリシーは、ワイルドカード文字 (`*`) を使用して、複数の IAM アクションまたは複数のリソースを照合します。パッケージグループのパターンも `*` 文字を使用します。単一のパッケージグループに一致する IAM ポリシーをより簡単に記述するために、パッケージグループの ARN 形式は、エンコードされたバージョンのパッケージグループパターンを使用します。

具体的なパッケージグループの ARN 形式は次のとおりです。

```
arn:aws:codeartifact:{{region}}:{{account-ID}}:package-group/{{my_domain}}/{{encoded_package_group_pattern}}
```

ここで、エンコードされたパッケージグループパターンは、特定の特殊文字がパーセントエンコーディングされた値に置き換えられたパッケージグループパターンです。文字とそれに対応するパーセントエンコーディングされた値のリストは次のとおりです。
+ `*` : `%2a`
+ `$` : `%24`
+ `%` : `%25`

例えば、ドメインのルートパッケージグループの ARN (`/*`) は次のようになります。

```
arn:aws:codeartifact:{{us-east-1}}:{{111122223333}}:package-group/{{my_domain}}/%2a
```

リストに含まれていない文字はエンコードできず、ARN では大文字と小文字が区別されるため、`*` は、`%2A` ではなく `%2a` としてエンコードする必要があります。