

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

# が IAM と AWS CodeDeploy 連携する方法
<a name="security_iam_service-with-iam"></a>

IAM を使用して CodeDeploy へのアクセスを管理する前に、CodeDeploy で使用できる IAM 機能について理解しておきましょう。詳細については、*IAM ユーザーガイド* の「[IAM と連携するAWS サービス](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)」を参照してください。

**Topics**
+ [CodeDeploy アイデンティティベースのポリシー](#security_iam_service-with-iam-id-based-policies)
+ [CodeDeploy のリソースベースのポリシー](#security_iam_service-with-iam-resource-based-policies)
+ [CodeDeploy タグに基づく認可](#security_iam_service-with-iam-tags)
+ [CodeDeploy IAM ロール](#security_iam_service-with-iam-roles)

## CodeDeploy アイデンティティベースのポリシー
<a name="security_iam_service-with-iam-id-based-policies"></a>

IAM のアイデンティティベースポリシーでは、許可または拒否するアクションとリソース、およびアクションが許可または拒否される条件を指定できます。CodeDeploy はアクション、リソース、および条件キーをサポートします。JSON ポリシーで使用する要素については、[IAM ユーザーガイド](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html) 内の「*IAM JSON ポリシーの要素のリファレンス*」を参照してください。

### アクション
<a name="security_iam_service-with-iam-id-based-policies-actions"></a>

管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どの**プリンシパル**がどの**リソース**に対してどのような**条件下で****アクション**を実行できるかということです。

JSON ポリシーの `Action` 要素にはポリシー内のアクセスを許可または拒否するために使用できるアクションが記述されます。このアクションは関連付けられたオペレーションを実行するためのアクセス許可を付与するポリシーで使用されます。

CodeDeploy のポリシーアクションは、アクションの前に `codedeploy:` プレフィックスを使用します。例えば、`codedeploy:GetApplication` 許可は、`GetApplication` オペレーションを実行するためのアクセス許可をユーザーに付与します。ポリシーステートメントには`Action` または `NotAction` 要素を含める必要があります。CodeDeploy は、このサービスで実行できるタスクを記述する独自のアクションのセットを定義します。

単一のステートメントに複数のアクションを指定するには次のようにコンマで区切ります。

```
"Action": [
      "codedeploy:action1",
      "codedeploy:action2"
```

ワイルドカード (\$1) を使用して複数アクションを指定できます。例えば、`Describe` という単語で始まるすべてのアクションを指定するには、次のアクションを含めます。

```
"Action": "ec2:Describe*"
```



CodeDeploy アクションのリストを表示するには、*IAM ユーザーガイド* の 「[AWS CodeDeployによって定義されたアクション](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awscodedeploy.html#awscodedeploy-actions-as-permissions)」を参照してください。

すべての CodeDeploy API アクションとそれらが適用されるリソースの表については、[CodeDeploy アクセス許可 リファレンス](auth-and-access-control-permissions-reference.md) を参照してください。

### リソース
<a name="security_iam_service-with-iam-id-based-policies-resources"></a>

管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どの**プリンシパル**がどの**リソース**に対してどのような**条件**下で**アクション**を実行できるかということです。

`Resource` JSON ポリシー要素はアクションが適用されるオブジェクトを指定します。ベストプラクティスとして、[Amazon リソースネーム (ARN)](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference-arns.html) を使用してリソースを指定します。リソースレベルのアクセス許可をサポートしないアクションの場合は、ステートメントがすべてのリソースに適用されることを示すために、ワイルドカード (\$1) を使用します。

```
"Resource": "*"
```



例えば、以下のように ARN を使用して、ステートメント内でデプロイグループ (*myDeploymentGroup*) を指定できます。

```
"Resource": "arn:aws:codedeploy:us-west-2:123456789012:deploymentgroup:myApplication/myDeploymentGroup"
```

以下のようにワイルドカード文字 (\$1) を使用して、特定のアカウントに属するすべてのデプロイグループを指定することもできます。

```
"Resource": "arn:aws:codedeploy:us-west-2:123456789012:deploymentgroup:*"
```

すべてのリソースを指定する場合、または API アクションが ARN をサポートしていない場合は、以下の要領で、`Resource` エレメント内でワイルドカード文字 (\$1) を使用します。

```
"Resource": "*"
```

一部の CodeDeploy API アクションは複数のリソースを受け入れます (例: `BatchGetDeploymentGroups`)。単一のステートメントに複数のリソースを指定するには、以下のようにコンマで ARN を区切ります。

```
"Resource": ["arn1", "arn2"]
```

CodeDeploy には、CodeDeploy リソースを操作するための一連のオペレーションが用意されています。使用可能なオペレーションのリストについては、「[CodeDeploy アクセス許可 リファレンス](auth-and-access-control-permissions-reference.md)」を参照してください。

CodeDeploy リソースタイプとその ARN のリストを表示するには、*IAM ユーザーガイド* の [AWS CodeDeploy「で定義されるリソース」](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awscodedeploy.html) を参照してください。各リソースの ARN を指定できるアクションの詳細については、[AWS CodeDeployで定義されたアクション](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awscodedeploy.html#awscodedeploy-actions-as-permissions) を参照してください。

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

CodeDeploy では、プライマリリソースはデプロイグループです。ポリシーで Amazon リソースネーム (ARN) を使用して、ポリシーを適用するリソースを識別します。CodeDeploy は、アプリケーション、デプロイ設定、インスタンスなど、デプロイグループで使用できる他のリソースをサポートします。これらは サブリソースと呼ばれます。これらのリソースとサブリソースには、一意の ARN が関連付けられています。詳細については、*Amazon Web Services 全般のリファレンス* の「[Amazon リソースネーム (ARN)](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)」を参照してください。


| リソースタイプ | ARN 形式 | 
| --- | --- | 
| デプロイグループ |  `arn:aws:codedeploy:region:account-id:deploymentgroup:application-name/deployment-group-name`  | 
| アプリケーション |  `arn:aws:codedeploy:region:account-id:application:application-name`  | 
| Deployment configuration |  `arn:aws:codedeploy:region:account-id:deploymentconfig:deployment-configuration-name`   | 
| インスタンス |  `arn:aws:codedeploy:region:account-id:instance/instance-ID`  | 
|  すべての CodeDeploy リソース  |  `arn:aws:codedeploy:*`  | 
|  特定のリージョンの特定アカウントが所有するすべての CodeDeploy リソース  |  `arn:aws:codedeploy:region:account-id:*`  | 

**注記**  
のほとんどのサービスは、ARN でコロン (:) またはスラッシュ (/) を同じ文字として AWS 扱います。 ARNs ただし、CodeDeploy では、リソースパターンとルールで完全一致が使用されます。イベントパターンを作成するときは、リソースの ARN 構文と一致するように正しい ARN 文字を使用してください。

### 条件キー
<a name="security_iam_service-with-iam-id-based-policies-conditionkeys"></a>

CodeDeploy にはサービス固有条件キーがありませんが、いくつかのグローバル条件キーの使用がサポートされています。条件キーの詳細については、[IAM ユーザーガイド](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html) の「*AWS グローバル条件コンテキストキー」* を参照してください。



### 例
<a name="security_iam_service-with-iam-id-based-policies-examples"></a>



CodeDeploy アイデンティティベースのポリシーの例については、[AWS CodeDeploy アイデンティティベースのポリシーの例](security_iam_id-based-policy-examples.md) を参照してください。

## CodeDeploy のリソースベースのポリシー
<a name="security_iam_service-with-iam-resource-based-policies"></a>

CodeDeploy では、リソースベースのポリシーはサポートされていません。詳細なリソースベースのポリシーページの例を表示するには、[「リソースベースのポリシーの使用 AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html)」を参照してください。

## CodeDeploy タグに基づく認可
<a name="security_iam_service-with-iam-tags"></a>

CodeDeploy は、リソースのタグ付けやタグに基づいたアクセスの制御をサポートしていません。

## CodeDeploy IAM ロール
<a name="security_iam_service-with-iam-roles"></a>

[IAM ロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)は、特定のアクセス許可を持つ AWS アカウントのエンティティです。

### CodeDeploy での一時的な認証情報の使用
<a name="security_iam_service-with-iam-roles-tempcreds"></a>

一時的な認証情報を使用して、フェデレーションでサインインする、IAM 役割を引き受ける、またはクロスアカウント役割を引き受けることができます。一時的なセキュリティ認証情報を取得するには、[AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) や [GetFederationToken](https://docs.aws.amazon.com/STS/latest/APIReference/API_GetFederationToken.html) などの AWS STS API オペレーションを呼び出します。

CodeDeploy は、一時的な認証情報の使用をサポートしています。

### サービスリンクロール
<a name="security_iam_service-with-iam-roles-service-linked"></a>

CodeDeploy は、サービスにリンクされたロールをサポートしていません。

### サービス役割
<a name="security_iam_service-with-iam-roles-service"></a>

この機能により、ユーザーに代わってサービスが[サービスロール](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html#iam-term-service-role)を引き受けることが許可されます。この役割により、サービスがお客様に代わって他のサービスのリソースにアクセスし、アクションを完了することが許可されます。サービスロールは AWS アカウントに表示され、アカウントによって所有されます。つまり、ユーザーは、このロールのアクセス許可を変更できます。ただし、それにより、サービスの機能が損なわれる場合があります。

CodeDeploy はサービスロールをサポートします。

### CodeDeploy での IAM ロールの選択
<a name="security_iam_service-with-iam-roles-choose"></a>

CodeDeploy でデプロイグループリソースを作成する場合、 CodeDeploy がユーザーの代わりに自動的に Amazon EC2 にアクセスすることを許可するロールを選択する必要があります。サービスロールあるいはサービスにリンクされたロールを以前に作成している場合、CodeDeploy は選択できるロールのリストを表示します。EC2 インスタンスの起動と停止へのアクセスを許可するロールを選択することが重要です。