翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS CodePipelineのためのアイデンティティおよびアクセス管理
AWS Identity and Access Management (IAM) は、管理者が AWS リソースへのアクセスを安全に制御 AWS のサービス するのに役立つ です。IAM 管理者は、誰を認証 (サインイン) し、誰に CodePipeline リソースの使用を許可する (アクセス許可を付与する) かを制御します。IAM は、追加料金なしで AWS のサービス 使用できる です。
トピック
対象者
AWS Identity and Access Management (IAM) の使用方法は、 で行う作業によって異なります CodePipeline。
サービスユーザー – CodePipeline サービスを使用してジョブを実行する場合、管理者は必要な認証情報とアクセス許可を提供します。より多くの CodePipeline 機能を使用して作業を行う場合、追加のアクセス許可が必要になる場合があります。アクセスの管理方法を理解しておくと、管理者に適切な許可をリクエストするうえで役立ちます。の機能にアクセスできない場合は CodePipeline、「」を参照してくださいAWS CodePipeline ID とアクセスのトラブルシューティング。
サービス管理者 – 社内の CodePipeline リソースを担当している場合は、 へのフルアクセスがある可能性があります CodePipeline。サービスユーザーがどの CodePipeline 機能やリソースにアクセスできるかを判断するのは、お客様の仕事です。その後、IAM管理者にリクエストを送信して、サービスユーザーのアクセス許可を変更する必要があります。このページの情報を確認して、 の基本概念を理解しますIAM。会社IAMで を使用する方法の詳細については CodePipeline、「」を参照してくださいでの の AWS CodePipeline 仕組み IAM。
IAM 管理者 - IAM管理者の場合は、 へのアクセスを管理するためのポリシーの作成方法の詳細を知りたい場合があります CodePipeline。で使用できる CodePipeline アイデンティティベースのポリシーの例を表示するにはIAM、「」を参照してくださいAWS CodePipeline アイデンティティベースポリシーの例。
アイデンティティを使用した認証
認証は、アイデンティティ認証情報 AWS を使用して にサインインする方法です。として、IAMユーザーとして AWS アカウントのルートユーザー、またはIAMロールを引き受けて認証 ( にサインイン AWS) する必要があります。
ID ソースを介して提供された認証情報を使用して、フェデレーティッド ID AWS として にサインインできます。 AWS IAM Identity Center (IAM Identity Center) ユーザー、会社のシングルサインオン認証、Google または Facebook の認証情報は、フェデレーティッド ID の例です。フェデレーティッド ID としてサインインすると、管理者は以前に IAMロールを使用して ID フェデレーションをセットアップしていました。フェデレーション AWS を使用して にアクセスすると、間接的にロールを引き受けることになります。
ユーザーの種類に応じて、 AWS Management Console または AWS アクセスポータルにサインインできます。へのサインインの詳細については AWS、 AWS サインイン ユーザーガイドの「 へのサインイン方法 AWS アカウント」を参照してください。
AWS プログラムで にアクセスする場合、 はソフトウェア開発キット (SDK) とコマンドラインインターフェイス (CLI) AWS を提供し、認証情報を使用してリクエストに暗号化して署名します。 AWS ツールを使用しない場合は、自分でリクエストに署名する必要があります。推奨される方法を使用してリクエストに署名する方法の詳細については、 IAM ユーザーガイドのAWS API「リクエストの署名バージョン 4」を参照してください。
使用する認証方法を問わず、追加セキュリティ情報の提供をリクエストされる場合もあります。例えば、 では、アカウントのセキュリティを高めるために多要素認証 (MFA) を使用する AWS ことをお勧めします。詳細については、AWS IAM Identity Center 「 ユーザーガイド」の「多要素認証」とAWS 「 ユーザーガイド」の「多要素認証IAM」を参照してください。 IAM
AWS アカウントのルートユーザー
を作成するときは AWS アカウント、アカウント内のすべての および リソースへの AWS のサービス 完全なアクセス権を持つ 1 つのサインイン ID から始めます。この ID は AWS アカウント ルートユーザーと呼ばれ、アカウントの作成に使用した E メールアドレスとパスワードでサインインしてアクセスします。日常的なタスクには、ルートユーザーを使用しないことを強くお勧めします。ルートユーザーの認証情報は保護し、ルートユーザーでしか実行できないタスクを実行するときに使用します。ルートユーザーとしてサインインする必要があるタスクの完全なリストについては、IAM「 ユーザーガイド」の「ルートユーザーの認証情報を必要とするタスク」を参照してください。
IAM ユーザーとグループ
IAM ユーザーとは、1 人のユーザーまたはアプリケーションに対して特定のアクセス許可 AWS アカウント を持つ 内の ID です。可能であれば、パスワードやアクセスキーなどの長期的な認証情報を持つIAMユーザーを作成する代わりに、一時的な認証情報に依存することをお勧めします。ただし、IAMユーザーとの長期的な認証情報を必要とする特定のユースケースがある場合は、アクセスキーをローテーションすることをお勧めします。詳細については、IAM「 ユーザーガイド」の「長期的な認証情報を必要とするユースケースのアクセスキーを定期的にローテーションする」を参照してください。
IAM グループは、IAMユーザーのコレクションを指定する ID です。グループとしてサインインすることはできません。グループを使用して、複数のユーザーに対して一度に権限を指定できます。多数のユーザーグループがある場合、グループを使用することで権限の管理が容易になります。例えば、 という名前のグループがありIAMAdmins、そのグループにIAMリソースを管理するアクセス許可を付与できます。
ユーザーは、ロールとは異なります。ユーザーは 1 人の人または 1 つのアプリケーションに一意に関連付けられますが、ロールはそれを必要とする任意の人が引き受けるようになっています。ユーザーには永続的な長期の認証情報がありますが、ロールでは一時認証情報が提供されます。詳細については、「 ユーザーガイド」のIAM「ユーザーのユースケース」を参照してください。 IAM
IAM ロール
IAM ロールは、特定のアクセス許可 AWS アカウント を持つ 内の ID です。ユーザーと似ていますがIAM、特定の人物には関連付けられていません。でIAMロールを一時的に引き受けるには AWS Management Console、ユーザーからIAMロール (コンソール) に切り替えることができます。または オペレーションを AWS CLI AWS API呼び出すか、カスタム を使用してロールを引き受けることができますURL。ロールを使用する方法の詳細については、 IAM ユーザーガイドの「ロールを引き受ける方法」を参照してください。
IAM 一時的な認証情報を持つ ロールは、以下の状況で役立ちます。
-
フェデレーションユーザーアクセス – フェデレーティッド ID に許可を割り当てるには、ロールを作成してそのロールの許可を定義します。フェデレーティッド ID が認証されると、その ID はロールに関連付けられ、ロールで定義されている許可が付与されます。フェデレーションのロールの詳細については、 IAM ユーザーガイドの「サードパーティー ID プロバイダーのロールの作成」を参照してください。IAM Identity Center を使用する場合は、アクセス許可セットを設定します。ID が認証された後にアクセスできる内容を制御するために、IAMIdentity Center はアクセス許可セットを のロールに関連付けますIAM。アクセス許可セットの詳細については、「AWS IAM Identity Center ユーザーガイド」の「アクセス許可セット」を参照してください。
-
一時的なIAMユーザーアクセス許可 – IAM ユーザーまたはロールは、特定のタスクに対して異なるアクセス許可を一時的に引き受けるIAMロールを引き受けることができます。
-
クロスアカウントアクセス — IAMロールを使用して、別のアカウントの誰か (信頼できるプリンシパル) が自分のアカウントのリソースにアクセスすることを許可できます。クロスアカウントアクセスを許可する主な方法は、ロールを使用することです。ただし、一部の では AWS のサービス、 (プロキシとしてロールを使用する代わりに) リソースに直接ポリシーをアタッチできます。クロスアカウントアクセスのロールとリソースベースのポリシーの違いについては、IAM「 ユーザーガイド」の「 のクロスアカウントリソースアクセスIAM」を参照してください。
-
クロスサービスアクセス — 他の の機能 AWS のサービス を使用するものもあります AWS のサービス。例えば、 サービスで呼び出しを行うと、そのサービスが Amazon でアプリケーションを実行EC2したりAmazon S3にオブジェクトを保存したりするのが一般的です。サービスでは、呼び出し元プリンシパルの許可、サービスロール、またはサービスリンクロールを使用してこれを行う場合があります。
-
転送アクセスセッション (FAS) – IAM ユーザーまたはロールを使用して でアクションを実行すると AWS、プリンシパルと見なされます。一部のサービスを使用する際に、アクションを実行することで、別のサービスの別のアクションがトリガーされることがあります。FAS は、 を呼び出すプリンシパルのアクセス許可と AWS のサービス、ダウンストリームサービス AWS のサービス へのリクエストのリクエストを使用します。FAS リクエストは、サービスが他の AWS のサービス または リソースとのやり取りを完了する必要があるリクエストを受け取った場合にのみ行われます。この場合、両方のアクションを実行するための権限が必要です。FAS リクエストを行う際のポリシーの詳細については、「アクセスセッションの転送」を参照してください。
-
サービスロール – サービスロールは、ユーザーに代わってアクションを実行するためにサービスが引き受けるIAMロールです。IAM 管理者は、 内からサービスロールを作成、変更、削除できますIAM。詳細については、IAM「 ユーザーガイド」の「 にアクセス許可を委任するロールの作成 AWS のサービス」を参照してください。
-
サービスにリンクされたロール – サービスにリンクされたロールは、 にリンクされたサービスロールの一種です AWS のサービス。サービスは、ユーザーに代わってアクションを実行するロールを引き受けることができます。サービスにリンクされたロールは に表示され AWS アカウント 、 サービスによって所有されます。IAM 管理者は、サービスにリンクされたロールのアクセス許可を表示できますが、編集することはできません。
-
-
Amazon で実行されているアプリケーション EC2 – IAMロールを使用して、EC2インスタンスで実行され、 AWS CLI または AWS API リクエストを行うアプリケーションの一時的な認証情報を管理できます。これは、EC2インスタンス内にアクセスキーを保存するよりも望ましいです。 AWS ロールをEC2インスタンスに割り当て、そのすべてのアプリケーションで使用できるようにするには、インスタンスにアタッチされたインスタンスプロファイルを作成します。インスタンスプロファイルには ロールが含まれており、EC2インスタンスで実行されているプログラムが一時的な認証情報を取得できるようにします。詳細については、IAM「 ユーザーガイド」のIAM「ロールを使用して Amazon EC2インスタンスで実行されているアプリケーションにアクセス許可を付与する」を参照してください。
ポリシーを使用したアクセスの管理
でアクセスを制御するには、ポリシー AWS を作成し、 AWS アイデンティティまたはリソースにアタッチします。ポリシーは AWS 、アイデンティティまたはリソースに関連付けられているときにアクセス許可を定義する オブジェクトです。 は、プリンシパル (ユーザー、ルートユーザー、またはロールセッション) がリクエストを行うときに、これらのポリシー AWS を評価します。ポリシーでの権限により、リクエストが許可されるか拒否されるかが決まります。ほとんどのポリシーはJSONドキュメント AWS として に保存されます。JSON ポリシードキュメントの構造と内容の詳細については、「 ユーザーガイド」のJSON「ポリシーの概要」を参照してください。 IAM
管理者はポリシーを使用して AWS JSON、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。
デフォルトでは、ユーザーやロールに権限はありません。必要なリソースに対してアクションを実行するアクセス許可をユーザーに付与するには、IAM管理者はIAMポリシーを作成できます。その後、管理者はIAMポリシーをロールに追加し、ユーザーはロールを引き受けることができます。
IAM ポリシーは、 オペレーションの実行に使用する方法に関係なく、アクションのアクセス許可を定義します。例えば、iam:GetRole
アクションを許可するポリシーがあるとします。そのポリシーを持つユーザーは、 AWS Management Console、、 AWS CLIまたは AWS からロール情報を取得できますAPI。
アイデンティティベースのポリシー
ID ベースのポリシーは、IAMユーザー、ユーザーのグループ、ロールなどの ID にアタッチできるJSONアクセス許可ポリシードキュメントです。これらのポリシーは、ユーザーとロールが実行できるアクション、リソース、および条件をコントロールします。ID ベースのポリシーを作成する方法については、IAM「 ユーザーガイド」の「カスタマーマネージドポリシーを使用したカスタムIAMアクセス許可の定義」を参照してください。
アイデンティティベースのポリシーは、さらにインラインポリシーまたはマネージドポリシーに分類できます。インラインポリシーは、単一のユーザー、グループ、またはロールに直接埋め込まれています。マネージドポリシーは、 内の複数のユーザー、グループ、ロールにアタッチできるスタンドアロンポリシーです AWS アカウント。管理ポリシーには AWS 、管理ポリシーとカスタマー管理ポリシーが含まれます。マネージドポリシーまたはインラインポリシーを選択する方法については、IAM「 ユーザーガイド」の「マネージドポリシーとインラインポリシーの選択」を参照してください。
リソースベースのポリシー
リソースベースのポリシーは、リソースにアタッチするJSONポリシードキュメントです。リソースベースのポリシーの例としては、IAMロール信頼ポリシー と Amazon S3 バケットポリシー があります。リソースベースのポリシーをサポートするサービスでは、サービス管理者はポリシーを使用して特定のリソースへのアクセスをコントロールできます。ポリシーがアタッチされているリソースの場合、指定されたプリンシパルがそのリソースに対して実行できるアクションと条件は、ポリシーによって定義されます。リソースベースのポリシーでは、プリンシパルを指定する必要があります。プリンシパルには、アカウント、ユーザー、ロール、フェデレーティッドユーザー、または を含めることができます AWS のサービス。
リソースベースのポリシーは、そのサービス内にあるインラインポリシーです。リソースベースのポリシーIAMでは、 から AWS 管理ポリシーを使用することはできません。
その他のポリシータイプ
AWS は、追加の低頻度のポリシータイプをサポートします。これらのポリシータイプでは、より一般的なポリシータイプで付与された最大の権限を設定できます。
-
アクセス許可の境界 – アクセス許可の境界は、アイデンティティベースのポリシーがIAMエンティティ (IAMユーザーまたはロール) に付与できる最大アクセス許可を設定する高度な機能です。エンティティにアクセス許可の境界を設定できます。結果として得られる権限は、エンティティのアイデンティティベースポリシーとそのアクセス許可の境界の共通部分になります。
Principal
フィールドでユーザーまたはロールを指定するリソースベースのポリシーでは、アクセス許可の境界は制限されません。これらのポリシーのいずれかを明示的に拒否した場合、権限は無効になります。アクセス許可の境界の詳細については、IAM「 ユーザーガイド」のIAM「エンティティのアクセス許可の境界」を参照してください。 -
サービスコントロールポリシー (SCPs) – SCPs は、 の組織または組織単位 (OU) の最大アクセス許可を指定するJSONポリシーです AWS Organizations。 AWS Organizations は、ビジネスが所有する複数の をグループ化して一元管理するためのサービス AWS アカウント です。組織内のすべての機能を有効にすると、サービスコントロールポリシー (SCPs) をアカウントのいずれかまたはすべてに適用できます。は、各 を含むメンバーアカウントのエンティティのアクセス許可SCPを制限します AWS アカウントのルートユーザー。Organizations と の詳細についてはSCPs、AWS Organizations 「 ユーザーガイド」の「サービスコントロールポリシー」を参照してください。
-
セッションポリシー - セッションポリシーは、ロールまたはフェデレーションユーザーの一時的なセッションをプログラムで作成する際にパラメータとして渡す高度なポリシーです。結果としてセッションの権限は、ユーザーまたはロールのアイデンティティベースポリシーとセッションポリシーの共通部分になります。また、リソースベースのポリシーから権限が派生する場合もあります。これらのポリシーのいずれかを明示的に拒否した場合、権限は無効になります。詳細については、「 ユーザーガイド」の「セッションポリシー」を参照してください。 IAM
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 サービスロールからアクセス許可を削除する
サービスロールのステートメントを編集して、使用していないリソースへのアクセスを削除します。例えば、いずれのパイプラインにも 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 サポート日 |
---|---|
コマンドアクション | 2024 年 10 月 3 日 |
AWS CloudFormation | 2020 年 12 月 30 日 |
CodeCommit フルクローン出力アーティファクト形式 | 2020 年 11 月 11 日 |
CodeBuild バッチビルド | 2020 年 7 月 30 日 |
AWS AppConfig | 2020年6月22日 |
AWS Step Functions | 2020 年 5 月 27 日 |
AWS CodeStar 接続 | 2019 年 12 月 18 日 |
CodeDeployToECS アクション |
2018 年 11 月 27 日 |
Amazon ECR | 2018 年 11 月 27 日 |
Service Catalog | 2018 年 10 月 16 日 |
AWS Device Farm | 2018 年 7 月 19 日 |
Amazon ECS | 2017 年 12 月 12 日 / 2017 年 7 月 21 日から開始されたタグ付け承認のオプトインのための更新 |
CodeCommit | 2016 年 4 月 18 日 |
AWS OpsWorks | 2016 年 6 月 2 日 |
AWS CloudFormation | 2016 年 11 月 3 日 |
AWS CodeBuild | 2016 年 12 月 1 日 |
Elastic Beanstalk | 初回サービスの起動 |
サポートされているサービスのアクセス許可を追加するには、次の手順に従います。
-
にサインイン AWS Management Console し、 でIAMコンソールを開きますhttps://console.aws.amazon.com/iam/
。 -
IAM コンソールのナビゲーションペインで、ロール を選択し、
AWS-CodePipeline-Service
ロールのリストからロールを選択します。 -
[アクセス権限] タブの [インラインポリシー] で、サービスロールポリシーの列の [ポリシーの編集] を選択します。
-
[Policy Document] ボックスに必要なアクセス許可を追加します。
注記
IAM ポリシーを作成するときは、最小権限の付与、つまりタスクの実行に必要なアクセス許可のみの付与に関する標準のセキュリティアドバイスに従ってください。一部のAPI呼び出しでは、リソースベースのアクセス許可がサポートされ、アクセスが制限されます。例えば、
DescribeTasks
と を呼び出すときにアクセス許可を制限するにはListTasks
、ワイルドカード文字 (*) をリソースARNまたはワイルドカード文字 (*) ARNを含むリソースに置き換えることができます。最小権限アクセスを付与するポリシーの作成の詳細については、https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege を参照してください。例えば、 CodeCommit サポートのために、ポリシーステートメントに以下を追加します。
{ "Effect": "Allow", "Action": [ "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:UploadArchive", "codecommit:GetUploadArchiveStatus", "codecommit:CancelUploadArchive" ], "Resource": "
resource_ARN
" },AWS OpsWorks サポートのために、ポリシーステートメントに以下を追加します。
{ "Effect": "Allow", "Action": [ "opsworks:CreateDeployment", "opsworks:DescribeApps", "opsworks:DescribeCommands", "opsworks:DescribeDeployments", "opsworks:DescribeInstances", "opsworks:DescribeStacks", "opsworks:UpdateApp", "opsworks:UpdateStack" ], "Resource": "
resource_ARN
" },AWS CloudFormation サポートのために、ポリシーステートメントに以下を追加します。
{ "Effect": "Allow", "Action": [ "cloudformation:CreateStack", "cloudformation:DeleteStack", "cloudformation:DescribeStackEvents", "cloudformation:DescribeStacks", "cloudformation:UpdateStack", "cloudformation:CreateChangeSet", "cloudformation:DeleteChangeSet", "cloudformation:DescribeChangeSet", "cloudformation:ExecuteChangeSet", "cloudformation:SetStackPolicy", "cloudformation:ValidateTemplate", "iam:PassRole" ], "Resource": "
resource_ARN
" },cloudformation:DescribeStackEvents
アクセス許可はオプションであることに注意してください。これにより、 AWS CloudFormation アクションはより詳細なエラーメッセージを表示できます。このアクセス許可は、パイプラインのエラーメッセージにリソースの詳細を表示しない場合は、IAMロールから取り消すことができます。詳細については、「AWS CloudFormation デプロイアクションリファレンス」を参照してください。CodeBuild サポートのために、ポリシーステートメントに以下を追加します。
{ "Effect": "Allow", "Action": [ "codebuild:BatchGetBuilds", "codebuild:StartBuild" ], "Resource": "
resource_ARN
" },注記
バッチビルド対応が後日追加されました。バッチビルドのサービスロールに追加する権限については、手順 11 を参照してください。
AWS Device Farm サポートのために、ポリシーステートメントに以下を追加します。
{ "Effect": "Allow", "Action": [ "devicefarm:ListProjects", "devicefarm:ListDevicePools", "devicefarm:GetRun", "devicefarm:GetUpload", "devicefarm:CreateUpload", "devicefarm:ScheduleRun" ], "Resource": "
resource_ARN
" },Service Catalog がサポートされるように、以下をポリシーステートメントに追加します。
{ "Effect": "Allow", "Action": [ "servicecatalog:ListProvisioningArtifacts", "servicecatalog:CreateProvisioningArtifact", "servicecatalog:DescribeProvisioningArtifact", "servicecatalog:DeleteProvisioningArtifact", "servicecatalog:UpdateProduct" ], "Resource": "
resource_ARN
" }, { "Effect": "Allow", "Action": [ "cloudformation:ValidateTemplate" ], "Resource": "resource_ARN
" } -
Amazon サポートの場合はECR、ポリシーステートメントに以下を追加します。
{ "Effect": "Allow", "Action": [ "ecr:DescribeImages" ], "Resource": "
resource_ARN
" }, -
Amazon の場合ECS、Amazon ECSデプロイアクションを使用してパイプラインを作成するために必要な最小限のアクセス許可は次のとおりです。
{ "Effect": "Allow", "Action": [ "ecs:DescribeServices", "ecs:DescribeTaskDefinition", "ecs:DescribeTasks", "ecs:ListTasks", "ecs:RegisterTaskDefinition", "ecs:TagResource", "ecs:UpdateService" ], "Resource": "
resource_ARN
" },Amazon のタグ付け認証の使用にオプトインできますECS。オプトインする場合、
ecs:TagResource
というアクセス許可を付与する必要があります。オプトインの方法、必要になるアクセス許可、タグ付け承認の詳細については、Amazon Elastic Container Service 開発者ガイドの「タグ付け承認のタイムライン」を参照してください。また、タスクにIAMロールを使用するための
iam:PassRole
アクセス許可を追加する必要があります。詳細については、「Amazon ECSタスク実行IAMロールIAM」および「 タスクのロール」を参照してください。以下のポリシーテキストを使用します。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": [ "arn:aws:iam::
aws_account_ID
:role/ecsTaskExecutionRole_or_TaskRole_name
" ] } ] } -
CodeDeployToECS
アクション (blue/green deployments), the following are the minimum permissions needed to create pipelines with a CodeDeploy to Amazon ECS blue/greenデプロイアクション。{ "Effect": "Allow", "Action": [ "codedeploy:CreateDeployment", "codedeploy:GetDeployment", "codedeploy:GetApplication", "codedeploy:GetApplicationRevision", "codedeploy:RegisterApplicationRevision", "codedeploy:GetDeploymentConfig", "ecs:RegisterTaskDefinition", "ecs:TagResource" ], "Resource": "
resource_ARN
" },Amazon のタグ付け認証の使用にオプトインできますECS。オプトインする場合、
ecs:TagResource
というアクセス許可を付与する必要があります。オプトインの方法、必要になるアクセス許可、タグ付け承認の詳細については、Amazon Elastic Container Service 開発者ガイドの「タグ付け承認のタイムライン」を参照してください。また、タスクにIAMロールを使用するための
iam:PassRole
アクセス許可を追加する必要があります。詳細については、「Amazon ECSタスク実行IAMロールIAM」と「タスクのロール」を参照してください。以下のポリシーテキストを使用します。{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "iam:PassRole", "Resource": [ "arn:aws:iam::
aws_account_ID
:role/ecsTaskExecutionRole_or_TaskRole_name
" ] } ] }この例に示すように、
ecs-tasks.amazonaws.com
をiam:PassedToService
条件下のサービスのリストへ追加することができます。{ "Statement": [ { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "
resource_ARN
", "Condition": { "StringEqualsIfExists": { "iam:PassedToService": [ "cloudformation.amazonaws.com", "elasticbeanstalk.amazonaws.com", "ec2.amazonaws.com", "ecs-tasks.amazonaws.com" ] } } }, -
AWS CodeStar 接続の場合、Bitbucket Cloud などの接続を使用するソースでパイプラインを作成するには、次のアクセス許可が必要です。
{ "Effect": "Allow", "Action": [ "codestar-connections:UseConnection" ], "Resource": "
resource_ARN
" },接続のIAMアクセス許可の詳細については、「Connections のアクセス許可リファレンス」を参照してください。
-
StepFunctions
アクションでは、Step Functions 呼び出しアクションを使用してパイプラインを作成するために必要な最小限のアクセス許可は次のとおりです。{ "Effect": "Allow", "Action": [ "states:DescribeStateMachine", "states:DescribeExecution", "states:StartExecution" ], "Resource": "
resource_ARN
" }, -
AppConfig
アクションの場合、 AWS AppConfig 呼び出しアクションを使用してパイプラインを作成するために必要な最小限のアクセス許可を次に示します。{ "Effect": "Allow", "Action": [ "appconfig:StartDeployment", "appconfig:GetDeployment", "appconfig:StopDeployment" ], "Resource": "
resource_ARN
" }, -
バッチビルド CodeBuild をサポートするには、ポリシーステートメントに以下を追加します。
{ "Effect": "Allow", "Action": [ "codebuild:BatchGetBuildBatches", "codebuild:StartBuildBatch" ], "Resource": "
resource_ARN
" }, -
AWS CloudFormation StackSets アクションには、以下の最小アクセス許可が必要です。
-
CloudFormationStackSet
のアクションについては、以下をポリシーステートメントに追加します。{ "Effect": "Allow", "Action": [ "cloudformation:CreateStackSet", "cloudformation:UpdateStackSet", "cloudformation:CreateStackInstances", "cloudformation:DescribeStackSetOperation", "cloudformation:DescribeStackSet", "cloudformation:ListStackInstances" ], "Resource": "
resource_ARN
" }, -
CloudFormationStackInstances
のアクションについては、以下をポリシーステートメントに追加します。{ "Effect": "Allow", "Action": [ "cloudformation:CreateStackInstances", "cloudformation:DescribeStackSetOperation" ], "Resource": "
resource_ARN
" },
-
-
フルクローンオプション CodeCommit をサポートするには、ポリシーステートメントに以下を追加します。
{ "Effect": "Allow", "Action": [ "codecommit:GetRepository" ], "Resource": "
resource_ARN
" },注記
CodeBuild アクションが CodeCommit ソースで完全なクローンオプションを使用できるようにするには、プロジェクトの CodeBuild サービスロールのポリシーステートメントにも
codecommit:GitPull
アクセス許可を追加する必要があります。 -
Elastic Beanstalk では、
ElasticBeanstalk
デプロイアクションを使用してパイプラインを作成するために必要な最小限のアクセス許可は次のとおりです。{ "Effect": "Allow", "Action": [ "elasticbeanstalk:*", "ec2:*", "elasticloadbalancing:*", "autoscaling:*", "cloudwatch:*", "s3:*", "sns:*", "cloudformation:*", "rds:*", "sqs:*", "ecs:*" ], "Resource": "
resource_ARN
" },注記
リソースポリシーのワイルドカードは、アクセスを制限するアカウントのリソースに置き換える必要があります。最小権限アクセスを付与するポリシーの作成の詳細については、https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege を参照してください。
-
CloudWatch Logs に設定するパイプラインの場合、 CodePipeline サービスロールに追加する必要がある最小限のアクセス許可を次に示します。
{ "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "logs:PutRetentionPolicy" ], "Resource": "
resource_ARN
" },注記
リソースポリシーのワイルドカードは、アクセスを制限するアカウントのリソースに置き換える必要があります。最小権限アクセスを付与するポリシーの作成の詳細については、https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege を参照してください。
-
コマンドアクションのサポートについては、ポリシーステートメントに以下を追加します。
{ "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": "
resource_ARN
" },注記
サービスロールポリシーステートメントでリソースベースのアクセス許可を使用して、アクセス許可をパイプラインリソースレベルにスコープダウンします。詳細については、「」のポリシー例を参照してくださいサービスロールポリシーのアクセス許可。
-
[Review policy] (ポリシーの確認) を選択して、ポリシーにエラーがないことを確認します。ポリシーにエラーがなければ、ポリシーの適用 を選択します。