アイデンティティベースのポリシー (IAM) の例 - AWS CodePipeline

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

アイデンティティベースのポリシー (IAM) の例

IAM ID にポリシーをアタッチできます。例えば、次のオペレーションを実行できます。

  • アクセス許可ポリシーをアカウント内のユーザーまたはグループにアタッチする – CodePipeline コンソールでパイプラインを表示するアクセス許可をユーザーに付与するには、ユーザーが属するユーザーまたはグループにアクセス許可ポリシーをアタッチできます。

  • アクセス許可ポリシーをロールにアタッチする (クロスアカウントアクセス許可を付与する) – ID ベースのアクセス許可ポリシーをIAMロールにアタッチして、クロスアカウントアクセス許可を付与できます。例えば、アカウント A の管理者は、別の AWS アカウント (アカウント B など) または にクロスアカウントアクセス許可を付与するロールを AWS のサービス 次のように作成できます。

    1. アカウント 管理者はIAMロールを作成し、アカウント A のリソースに対するアクセス許可を付与するアクセス許可ポリシーをロールにアタッチします。

    2. アカウント A の管理者は、アカウント B をそのロールを引き受けるプリンシパルとして識別するロールに、信頼ポリシーをアタッチします。

    3. アカウント B 管理者は、アカウント B の任意のユーザーにロールを引き受けるアクセス許可を委任できます。これにより、アカウント B のユーザーがアカウント A のリソースを作成またはアクセスできるようになります。ロールを引き受ける AWS のサービス アクセス許可を付与する場合は、信頼ポリシーのプリンシパルもプリンシ AWS のサービス パルになることができます。

    を使用してアクセス許可IAMを委任する方法の詳細については、「 ユーザーガイド」の「アクセス管理」を参照してください。 IAM

以下に示しているアクセス許可ポリシーの例では、us-west-2 regionMyFirstPipeline という名前のパイプライン内のすべてのステージ間の移行を無効または有効にするアクセス許可を付与しています。

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

次の例は、111222333444 アカウントのポリシーを示しています。このポリシーでは、ユーザーが CodePipeline コンソールMyFirstPipelineで という名前のパイプラインを表示できますが、変更することはできません。このポリシーは、AWSCodePipeline_ReadOnlyAccess マネージドポリシーに基づいていますが、パイプライン MyFirstPipeline に固有であるため、このマネージドポリシーを直接使用することはできません。ポリシーを特定のパイプラインに制限しない場合は、 によって作成および維持される管理ポリシーのいずれかを使用することを検討してください CodePipeline。詳細については、「マネージドポリシーの使用」を参照してください。このポリシーは、 という名前のIAMロールなど、アクセス用に作成したロールにアタッチする必要がありますCrossAccountPipelineViewers

{ "Statement": [ { "Action": [ "codepipeline:GetPipeline", "codepipeline:GetPipelineState", "codepipeline:GetPipelineExecution", "codepipeline:ListPipelineExecutions", "codepipeline:ListActionExecutions", "codepipeline:ListActionTypes", "codepipeline:ListPipelines", "codepipeline:ListTagsForResource", "iam:ListRoles", "s3:ListAllMyBuckets", "codecommit:ListRepositories", "codedeploy:ListApplications", "lambda:ListFunctions", "codestar-notifications:ListNotificationRules", "codestar-notifications:ListEventTypes", "codestar-notifications:ListTargets" ], "Effect": "Allow", "Resource": "arn:aws:codepipeline:us-west-2:111222333444:MyFirstPipeline" }, { "Action": [ "codepipeline:GetPipeline", "codepipeline:GetPipelineState", "codepipeline:GetPipelineExecution", "codepipeline:ListPipelineExecutions", "codepipeline:ListActionExecutions", "codepipeline:ListActionTypes", "codepipeline:ListPipelines", "codepipeline:ListTagsForResource", "iam:ListRoles", "s3:GetBucketPolicy", "s3:GetObject", "s3:ListBucket", "codecommit:ListBranches", "codedeploy:GetApplication", "codedeploy:GetDeploymentGroup", "codedeploy:ListDeploymentGroups", "elasticbeanstalk:DescribeApplications", "elasticbeanstalk:DescribeEnvironments", "lambda:GetFunctionConfiguration", "opsworks:DescribeApps", "opsworks:DescribeLayers", "opsworks:DescribeStacks" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "CodeStarNotificationsReadOnlyAccess", "Effect": "Allow", "Action": [ "codestar-notifications:DescribeNotificationRule" ], "Resource": "*", "Condition": { "StringLike": { "codestar-notifications:NotificationsForResource": "arn:aws:codepipeline:*" } } } ], "Version": "2012-10-17" }

このポリシーを作成したら、111222333444 アカウントにIAMロールを作成し、そのロールにポリシーをアタッチします。ロールの信頼関係には、このロールを引き受ける AWS アカウントを追加する必要があります。次の例は、 のユーザーを許可するポリシーを示しています。111111111111 AWS 111222333444 アカウントで定義されたロールを引き受ける アカウント:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111111111111:root" }, "Action": "sts:AssumeRole" } ] }

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

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

アカウント内のユーザーがアクセスできる呼び出しとリソースを制限するIAMポリシーを作成し、それらのポリシーを管理ユーザーにアタッチできます。IAM ロールの作成方法と のIAMポリシーステートメントの例については CodePipeline、「」を参照してくださいカスタマーマネージドポリシーの例