AWS CodePipeline アイデンティティベースポリシーの例
デフォルトでは、IAM ユーザーおよびロールには、CodePipeline リソースを作成または変更するアクセス許可はありません。AWS マネジメントコンソール、AWS CLI、または AWS API を使用してタスクを実行することもできません。IAM 管理者は、ユーザーとロールに必要な、指定されたリソースで特定の API オペレーションを実行する権限をユーザーとロールに付与する IAM ポリシーを作成する必要があります。続いて、管理者はそれらの権限が必要な IAM ユーザーまたはグループにそのポリシーをアタッチする必要があります。
JSON ポリシードキュメントのこれらの例を使用して、IAM アイデンティティベースのポリシーを作成する方法については、「IAM ユーザーガイド」の「JSON タブでのポリシーの作成」を参照してください。
別のアカウントのリソースを使用するパイプラインを作成する方法、および関連するポリシーの例については、「他の AWS アカウントからリソースを使用するパイプラインを CodePipeline で作成する方法について説明します。」を参照してください。
トピック
カスタマーマネージドポリシーの例
このセクションでは、さまざまな CodePipeline アクションのアクセス権限を付与するユーザーポリシー例を示しています。これらのポリシーは、CodePipeline API、AWS SDK、または AWS CLI を使用しているときに機能します。コンソールを使用している場合は、コンソールに固有の追加のアクセス許可を付与する必要があります。詳細については、「CodePipeline コンソールを使用するために必要なアクセス許可」を参照してください。
注記
各例は全て、米国西部 (オレゴン) リージョン (us-west-2) を使用し、架空のアカウント ID を使用しています。
例
例 1: パイプラインの状態を取得するアクセス許可を付与する
以下の例では、パイプライン (MyFirstPipeline) の状態を取得する権限を付与します。
例 2: ステージ間の移行を有効または無効にするアクセス許可を付与する
以下の例では、パイプライン (MyFirstPipeline) のすべてのステージ間での移行を無効化または有効化するアクセス許可を付与します。
ユーザーが、パイプラインの 1 つのステージでの移行を無効化または有効化できるようにするには、ステージを指定する必要があります。例えば、ユーザーがパイプライン Staging のステージ MyFirstPipeline の移行を有効化または無効化できるようにするには、以下を行います。
"Resource": "arn:aws:codepipeline:us-west-2:111222333444:MyFirstPipeline/Staging"
例 3: 使用可能なすべてのアクションタイプのリストを取得するアクセス許可を付与する
以下の例では、us-west-2 リージョンのパイプラインで利用できるすべてのアクションの種類のリストを取得するためのアクセス許可を付与します。
例 4: 手動の承認アクションを承認または拒否するアクセス許可を付与する
以下の例では、パイプライン Staging のステージ MyFirstPipeline で手動の承認アクションを承認または拒否するためのアクセス許可を付与します。
例 5: カスタムアクションのジョブをポーリングするアクセス許可を付与する
以下の例では、カスタムアクション TestProvider のジョブをポーリングするためのアクセス許可を付与します。これは、すべてのパイプラインで最初のバージョンのアクションの種類である Test です。
注記
カスタムアクションのジョブワーカーは、異なる AWS アカウントを使用して設定するか、特定の IAM ロールで実行する必要があります。
例 6: Jenkins を AWS CodePipeline と統合するためのポリシーをアタッチまたは編集する
Jenkins を使用するためにパイプラインを設定して、ビルドまたはテストを行う場合は、統合用に別の ID を作成し、Jenkins と CodePipeline の統合に必要な最小のアクセス許可を持つ IAM ポリシーをアタッチします。このポリシーは、AWSCodePipelineCustomActionAccess マネージドポリシーと同じです。以下の例では、Jenkins との統合で使用するポリシーを示します。
例 7: パイプラインへのクロスアカウントアクセスを設定する
別の AWS アカウントのユーザーおよびグループのパイプラインへのアクセスを設定できます。推奨される方法は、パイプラインが作成されたアカウントにロールを作成することです。ロールは、他の AWS アカウントのユーザーに、そのロールを引き受け、パイプラインへのアクセスを許可する必要があります。詳細については、「ウォークスルー: ロールを使用したクロスアカウントアクセス」を参照してください。
以下の例では、アカウント (80398EXAMPLE) のポリシーを示します。このポリシーでは、ユーザーは CodePipeline コンソールのパイプライン MyFirstPipeline を表示することはできますが、変更することはできません。このポリシーは、AWSCodePipeline_ReadOnlyAccess マネージドポリシーに基づいていますが、パイプライン MyFirstPipeline に固有であるため、このマネージドポリシーを直接使用することはできません。ポリシーを特定のパイプラインに制限しない場合は、CodePipeline によって作成および保守されているいずれかのマネージドポリシーを使用することを検討してください。詳細については、「マネージドポリシーの使用」を参照してください。このポリシーは、アクセス用に作成した IAM ロール (CrossAccountPipelineViewers という名前のロールなど) にアタッチする必要があります。
このポリシーを作成したら、アカウント (80398EXAMPLE) に IAM ロールを作成し、そのロールにポリシーをアタッチします。ロールの信頼関係で、このロールを継承する AWS アカウントを追加する必要があります。
以下の例で示しているのは、11111111111111 AWS アカウントで作成されたポリシーで、80398EXAMPLE アカウントで定義された CrossAccountPipelineViewers という名前のロールをユーザーが引き受けることを許可するポリシーを示しています。