

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

# AWS CodePipeline アイデンティティベースのポリシーの例
<a name="security_iam_id-based-policy-examples"></a>

デフォルトでは、IAM ユーザーおよびロールには、CodePipeline リソースを作成または変更するアクセス許可はありません。また、 AWS マネジメントコンソール、 AWS CLI、または AWS API を使用してタスクを実行することはできません。IAM 管理者は、ユーザーとロールに必要な、指定されたリソースで特定の API オペレーションを実行する権限をユーザーとロールに付与する IAM ポリシーを作成する必要があります。続いて、管理者はそれらの権限が必要な IAM ユーザーまたはグループにそのポリシーをアタッチする必要があります。

JSON ポリシードキュメントのこれらの例を使用して、IAM アイデンティティベースのポリシーを作成する方法については、「IAM ユーザーガイド」の「[JSON タブでのポリシーの作成](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create.html#access_policies_create-json-editor)」を参照してください。

別のアカウントのリソースを使用するパイプラインを作成する方法、および関連するポリシーの例については、「[別の AWS アカウントのリソースを使用するパイプラインを CodePipeline に作成する](pipelines-create-cross-account.md)」を参照してください。

**Topics**
+ [ポリシーに関するベストプラクティス](security_iam_service-with-iam-policy-best-practices.md)
+ [コンソールでのリソースの表示](security-iam-resources-console.md)
+ [自分の権限の表示をユーザーに許可する](security_iam_id-based-policy-examples-view-own-permissions.md)
+ [アイデンティティベースのポリシー (IAM) の例](security-iam-id-policies-examples.md)
+ [タグを使用した CodePipeline リソースへのアクセスのコントロール](tag-based-access-control.md)
+ [コンソールの使用に必要な許可](security-iam-permissions-console.md)
+ [コンソールでコンピューティングログを表示するために必要なアクセス許可](security-iam-permissions-console-logs.md)
+ [AWS の 管理ポリシー AWS CodePipeline](managed-policies.md)
+ [カスタマーマネージドポリシーの例](#customer-managed-policies)

## カスタマーマネージドポリシーの例
<a name="customer-managed-policies"></a>

このセクションでは、さまざまな アクションのアクセス許可を付与するユーザーポリシーの例を示しています。これらのポリシーは、API、 AWS SDKs、または を使用している場合に機能します AWS CLI。コンソールを使用している場合は、コンソールに固有の追加のアクセス許可を付与する必要があります。詳細については、「[コンソールの使用に必要な許可](security-iam-permissions-console.md)」を参照してください。

**注記**  
各例は全て、米国西部 (オレゴン) リージョン (`us-west-2`) を使用し、架空のアカウント ID を使用しています。

**例**
+ [例 1: パイプラインの状態を取得するアクセス許可を付与する](#identity-based-policies-example-1)
+ [例 2: ステージ間の移行を有効または無効にするアクセス許可を付与する](#identity-based-policies-example-2)
+ [例 3: 使用可能なすべてのアクションタイプのリストを取得するアクセス許可を付与する](#identity-based-policies-example-3)
+ [例 4: 手動の承認アクションを承認または拒否するアクセス許可を付与する](#identity-based-policies-example-4)
+ [例 5: カスタムアクションのジョブをポーリングするアクセス許可を付与する](#identity-based-policies-example-5)
+ [例 6: Jenkins と AWS CodePipeline の統合に関するポリシーをアタッチまたは編集する](#identity-based-policies-example-6)
+ [例 7: パイプラインへのクロスアカウントアクセスを設定する](#identity-based-policies-example-7)

### 例 1: パイプラインの状態を取得するアクセス許可を付与する
<a name="identity-based-policies-example-1"></a>

以下の例では、パイプライン (`MyFirstPipeline`) の状態を取得する権限を付与します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codepipeline:GetPipelineState"
            ],
            "Resource": "arn:aws:codepipeline:us-west-2:111222333444:MyFirstPipeline"
        }
    ]
}
```

------

### 例 2: ステージ間の移行を有効または無効にするアクセス許可を付与する
<a name="identity-based-policies-example-2"></a>

以下の例では、パイプライン (`MyFirstPipeline`) のすべてのステージ間での移行を無効化または有効化するアクセス許可を付与します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codepipeline:DisableStageTransition",
                "codepipeline:EnableStageTransition"
            ],
            "Resource": "arn:aws:codepipeline:us-west-2:111222333444:MyFirstPipeline/*"
        }
    ]
}
```

------

ユーザーが、パイプラインの 1 つのステージでの移行を無効化または有効化できるようにするには、ステージを指定する必要があります。例えば、ユーザーがパイプライン `Staging` のステージ `MyFirstPipeline` の移行を有効化または無効化できるようにするには、以下を行います。

```
"Resource": "arn:aws:codepipeline:us-west-2:111222333444:MyFirstPipeline/Staging"
```

### 例 3: 使用可能なすべてのアクションタイプのリストを取得するアクセス許可を付与する
<a name="identity-based-policies-example-3"></a>

以下の例では、`us-west-2` リージョンのパイプラインで利用できるすべてのアクションの種類のリストを取得するためのアクセス許可を付与します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codepipeline:ListActionTypes"
            ],
            "Resource": "arn:aws:codepipeline:us-west-2:111222333444:actiontype:*"
        }
    ]
}
```

------

### 例 4: 手動の承認アクションを承認または拒否するアクセス許可を付与する
<a name="identity-based-policies-example-4"></a>

以下の例では、パイプライン `MyFirstPipeline` のステージ `Staging` で手動の承認アクションを承認または拒否するためのアクセス許可を付与します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codepipeline:PutApprovalResult"
            ],
            "Resource": "arn:aws:codepipeline:us-west-2:111222333444:MyFirstPipeline/Staging/*"
        }
    ]
}
```

------

### 例 5: カスタムアクションのジョブをポーリングするアクセス許可を付与する
<a name="identity-based-policies-example-5"></a>

以下の例では、カスタムアクション `TestProvider` のジョブをポーリングするためのアクセス許可を付与します。これは、すべてのパイプラインで最初のバージョンのアクションの種類である `Test` です。

**注記**  
カスタムアクションのジョブワーカーは、異なる AWS アカウントを使用して設定するか、特定の IAM ロールで実行する必要があります。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codepipeline:PollForJobs"
            ],
            "Resource": [
                "arn:aws:codepipeline:us-west-2:111222333444:actionType:{{Custom}}/{{Test}}/{{TestProvider}}/{{1}}"
            ]
        }
    ]
}
```

------

### 例 6: Jenkins と AWS CodePipeline の統合に関するポリシーをアタッチまたは編集する
<a name="identity-based-policies-example-6"></a>

ビルドまたはテストに Jenkins を使用するようにパイプラインを設定する場合は、その統合用に別の ID を作成し、Jenkins と の統合に必要な最小限のアクセス許可を持つ IAM ポリシーをアタッチします。このポリシーは、`AWSCodePipelineCustomActionAccess` マネージドポリシーと同じです。以下の例では、Jenkins との統合で使用するポリシーを示します。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 

    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codepipeline:AcknowledgeJob",
                "codepipeline:GetJobDetails",
                "codepipeline:PollForJobs",
                "codepipeline:PutJobFailureResult",
                "codepipeline:PutJobSuccessResult"
            ],
            "Resource": "*"
        }
    ]
}
```

------

### 例 7: パイプラインへのクロスアカウントアクセスを設定する
<a name="identity-based-policies-example-7"></a>

別の AWS アカウントのユーザーおよびグループのパイプラインへのアクセスを設定できます。推奨される方法は、パイプラインが作成されたアカウントにロールを作成することです。ロールは、他の AWS アカウントのユーザーがそのロールを引き受けてパイプラインにアクセスすることを許可する必要があります。詳細については、「[ウォークスルー: ロールを使用したクロスアカウントアクセス](https://docs.aws.amazon.com/IAM/latest/UserGuide/walkthru_cross-account-with-roles.html)」を参照してください。

次の例は、80398EXAMPLE アカウントのポリシーを示しています。このポリシーでは、コンソール`MyFirstPipeline`で という名前のパイプラインを表示することはできますが、変更することはできません。このポリシーは、`AWSCodePipeline_ReadOnlyAccess` マネージドポリシーに基づいていますが、パイプライン `MyFirstPipeline` に固有であるため、このマネージドポリシーを直接使用することはできません。ポリシーを特定のパイプラインに制限しない場合は、 によって作成および保守されているいずれかのマネージドポリシーを使用することを検討してください。詳細については、「[マネージドポリシーの使用](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-using.html)」を参照してください。このポリシーは、アクセス用に作成した IAM ロール (`CrossAccountPipelineViewers` という名前のロールなど) にアタッチする必要があります。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 

    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "codepipeline:GetPipeline",
                "codepipeline:GetPipelineState",
                "codepipeline:ListActionTypes",
                "codepipeline:ListPipelines",
                "iam:ListRoles",
                "s3:GetBucketPolicy",
                "s3:GetObject",
                "s3:ListAllMyBuckets",
                "s3:ListBucket",
                "codedeploy:GetApplication",
                "codedeploy:GetDeploymentGroup",
                "codedeploy:ListApplications",
                "codedeploy:ListDeploymentGroups",
                "elasticbeanstalk:DescribeApplications",
                "elasticbeanstalk:DescribeEnvironments",
                "lambda:GetFunctionConfiguration",
                "lambda:ListFunctions"
            ],
            "Resource": "arn:aws:codepipeline:us-east-2:{{111122223333}}:MyFirstPipeline"
        }
    ]
}
```

------

このポリシーを作成したら、アカウント (80398EXAMPLE) に IAM ロールを作成し、そのロールにポリシーをアタッチします。ロールの信頼関係で、このロールを引き受ける AWS アカウントを追加する必要があります。

次の例は、ユーザーが 80398EXAMPLE アカウントで という名前のロールを引き受けることを許可する {{111111111111}} AWS アカウント`CrossAccountPipelineViewers`で作成されたポリシーを示しています。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "sts:AssumeRole",
            "Resource": "arn:aws:iam::{{111122223333}}:role/{{CrossAccountPipelineViewers}}"
        }
    ]
}
```

------