CodePipeline サービスロールを管理する - AWS CodePipeline

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

CodePipeline サービスロールを管理する

CodePipeline サービスロールには、パイプラインで使用される AWS リソースへのアクセスを制御する 1 つ以上のポリシーが設定されています。このロールにさらにポリシーをアタッチしたり、ロールにアタッチされたポリシーを編集したり、 で他のサービスロールのポリシーを設定したりできます AWS。また、パイプラインへクロスアカウントアクセスを設定する際に、ポリシーをロールにアタッチすることもできます。

重要

ポリシーステートメントを変更するか、他のポリシーをロールにアタッチすると、パイプラインの動作が停止することがあります。CodePipeline のサービスロールは、必ず影響を理解した上で変更するようにしてください。パイプラインは、必ずサービスロールに変更を加えてからテストします。

注記

コンソールでは、2018 年 9 月より前に作成されたサービスロールは、oneClick_AWS-CodePipeline-Service_ID-Number という名前で作成されています。

2018 年 9 月以降に作成されたサービスロールは、サービスロール名の形式 AWSCodePipelineServiceRole-Region-Pipeline_Name を使用します。例えば、MyFirstPipeline という名前のパイプラインが eu-west-2 にある場合、コンソールはロールとポリシー AWSCodePipelineServiceRole-eu-west-2-MyFirstPipeline の名前を付けます。

CodePipeline サービスロールポリシー

CodePipeline サービスロールポリシーステートメントには、パイプラインを管理するための最小限のアクセス許可が含まれています。サービスロールステートメントを編集して、使用しないリソースへのアクセスを削除または追加できます。CodePipeline が各アクションに使用する最低限必要なアクセス許可については、適切なアクションリファレンスを参照してください。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowS3BucketAccess", "Effect": "Allow", "Action": [ "s3:GetBucketVersioning", "s3:GetBucketAcl", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::[[pipeArtifactBucketNames]]" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "{{accountId}}" } } }, { "Sid": "AllowS3ObjectAccess", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectAcl", "s3:GetObject", "s3:GetObjectVersion", "s3:PutObjectTagging", "s3:GetObjectTagging", "s3:GetObjectVersionTagging" ], "Resource": [ "arn:aws:s3:::[[pipeArtifactBucketNames]]/*" ], "Condition": { "StringEquals": { "aws:ResourceAccount": "{{accountId}}" } } } ] }
注記

ポリシーでは、ソースバケット内の S3 オブジェクトにタグがある場合、次のアクセス許可が必要です。

s3:PutObjectTagging s3:GetObjectTagging s3:GetObjectVersionTagging

CodePipeline サービスロールからアクセス許可を削除する

サービスロールのステートメントを編集して、使用していないリソースへのアクセスを削除します。例えば、いずれのパイプラインにも Elastic Beanstalk が含まれていない場合は、ポリシーステートメントを編集して Elastic Beanstalk リソースへのアクセスを許可するセクションを削除できます。

同様に、いずれのパイプラインにも CodeDeploy が含まれていない場合は、ポリシーステートメントを編集して CodeDeploy リソースへのアクセスを許可するセクションを削除できます。

{ "Action": [ "codedeploy:CreateDeployment", "codedeploy:GetApplicationRevision", "codedeploy:GetDeployment", "codedeploy:GetDeploymentConfig", "codedeploy:RegisterApplicationRevision" ], "Resource": "*", "Effect": "Allow" },

CodePipeline サービスロールにアクセス許可を追加する

サービスロールのポリシーステートメントは、パイプラインで使用する前に、デフォルトのサービスロールのポリシーステートメントに含まれていない AWS のサービス のアクセス許可で更新する必要があります。

これは、パイプラインに使用するサービスロールが、 のサポートが の CodePipeline に追加される前に作成された場合に特に重要です AWS のサービス。

以下の表は、他の AWS のサービスにサポートが追加された場合の例を示しています。

AWS のサービス CodePipeline のサポート日付
CodePipeline 呼び出しアクションのサポートが追加されました。「CodePipeline 呼び出しアクションのサービスロールポリシーのアクセス許可」を参照してください。 2025 年 3 月 14 日
EC2 アクションのサポートが追加されました。「EC2 デプロイアクションのサービスロールポリシーのアクセス許可」を参照してください。 2025 年 2 月 21 日
EKS アクションのサポートが追加されました。「サービスロールのポリシーのアクセス許可」を参照してください。 2025 年 2 月 20 日
Amazon Elastic Container Registry ECRBuildAndPublishアクションのサポートが追加されました。「サービスロールのアクセス許可: ECRBuildAndPublishアクション」を参照してください。 2024 年 11 月 22 日
Amazon Inspector InspectorScanアクションのサポートが追加されました。「サービスロールのアクセス許可: InspectorScanアクション」を参照してください。 2024 年 11 月 22 日
コマンドアクションのサポートが追加されました。「サービスロールのアクセス許可: コマンドアクション」を参照してください。 2024 年 10 月 3 日
AWS CloudFormation アクションのサポートが追加されました。「サービスロールのアクセス許可: CloudFormationStackSetアクション」および「サービスロールのアクセス許可: CloudFormationStackInstancesアクション」を参照してください。 2020 年 12 月 30 日
CodeCommit のフルクローン出力アーティファクト形式のアクションのサポートが追加されました。「サービスロールのアクセス許可: CodeCommit アクション」を参照してください。 2020 年 11 月 11 日
CodeBuild バッチビルドアクションのサポートが追加されました。「サービスロールのアクセス許可: CodeCommit アクション」を参照してください。 2020 年 7 月 30 日
AWS AppConfig アクションのサポートが追加されました。「サービスロールのアクセス許可: AppConfigアクション」を参照してください。 2020年6月22日
AWS Step Functions アクションのサポートが追加されました。「サービスロールのアクセス許可: StepFunctionsアクション」を参照してください。 2020 年 5 月 27 日
AWS CodeStar Connections アクションのサポートが追加されました。「サービスロールのアクセス許可: CodeConnections アクション」を参照してください。 2019 年 12 月 18 日
S3 デプロイアクションのサポートが追加されました。「サービスロールのアクセス許可: S3 デプロイアクション」を参照してください。 2019 年 1 月 16 日
CodeDeployToECS アクションアクションのサポートが追加されました。「サービスロールのアクセス許可: CodeDeployToECSアクション」を参照してください。 2018 年 11 月 27 日
Amazon ECR アクションのサポートが追加されました。「サービスロールのアクセス許可: Amazon ECR アクション」を参照してください。 2018 年 11 月 27 日
Service Catalog アクションのサポートが追加されました。「サービスロールのアクセス許可: Service Catalog アクション」を参照してください。 2018 年 10 月 16 日
AWS Device Farm アクションのサポートが追加されました。「サービスロールのアクセス許可: AWS Device Farm アクション」を参照してください。 2018 年 7 月 19 日
Amazon ECS アクションのサポートが追加されました。「サービスロールのアクセス許可: Amazon ECS 標準アクション」を参照してください。 2017 年 12 月 12 日 / 2017 年 7 月 21 日から開始されたタグ付け承認のオプトインのための更新
CodeCommit アクションのサポートが追加されました。「サービスロールのアクセス許可: CodeCommit アクション」を参照してください。 2016 年 4 月 18 日
AWS OpsWorks アクションのサポートが追加されました。「サービスロールのアクセス許可: AWS OpsWorks アクション」を参照してください。 2016 年 6 月 2 日
AWS CloudFormation アクションのサポートが追加されました。「サービスロールのアクセス許可: AWS CloudFormation アクション」を参照してください。 2016 年 11 月 3 日
AWS CodeBuild アクションのサポートが追加されました。「サービスロールのアクセス許可: CodeBuild アクション」を参照してください。 2016 年 12 月 1 日
Elastic Beanstalk アクションのサポートが追加されました。「サービスロールのアクセス許可: アクションをElasticBeanstalkデプロイする」を参照してください。 初回サービス起動
CodeDeploy アクションのサポートが追加されました。「サービスロールのアクセス許可: AWS CodeDeploy アクション」を参照してください。 初回サービス起動
S3 ソースアクションのサポートが追加されました。「サービスロールのアクセス許可: S3 ソースアクション」を参照してください。 初回サービスの起動

サポートされているサービスのアクセス許可を追加するには、次の手順に従います。

  1. にサインイン AWS Management Console し、https://console.aws.amazon.com/iam/ で IAM コンソールを開きます。

  2. IAM コンソールのナビゲーションペインで、[ロール] を選択し、ロールのリストから AWS-CodePipeline-Service ロール を選択します。

  3. [アクセス権限] タブの [インラインポリシー] で、サービスロールポリシーの列の [ポリシーの編集] を選択します。

  4. [Policy Document] ボックスに必要なアクセス許可を追加します。

    注記

    IAM ポリシーを作成するとき、最小限の特権を認めるという標準的なセキュリティアドバイスに従いましょう。そうすれば、タスクを実行するというリクエストのアクセス許可のみを認めることができます。一部の API コールはリソースベースのアクセス許可をサポートしており、アクセスを制限できます。たとえば、この場合、DescribeTasks および ListTasks を呼び出す際のアクセス許可を制限するために、ワイルドカード文字 (*) をリソース ARN またはワイルドカード文字 (*) を含むリソース ARN に置き換えることができます。最小権限アクセスを付与するポリシーの作成の詳細については、https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege を参照してください。

  5. [Review policy] (ポリシーの確認) を選択して、ポリシーにエラーがないことを確認します。ポリシーにエラーがなければ、ポリシーの適用 を選択します。