기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
IAM 정책 문의 조건은 CodeBuild 프로젝트 기반 작업에 대한 권한을 지정하는 데 사용할 수 있는 구문의 일부입니다. 해당 프로젝트와 연결된 태그를 기준으로 프로젝트에 대한 작업을 허용하거나 거부하는 정책을 생성한 다음, 사용자를 관리하기 위해 구성하는 IAM 그룹에 해당 정책을 적용할 수 있습니다. 콘솔을 사용하여 프로젝트에 태그를 적용하는 방법에 대한 자세한 내용은 섹션을 AWS CLI참조하세요에서 빌드 프로젝트 생성 AWS CodeBuild. CodeBuild SDK를 사용하여 태그를 적용하는 방법에 대한 자세한 내용은 CodeBuild API 참조의 CreateProject 및 태그를 참조하세요. 태그를 사용하여 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 그룹에 해당 정책을 적용할 수 있습니다. 그런 다음, 태그가 지정된 보고서 그룹에 대해 작업하는 개발자가 일반 개발자
그룹에 속하지 않고, 대신에 제한 정책이 적용되지 않는 다른 IAM 그룹(SecretDevelopers
)에 속하게 해야 합니다.
다음 예제에서는 키 Status
및 키 값 Secret
으로 태그가 지정된 보고서 그룹에 대한 모든 CodeBuild 작업을 거부합니다.
{
"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: 리소스 태그를 기준으로 CodeBuild 작업을 AWSCodeBuildDeveloperAccess로 제한
특정 태그가 지정되지 않은 모든 보고서 그룹 및 프로젝트에 대한 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
"
}
}
}
]
}