「コンソールを使用した開始方法」の手順に従って初めて AWS CodeBuild にアクセスする場合、このトピックの情報は必要ないと考えられます。ただし、CodeBuild を引き続き使用すると、組織内の他のユーザーやグループに CodeBuild とやり取りする機能を付与することが必要になる場合があります。
IAM ユーザーまたはグループに AWS CodeBuild とのやり取りを許可するには、CodeBuild へのアクセス許可を付与する必要があります。このセクションでは、IAM コンソールまたは AWS CLI でこれを行う方法について説明します。
AWS ルートアカウント (非推奨) を使用するか、AWS アカウントの管理者ユーザーを使用して CodeBuild にアクセスする場合、以下の手順に従う必要はありません。
AWS ルートアカウントと管理者ユーザーについては、ユーザーガイドの「AWS アカウントルートユーザー」および「最初の AWS アカウントルートユーザーおよびグループの作成」を参照してください。
IAM グループまたはユーザーに CodeBuild アクセス許可を追加するには (コンソール)
IAM コンソール (https://console.aws.amazon.com/iam/
) を開きます。 次のいずれかを使用して、AWS Management Console に既にサインインしている必要があります。
-
AWS ルートアカウント。これは推奨されません。詳細については、ユーザーガイドの「AWS アカウントルートユーザー」を参照してください。
-
AWS アカウントの管理者ユーザー。詳細については、ユーザーガイドの「最初の AWS アカウントルートユーザーおよびグループの作成」を参照してください。
-
以下の最小限のアクションを実行するアクセス許可を持つ AWS アカウントのユーザー。
iam:AttachGroupPolicy iam:AttachUserPolicy iam:CreatePolicy iam:ListAttachedGroupPolicies iam:ListAttachedUserPolicies iam:ListGroups iam:ListPolicies iam:ListUsers
詳細については、ユーザーガイドの「IAM ポリシーの概要」を参照してください。
-
-
ナビゲーションペインで、ポリシー を選択します。
-
カスタムセットの AWS CodeBuild アクセス許可を IAM グループまたは IAM ユーザーに追加するには、この手順のステップ 4 に進んでください。
IAM グループや IAM ユーザーにデフォルトの CodeBuild アクセス許可セットを追加するには、[Policy Type]、[AWS Managed] の順に選択し、以下の操作を行います。
-
CodeBuild へのフルアクセス許可を追加するには、[AWSCodeBuildAdminAccess] という名前のボックスを選択し、[ポリシーアクション]、[アタッチ] の順に選択します。対象の IAM グループやユーザーの横にあるボックスを選択し、[Attach Policy] (ポリシーのアタッチ) を選択します。AmazonS3ReadOnlyAccess ポリシーおよび IAMFullAccess ポリシーに対して、この操作を繰り返します。
-
ビルドプロジェクトの管理を除くすべてについて CodeBuild へのアクセス許可に追加するには、[AWSCodeBuildDeveloperAccess] という名前のボックスを選択し、[Policy Actions] (ポリシーアクション)、[Attach] (アタッチ) の順に選択します。対象の IAM グループやユーザーの横にあるボックスを選択し、[Attach Policy] (ポリシーのアタッチ) を選択します。AmazonS3ReadOnlyAccess ポリシーに対して、この操作を繰り返します。
-
CodeBuild への読み取り専用アクセス許可を追加するには、[AWSCodeBuildReadOnlyAccess] という名前のボックスを選択します。対象の IAM グループやユーザーの横にあるボックスを選択し、[Attach Policy] (ポリシーのアタッチ) を選択します。AmazonS3ReadOnlyAccess ポリシーに対して、この操作を繰り返します。
これで、IAM グループまたはユーザーに CodeBuild へのデフォルトのアクセス許可セットが追加されました。この手順の残りの手順をスキップします。
-
-
[ポリシーの作成] を選択します。
-
[Create Policy] ページで、[Create Your Own Policy] の横にある [Select] を選択します。
-
[ポリシーの確認] ページの [ポリシー名] に、ポリシーの名前 (
CodeBuildAccessPolicy
など) を入力します。別の名前を使用する場合は、この手順全体でそれを使用してください。 -
[ポリシードキュメント] に、次のように入力し、[ポリシーの作成] を選択します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CodeBuildAccessPolicy", "Effect": "Allow", "Action": [ "codebuild:*" ], "Resource": "*" }, { "Sid": "CodeBuildRolePolicy", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::
account-ID
:role/role-name
" }, { "Sid": "CloudWatchLogsAccessPolicy", "Effect": "Allow", "Action": [ "logs:FilterLogEvents", "logs:GetLogEvents" ], "Resource": "*" }, { "Sid": "S3AccessPolicy", "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:GetObject", "s3:List*", "s3:PutObject" ], "Resource": "*" }, { "Sid": "S3BucketIdentity", "Effect": "Allow", "Action": [ "s3:GetBucketAcl", "s3:GetBucketLocation" ], "Resource": "*" } ] }注記
このポリシーにより、すべての CodeBuild アクションへのアクセスが許可され、多数の AWS リソースへのアクセスが許可される可能性があります。アクセス許可を特定の CodeBuild アクションに限定するには、CodeBuild ポリシーステートメントの
codebuild:*
の値を変更します。詳細については、「Identity and access management」を参照してください。特定の AWS リソースへのアクセスを制限するには、Resource
オブジェクトの値を変更します。詳細については、「Identity and access management」を参照してください。 -
ナビゲーションペインで、[Groups] または [Users] を選択します。
-
グループまたはユーザーのリストで、CodeBuild アクセス許可を追加する IAM グループまたは IAM ユーザーの名前を選択します。
-
グループの場合は、グループ設定ページの [アクセス許可] タブで [管理ポリシー] を展開し、[ポリシーのアタッチ] を選択します。
ユーザーの場合は、ユーザー設定ページの [Permissions] タブで、[Add permissions] を選択します。
-
グループの場合は、[Attach Policy] (ポリシーのアタッチ) ページで [CodeBuildAccessPolicy]、[Attach Policy] (ポリシーのアタッチ) の順に選択します。
ユーザーの場合は、[Add permissions] (アクセス許可の付与) ページで [Attach existing policies directly] (既存のポリシーを直接アタッチ) を選択します。[CodeBuildAccessPolicy] を選択し、[Next: Reivew] (次のステップ: 確認)、[Add permissions] (アクセス権限の追加) の順にクリックします。
IAM グループまたはユーザーに CodeBuild アクセス許可を追加するには (AWS CLI)
-
前の手順で説明しているように、IAM エンティティのいずれかに対応する AWS アクセスキーと AWS シークレットアクセスキーを使用して AWS CLI が設定されていることを確認します。詳細については、AWS Command Line Interface ユーザーガイドの「AWS Command Line Interface のセットアップ」を参照してください。
-
AWS CodeBuild へのアクセス許可のカスタムセットを IAM グループまたは IAM ユーザーに追加するには、この手順のステップ 3 に進んでください。
IAM グループまたは IAM ユーザーに、CodeBuild アクセス許可のデフォルトセットを追加するには以下を実行します。
IAM グループまたはユーザーのどちらにアクセス許可を追加するかに応じて、以下のいずれかのコマンドを実行します。
aws iam attach-group-policy --group-name
group-name
--policy-arnpolicy-arn
aws iam attach-user-policy --user-nameuser-name
--policy-arnpolicy-arn
コマンドは 3 回実行する必要があります。group-name または user-name は IAM グループ名またはユーザー名に置き換え、policy-arn は 1 回ごとに以下の各ポリシー Amazon リソースネーム (ARN) に置き換えてください。
-
CodeBuild にフルアクセス許可を追加するには、以下のポリシー ARN を使用します。
-
arn:aws:iam::aws:policy/AWSCodeBuildAdminAccess
-
arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess
-
arn:aws:iam::aws:policy/IAMFullAccess
-
-
ビルドプロジェクトの管理以外のすべてに対して CodeBuild にアクセス許可を追加するには、次のポリシー ARN を使用します。
-
arn:aws:iam::aws:policy/AWSCodeBuildDeveloperAccess
-
arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess
-
-
CodeBuild に読み取り専用アクセス許可を追加するには、以下のポリシー ARN を使用します。
-
arn:aws:iam::aws:policy/AWSCodeBuildReadOnlyAccess
-
arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess
-
これで、IAM グループまたはユーザーに CodeBuild へのデフォルトのアクセス許可セットが追加されました。この手順の残りの手順をスキップします。
-
-
AWS CLI がインストールされているローカルワークステーションまたはインスタンス上の空のディレクトリに、
put-group-policy.json
またはput-user-policy.json
という名前のファイルを作成します。別のファイル名を使用する場合は、この手順全体でそれを使用してください。{ "Version": "2012-10-17", "Statement": [ { "Sid": "CodeBuildAccessPolicy", "Effect": "Allow", "Action": [ "codebuild:*" ], "Resource": "*" }, { "Sid": "CodeBuildRolePolicy", "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "arn:aws:iam::
account-ID
:role/role-name
" }, { "Sid": "CloudWatchLogsAccessPolicy", "Effect": "Allow", "Action": [ "logs:FilterLogEvents", "logs:GetLogEvents" ], "Resource": "*" }, { "Sid": "S3AccessPolicy", "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:GetObject", "s3:List*", "s3:PutObject" ], "Resource": "*" }, { "Sid": "S3BucketIdentity", "Effect": "Allow", "Action": [ "s3:GetBucketAcl", "s3:GetBucketLocation" ], "Resource": "*" } ] }注記
このポリシーにより、すべての CodeBuild アクションへのアクセスが許可され、多数の AWS リソースへのアクセスが許可される可能性があります。アクセス許可を特定の CodeBuild アクションに限定するには、CodeBuild ポリシーステートメントの
codebuild:*
の値を変更します。詳細については、「Identity and access management」を参照してください。特定の AWS リソースへのアクセスを制限するには、関連するResource
オブジェクトの値を変更します。詳細については、「Identity and access management」または特定の AWS サービスのセキュリティドキュメントを参照してください。 -
ファイルを保存したディレクトリに移動し、以下のいずれかのコマンドを実行します。
CodeBuildGroupAccessPolicy
およびCodeBuildUserAccessPolicy
に異なる値を使用できます。異なる値を使用する場合は、ここでそれらを使用してください。IAM グループの場合:
aws iam put-group-policy --group-name
group-name
--policy-name CodeBuildGroupAccessPolicy --policy-document file://put-group-policy.jsonユーザーの場合:
aws iam put-user-policy --user-name
user-name
--policy-name CodeBuildUserAccessPolicy --policy-document file://put-user-policy.json前述のコマンドで、group-name または user-name は、対象の IAM グループまたはユーザーの名前に置き換えます。