태그를 사용하여 AWS CodeBuild 리소스에 대한 액세스 통제 - AWS CodeBuild

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

태그를 사용하여 AWS CodeBuild 리소스에 대한 액세스 통제

IAM 정책 설명의 조건은 CodeBuild 프로젝트 기반 작업에 대한 권한을 지정하는 데 사용할 수 있는 구문의 일부입니다. 프로젝트와 연결된 태그를 기반으로 프로젝트에 대한 작업을 허용하거나 거부하는 정책을 생성한 다음 사용자 관리를 위해 구성한 IAM 그룹에 해당 정책을 적용할 수 있습니다. 콘솔 또는 를 사용하여 프로젝트에 태그를 적용하는 방법에 대한 자세한 내용은 섹션을 AWS CLI참조하세요에서 빌드 프로젝트 생성 AWS CodeBuild. 를 사용하여 태그를 적용하는 방법에 대한 자세한 내용은 CodeBuild API 참조CreateProject 태그를 CodeBuild SDK참조하세요. 태그를 사용하여 AWS 리소스에 대한 액세스를 제어하는 방법에 대한 자세한 내용은 IAM 사용 설명서리소스 태그를 사용하여 AWS 리소스에 대한 액세스 제어를 참조하세요.

중요

예약 용량 기능을 사용하는 경우 소스 파일, Docker 계층 및 빌드 사양에 지정된 캐시된 디렉터리를 포함하여 플릿 인스턴스에 캐시된 데이터에 동일한 계정 내의 다른 프로젝트에서 액세스할 수 있습니다. 이는 설계에 따른 것이며 동일한 계정 내의 프로젝트가 플릿 인스턴스를 공유할 수 있도록 허용합니다.

예제 1: 리소스 태그를 기반으로 CodeBuild 프로젝트 작업 제한

다음 예제에서는 키 Environment 및 키 값 Production으로 태그 지정된 프로젝트에 대한 모든 BatchGetProjects 작업을 거부합니다. 사용자의 관리자는 관리형 사용자 IAM 정책 외에 이 정책을 권한이 없는 사용자에게 연결해야 합니다. aws:ResourceTag 조건 키는 태그를 기반으로 리소스에 대한 액세스를 제어하는 데 사용됩니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "codebuild:BatchGetProjects" ], "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "aws:ResourceTag/Environment": "Production" } } } ] }
예제 2: 요청 태그를 기반으로 CodeBuild 프로젝트 작업 제한

다음 정책은 요청에 키 Environment 및 키 값 Production을 사용하는 태그가 포함된 경우 CreateProject 작업에 대한 사용자 권한을 거부합니다. 또한 이 정책은 요청에 키 Environment를 사용하는 태그가 포함된 경우 UpdateProject를 허용하지 않도록 이러한 권한 없는 사용자가 aws:TagKeys 조건 키를 사용하여 프로젝트를 수정하는 것을 방지합니다. 관리자는 이러한 작업을 수행할 권한이 없는 사용자에게 관리형 사용자 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: 리소스 태그를 기반으로 보고서 그룹에 대한 작업 거부 또는 허용

리소스와 연결된 AWS 태그를 기반으로 CodeBuild 리소스(프로젝트 및 보고서 그룹)에 대한 작업을 허용하거나 거부하는 정책을 생성한 다음 사용자 관리를 위해 구성한 IAM 그룹에 해당 정책을 적용할 수 있습니다. 예를 들어 AWS 태그 키Status와 키 값이 인 보고서 그룹의 모든 CodeBuild 작업을 거부하는 정책을 생성한 Secret다음 IAM 일반 개발자(Developers). 그런 다음 태그가 지정된 보고서 그룹에 대해 작업하는 개발자가 해당 일반 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" } } } ] }