AWS CodeBuild リソースへのアクセス許可の管理の概要 - AWS CodeBuild

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

AWS CodeBuild リソースへのアクセス許可の管理の概要

すべての AWS リソースは AWS アカウントによって所有され、リソースを作成またはアクセスするためのアクセス許可はアクセス許可ポリシーによって管理されます。アカウント管理者は、IAM アイデンティティ (ユーザー、グループ、ロール) にアクセス許可ポリシーをアタッチできます。

注記

アカウント管理者 (または管理者ユーザー) は、管理者権限を持つユーザーです。詳細については、IAM ユーザーガイド[IAM のベストプラクティス]を参照してください。

アクセス許可を付与するときは、アクセス許可を取得するユーザー、アクセスできるリソース、およびそれらのリソースに対して実行できるアクションを決定します。

AWS CodeBuild リソースとオペレーション

では AWS CodeBuild、プライマリリソースはビルドプロジェクトです。ポリシーで Amazon リソースネーム (ARN) を使用して、ポリシーを適用するリソースを識別します。ビルドもリソースで、ARN が関連付けられています。詳細については、「」の「Amazon リソースネーム (ARN) と AWS のサービスの名前空間」を参照してくださいAmazon Web Services 全般のリファレンス

リソースタイプ ARN 形式
ビルドプロジェクト

arn:aws:codebuild:region-ID:account-ID:project/project-name

Build

arn:aws:codebuild:region-ID:account-ID:build/build-ID

レポートグループ arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name
レポート arn:aws:codebuild:region-ID:account-ID:report/report-ID

すべての CodeBuild リソース

arn:aws:codebuild:*

指定された AWS リージョン内の指定されたアカウントが所有するすべての CodeBuild リソース

arn:aws:codebuild:region-ID:account-ID:*

注記

ほとんどの AWS サービスでは、ARN 内のコロン (:) またはスラッシュ (/) は同じ文字として扱われARNs。ただし、 はリソースパターンとルールで完全一致 CodeBuild を使用します。イベントパターンの作成時に正しい文字を使用して、リソース内の ARN 構文とそれらの文字が一致する必要があります。

例えば、次のように ARN を使用して、ステートメントで特定のビルドプロジェクト (myBuildProject) を指定できます。

"Resource": "arn:aws:codebuild:us-east-2:123456789012:project/myBuildProject"

すべてのリソースを指定する場合、または API アクションが ARN をサポートしていない場合は、以下の要領で、Resource エレメント内でワイルドカード文字 (*) を使用します。

"Resource": "*"

一部の CodeBuild API アクションは、複数のリソース (例: ) を受け入れますBatchGetProjects。単一のステートメントに複数のリソースを指定するには、以下のようにコンマで ARN を区切ります。

"Resource": [ "arn:aws:codebuild:us-east-2:123456789012:project/myBuildProject", "arn:aws:codebuild:us-east-2:123456789012:project/myOtherBuildProject" ]

CodeBuild には、 CodeBuild リソースを操作するための一連のオペレーションが用意されています。リストについては、「AWS CodeBuild アクセス許可リファレンス」を参照してください。

リソース所有権について

AWS アカウントは、誰がリソースを作成したかにかかわらず、アカウントで作成されたリソースを所有します。具体的には、リソース所有者は、リソース作成リクエスト AWS を認証するプリンシパルエンティティ (ルートアカウント、 ユーザー、または IAM ロール) のアカウントです。次の例は、この仕組みを示しています。

  • AWS アカウントのルートアカウントの認証情報を使用してルールを作成する場合、 AWS アカウントは CodeBuild リソースの所有者です。

  • AWS アカウントに ユーザーを作成し、そのユーザーに CodeBuild リソースを作成するアクセス許可を付与すると、そのユーザーは CodeBuild リソースを作成できます。ただし、ユーザーが属する AWS アカウントはリソースを所有しています CodeBuild。

  • CodeBuild リソースを作成するためのアクセス許可を持つ AWS アカウントに IAM ロールを作成する場合、ロールを引き受けることのできるいずれのユーザーもリソースを作成できます CodeBuild。ロールが属する AWS アカウントがリソースを所有します CodeBuild。

リソースへのアクセスの管理

許可ポリシーでは、誰がどのリソースにアクセスできるかを記述します。

注記

このセクションでは、 AWS CodeBuildでの IAM の使用について説明します。これは、IAM サービスに関する詳細情報を取得できません。完全な IAM ドキュメンテーションについては、「IAM ユーザーガイド」の「IAM とは」を参照してください。IAM ポリシー構文の詳細と説明については、IAM ユーザーガイドAWS IAM ポリシーの参照を参照してください。

IAM アイデンティティにアタッチされているポリシーは、アイデンティティベースのポリシー (IAM ポリシー) と呼ばれます。リソースにアタッチされたポリシーは、リソースベースのポリシーと呼ばれます。 は、クロスアカウントリソース共有を目的として、特定の読み取り専用 APIs のアイデンティティベースのポリシーとリソースベースのポリシー CodeBuild をサポートします。

S3 バケットへの安全なアクセス

CodeBuild プロジェクトに関連付けられた S3 バケットがユーザーまたはユーザーが信頼するユーザーによって所有されていることを確認するために、IAM ロールに次のアクセス許可を含めることを強くお勧めします。これらのアクセス許可は、 AWS 管理ポリシーおよびロールには含まれていません。自分で追加する必要があります。

  • s3:GetBucketAcl

  • s3:GetBucketLocation

プロジェクトで使用している S3 バケットの所有者が変更された場合は、自分を本来のバケット所有者にして IAM ロールのアクセス許可を更新する必要があります (まだ更新していない場合)。詳細については、「IAM グループまたはユーザーに CodeBuild アクセス許可を追加する」および「CodeBuild サービスロールの作成」を参照してください。

ポリシー要素 (アクション、効果、プリンシパル) の指定

サービスは、 AWS CodeBuild リソースごとに一連の API オペレーションを定義します。これらの API オペレーションのアクセス許可を付与するために、 はポリシーで指定できる一連のアクション CodeBuild を定義します。一部の API オペレーションは、API オペレーションを実行するために複数のアクションに対するアクセス許可を要求できます。詳細については、「AWS CodeBuild リソースとオペレーション」および「AWS CodeBuild アクセス許可リファレンス」を参照してください。

以下は、基本的なポリシーの要素です。

  • リソース - Amazon リソースネーム (ARN) を使用して、ポリシーを適用するリソースを識別します。

  • アクション – アクションのキーワードを使用して、許可または拒否するリソースオペレーションを識別します。たとえば、codebuild:CreateProject 許可は、CreateProject オペレーションを実行する許可をユーザーに与えます。

  • 効果 - ユーザーがアクションをリクエストする際の効果を指定します。許可または拒否のいずれかになります。リソースへのアクセスを明示的に許可していない場合、アクセスは暗黙的に拒否されます。リソースへのアクセスを明示的に拒否することもできます。これは、別のポリシーがアクセスを許可している場合でも、ユーザーがリソースにアクセスできないようにするために行うことができます。

  • プリンシパル - アイデンティティベースのポリシー (IAM ポリシー) で、ポリシーがアタッチされているユーザーが黙示的なプリンシパルとなります。リソースベースのポリシーでは、権限を受け取りたいユーザー、アカウント、サービス、またはその他のエンティティを指定します。

IAM ポリシーの構文と記述の詳細については、「IAM ユーザーガイド」の「AWS IAM ポリシーリファレンス」を参照してください。

すべての CodeBuild API アクションとそれらが適用されるリソースを示す表については、「」を参照してくださいAWS CodeBuild アクセス許可リファレンス