

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

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

IAM を使用して CodePipeline へのアクセスを管理する前に、CodePipeline で使用できる IAM 機能について理解しておく必要があります。CodePipeline およびその他の AWS のサービス が IAM と連携する方法の概要を把握するには、[AWS のサービス 「IAM ユーザーガイド」の「IAM と連携する ](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_aws-services-that-work-with-iam.html)」を参照してください。 **

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

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

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

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

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

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

CodePipeline のポリシーアクションは、アクションの前にプレフィックス `codepipeline:` を使用します：。

例えば、アカウント内の既存のパイプラインを表示するアクセス許可を他のユーザーに付与するには、ユーザーのポリシーに `codepipeline:GetPipeline` アクションを含めます。ポリシーステートメントには`Action` または `NotAction` 要素を含める必要があります。CodePipeline は、このサービスで実行できるタスクを記述する独自のアクションのセットを定義します。

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

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

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

```
"Action": "codepipeline:Get*"
```



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

### リソース
<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": "*"
```



#### リソースとオペレーション
<a name="ACP_ARN_Format"></a>

 では、プライマリリソースはパイプラインです。ポリシーで Amazon リソースネーム (ARN) を使用して、ポリシーを適用するリソースを識別します。 は、ステージ、アクション、カスタムアクションなど、プライマリリソースで使用できる他のリソースを選択します。これらは サブリソースと呼ばれます。これらのリソースとサブリソースには、一意の Amazon リソースネーム (ARN) が関連付けられています。ARNs、の[「Amazon リソースネーム (ARN) と AWS のサービス 名前空間](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)」を参照してください*Amazon Web Services 全般のリファレンス*。パイプラインに関連付けられたパイプラインの ARN を取得するには、「**設定**コンソールに表示されるパイプラインの ARN 」を参照してください。詳細については、「[パイプラインの ARN とサービスロール ARN (コンソール) を表示します。](pipelines-settings-console.md)」を参照してください。


| リソースタイプ | ARN 形式 | 
| --- | --- | 
|  パイプライン  |  arn:aws:コードパイプライン:[*領域*]:[*アカウント*]:[*パイプライン名*]  | 
| ステージ |  arn:aws:コードパイプライン:[*領域*]:[*アカウント*]:[*パイプライン名*/*ステージ名*]  | 
| アクション |  arn:aws:codepipeline:*region*:*account*:*pipeline-name*/*stage-name*/*action-name*  | 
| カスタムアクション | arn:aws:codepipeline:region:account:actiontype:owner/category/provider/version | 
|  すべてのリソース  |  arn:aws:codepipeline:\$1  | 
|  特定リージョンの特定アカウントが所有するすべての リソース  |  arn:aws:コードパイプライン:[*領域*]:[*アカウント*]:\$1  | 

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

 では、リソースレベルのアクセス許可をサポートする API コールがあります。リソースレベルのアクセス許可は、API コールでリソース ARN を指定できるかどうか、または API コールでワイルドカードを使用したすべてのリソースの呼び出しのみが可能かどうかを示します。リソースレベルのアクセス許可の詳細な説明と、リソースレベルのアクセス許可をサポートする CodePipeline API コールの一覧については、[アクセス許可に関するリファレンス](permissions-reference.md) を参照してください。

例えば、以下の要領で ARN を使用して、ステートメント内の特定のパイプライン (*myPipeline*) を指定することができます。

```
"Resource": "arn:aws:codepipeline:us-east-2:111222333444:myPipeline"
```

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

```
"Resource": "arn:aws:codepipeline:us-east-2:111222333444:*"
```

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

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

**注記**  
IAM ポリシーを作成するとき、最小限の特権を認めるという標準的なセキュリティアドバイスに従いましょう。そうすれば、タスクを実行するというリクエストのアクセス許可のみを認めることができます。API コールが ARN をサポートしている場合、リソースレベルのアクセス許可をサポートしていて、ワイルドカード文字 (\$1) を使用する必要はありません。

一部の API コールは、複数のリソース ( など) を受け入れます`GetPipeline`。単一のステートメントに複数のリソースを指定するには、以下のようにコンマで ARN を区切ります。

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

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

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

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

`Condition` 要素は、定義された基準に基づいてステートメントが実行される時期を指定します。イコールや未満などの[条件演算子](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html)を使用して条件式を作成して、ポリシーの条件とリクエスト内の値を一致させることができます。すべての AWS グローバル条件キーを確認するには、*「IAM ユーザーガイド*」の[AWS 「グローバル条件コンテキストキー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)」を参照してください。

CodePipeline は独自の条件キーを定義し、一部のグローバル条件キーの使用をサポートしています。すべての AWS グローバル条件キーを確認するには、*IAM ユーザーガイド*の[AWS 「グローバル条件コンテキストキー](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html)」を参照してください。



 すべての Amazon EC2 アクションは `aws:RequestedRegion` および `ec2:Region` 条件キーをサポートします。詳細については、「[例: 特定のリージョンへのアクセスの制限](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ExamplePolicies_EC2.html#iam-example-region)」を参照してください。

CodePipeline 条件キーのリストを確認するには、[IAM ユーザーガイド](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awscodepipeline.html#awscodepipeline-policy-keys) の* AWS CodePipelineの条件キー*を参照してください。条件キーを使用できるアクションとリソースについては、[「 で定義されるアクション AWS CodePipeline](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awscodepipeline.html#awscodepipeline-actions-as-permissions)」を参照してください。

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



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

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

CodePipeline は、リソースベースのポリシーに対応していません。ただし、CodePipeline に関連する S3 サービスのリソースベースのポリシーの例が提供されています。

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



CodePipeline リソースベースのポリシーの例を表示する場合、[AWS CodePipeline リソースベースのポリシーの例](security_iam_resource-based-policy-examples.md) を参照してください。

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

CodePipeline リソースにタグをアタッチしたり、リクエスト内のタグを CodePipeline に渡したりできます。タグに基づいてアクセスを制御するには、`codepipeline:ResourceTag/key-name`、`aws:RequestTag/key-name`、または `aws:TagKeys` の条件キーを使用して、ポリシーの [条件要素](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition.html) でタグ情報を提供します。CodePipeline リソースのタグ付けの詳細については、[リソースのタグ付け](tag-resources.md) を参照してください。

リソースのタグに基づいてリソースへのアクセスを制限するためのアイデンティティベースポリシーの例を表示するには、「[タグを使用した CodePipeline リソースへのアクセスのコントロール](tag-based-access-control.md)」を参照してください。

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

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

### CodePipeline で一時的な認証情報の使用
<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 オペレーションを呼び出します。

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

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

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

CodePipeline はサービスロールに対応しています。