タグを使用した AWS CodeBuild リソースへのアクセスのコントロール - AWS CodeBuild

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

タグを使用した AWS CodeBuild リソースへのアクセスのコントロール

IAM ポリシーステートメントの条件は、 CodeBuild プロジェクトベースのアクションへのアクセス許可を指定するために使用できる構文の一部です。プロジェクトに関連付けられたタグに基づいてプロジェクトに対するアクションを許可または拒否するポリシーを作成し、これらのポリシーを、ユーザーの管理用に設定した IAM グループに適用できます。コンソールまたは を使用してプロジェクトにタグを適用する方法については AWS CLI、「」を参照してください でのビルドプロジェクトの作成AWS CodeBuild。 CodeBuild SDK を使用したタグの適用については、 CodeBuild API リファレンスCreateProject 「」および「タグ」を参照してください。タグを使用してリソースへのアクセスを制御する方法については、IAM ユーザーガイドの AWS 「リソースタグを使用した AWS リソースへのアクセスの制御」を参照してください。

例 1: リソースタグに基づいて CodeBuild プロジェクトアクションを制限する

次の例では、キー BatchGetProjects とキー値 Environment のタグが付いているプロジェクトに対するすべての Production アクションを拒否します。ユーザーの管理者は、この IAM ポリシーをマネージド型のユーザーポリシーに加えて、承認されないユーザーにアタッチする必要があります。aws:ResourceTag 条件キーを使用して、リソースへのアクセスをリソースタグに基づいてコントロールします。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "codebuild:BatchGetProjects" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:ResourceTag/Environment": "Production" } } } ] }
例 2: リクエストタグに基づいて CodeBuild プロジェクトアクションを制限する

次のポリシーでは、リクエスト内のタグのキーが CreateProject で、キー値が Environment である場合、ユーザーに Production アクションへのアクセス許可を拒否します。さらに、このポリシーでは、aws:TagKeys 条件キーを使用して、リクエスト内のタグのキーが UpdateProject である場合に、Environment を許可しないことにより、これらの承認されないユーザーにプロジェクトの変更を禁止します。管理者は、これらのアクションの実行を承認されないユーザーに、マネージド型のユーザーポリシーに加えて、この IAM ポリシーをアタッチする必要があります。この aws:RequestTag 条件キーを使用して、IAM リクエストで渡すことができるタグをコントロールします

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "codebuild:CreateProject" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:RequestTag/Environment": "Production" } } }, { "Effect": "Deny", "Action": [ "codebuild:UpdateProject" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:TagKeys": ["Environment"] } } } ] }
例 3: リソースタグに基づいてレポートグループのアクションを拒否または許可する

CodeBuild リソース (プロジェクトおよびレポートグループ) に関連付けられた AWS タグに基づいてリソース (プロジェクトおよびレポートグループ) に対するアクションを許可または拒否するポリシーを作成し、それらのポリシーをユーザーの管理用に設定した IAM グループに適用できます。例えば、 AWS タグキー Statusとキー値が のレポートグループに対するすべての CodeBuild アクションを拒否するポリシーを作成しSecret、一般的なデベロッパー (デベロッパー) 用に作成した IAM グループにそのポリシーを適用できます。次に、上記のタグ付けされたレポートグループに対して作業する開発者が一般的な Developers グループのメンバーではなく、代わりに制限されたポリシーが適用されていない別の IAM グループ (SecretDevelopers) に属していることを確認する必要があります。

次の例では、 キーStatusと のキー値でタグ付けされたレポートグループに対するすべての CodeBuild アクションを拒否しますSecret

{ "Version": "2012-10-17", "Statement" : [ { "Effect" : "Deny", "Action" : [ "codebuild:BatchGetReportGroups," "codebuild:CreateReportGroup", "codebuild:DeleteReportGroup", "codebuild:ListReportGroups", "codebuild:ListReportsForReportGroup", "codebuild:UpdateReportGroup" ] "Resource" : "*", "Condition" : { "StringEquals" : "aws:ResourceTag/Status": "Secret" } } ] }
例 4: リソースタグ AWSCodeBuildDeveloperAccess に基づいて CodeBuild アクションを に制限する

特定のタグが付けられていないすべてのレポートグループおよびプロジェクトに対する CodeBuild アクションを許可するポリシーを作成できます。たとえば、以下のポリシーでは、指定したタグが付けられたものを除くすべてのレポートグループとプロジェクトに AWSCodeBuildDeveloperAccess と同等のアクセス許可を付与します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codebuild:StartBuild", "codebuild:StopBuild", "codebuild:BatchGet*", "codebuild:GetResourcePolicy", "codebuild:DescribeTestCases", "codebuild:List*", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetRepository", "codecommit:ListBranches", "cloudwatch:GetMetricStatistics", "events:DescribeRule", "events:ListTargetsByRule", "events:ListRuleNamesByTarget", "logs:GetLogEvents", "s3:GetBucketLocation", "s3:ListAllMyBuckets" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:ResourceTag/Status": "Secret", "aws:ResourceTag/Team": "Saanvi" } } } ] }