ID 기반 정책 사용: AWS CodeBuild - AWS CodeBuild

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

ID 기반 정책 사용: AWS CodeBuild

이 주제에서는 자격 증명 기반 정책의 예를 통해 계정 관리자가 IAM 자격 증명(사용자, 그룹, 역할)에 권한 정책을 연결해 AWS CodeBuild 리소스에 대한 작업 수행 권한을 부여하는 방법을 보여줍니다.

중요

먼저 리소스에 대한 액세스를 관리하는 데 사용할 수 있는 기본 개념과 옵션을 설명하는 소개 항목을 검토하는 것이 좋습니다. CodeBuild 자세한 설명은 리소스에 대한 액세스 권한 관리 개요 AWS CodeBuild 섹션을 참조하세요.

다음은 us-east-2라는 이름으로 시작하는 빌드 프로젝트에 대해 사용자가 123456789012 계정의 my 리전에 있는 빌드 프로젝트에 대해서만 정보를 가져오도록 허용하는 권한 정책의 예입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:BatchGetProjects", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/my*" } ] }

AWS CodeBuild 콘솔 사용에 필요한 권한

AWS CodeBuild 콘솔을 사용하는 사용자에게는 AWS 계정의 다른 AWS 리소스를 설명할 수 있는 최소 권한 집합이 있어야 합니다. 사용자에게는 다음 서비스에 대한 권한이 있어야 합니다.

  • AWS CodeBuild

  • 아마존 CloudWatch

  • CodeCommit ( AWS CodeCommit 리포지토리에 소스 코드를 저장하는 경우)

  • Amazon Elastic Container Registry(Amazon ECR)(Amazon ECR 리포지토리의 도커 이미지를 사용하는 빌드 환경을 사용하는 경우)

    참고

    2022년 7월 26일부로 기본 IAM 정책이 업데이트되었습니다. 자세한 설명은 Amazon Elastic 컨테이너 레지스트리에 연결하는 AWS CodeBuild 데 필요한 권한 섹션을 참조하세요.

  • Amazon Elastic Container Service(Amazon ECS)(Amazon ECR 리포지토리의 도커 이미지를 사용하는 빌드 환경을 사용하는 경우)

  • AWS Identity and Access Management (IAM)

  • AWS Key Management Service (AWS KMS)

  • Amazon Simple Storage Service(S3)

최소 필수 권한보다 더 제한적인 IAM 정책을 만들면 콘솔이 의도대로 작동하지 않습니다.

Amazon Elastic 컨테이너 레지스트리에 연결하는 AWS CodeBuild 데 필요한 권한

2022년 7월 26일부터 Amazon ECR 권한에 대한 기본 IAM 정책이 AWS CodeBuild 업데이트되었습니다. 다음 권한은 기본 정책에서 제거되었습니다.

"ecr:PutImage", "ecr:InitiateLayerUpload", "ecr:UploadLayerPart", "ecr:CompleteLayerUpload"

2022년 7월 26일 이전에 생성된 CodeBuild 프로젝트의 경우 다음 Amazon ECR 정책으로 정책을 업데이트하는 것이 좋습니다.

"Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ]

정책 업데이트에 대한 자세한 내용은 IAM 그룹 또는 사용자에게 CodeBuild 액세스 권한 추가 섹션을 참조하세요.

AWS CodeBuild 콘솔을 소스 공급자에 연결하는 데 필요한 권한

AWS CodeBuild 콘솔은 다음 API 작업을 사용하여 소스 제공자 (예: GitHub 리포지토리) 에 연결합니다.

  • codebuild:ListConnectedOAuthAccounts

  • codebuild:ListRepositories

  • codebuild:PersistOAuthToken

  • codebuild:ImportSourceCredentials

콘솔을 사용하여 소스 제공자 (예: GitHub 리포지토리) 를 빌드 프로젝트에 연결할 수 있습니다. AWS CodeBuild 이렇게 하려면 먼저 콘솔에 액세스하는 데 사용하는 사용자와 관련된 IAM 액세스 정책에 위의 API 작업을 추가해야 합니다. AWS CodeBuild

ListConnectedOAuthAccounts, ListRepositoriesPersistOAuthToken API 작업은 코드로 호출되는 것이 아닙니다. 따라서 이러한 API 작업은 AWS CLI 및 AWS SDK에 포함되지 않습니다.

AWS 에 대한 관리형 (사전 정의된) 정책 AWS CodeBuild

AWS 에서 생성하고 관리하는 독립형 IAM 정책을 제공하여 많은 일반적인 사용 사례를 해결합니다. AWS이러한 AWS 관리형 정책은 일반적인 사용 사례에 필요한 권한을 부여하므로 필요한 권한을 조사하지 않아도 됩니다. 의 관리형 정책은 해당 정책을 부여받은 사용자의 책임에 따라 IAM, AWS CodeCommit Amazon EC2, Amazon ECR, Amazon SNS, CloudWatch Amazon Events와 같은 다른 서비스에서 작업을 수행할 수 있는 CodeBuild 권한도 제공합니다. 예를 들어 이 정책은 관리자 수준의 사용자 AWSCodeBuildAdminAccess 정책으로, 이 정책을 사용하는 사용자는 프로젝트 빌드에 대한 CloudWatch 이벤트 규칙과 프로젝트 관련 이벤트 (이름 접두사가 붙은 주제arn:aws:codebuild:) 에 대한 알림에 대한 Amazon SNS 주제를 생성 및 관리하고 프로젝트를 관리하고 에서 프로젝트를 관리하고 그룹을 보고할 수 있습니다. CodeBuild 자세한 내용은 IAM 사용 설명서AWS 관리형 정책을 참조하세요.

계정의 사용자에게 연결할 수 있는 다음과 같은 AWS 관리형 정책은 해당 정책에만 적용됩니다. AWS CodeBuild

AWSCodeBuildAdminAccess

CodeBuild 빌드 프로젝트를 관리할 수 있는 권한을 CodeBuild 포함하여 모든 권한을 제공합니다.

AWSCodeBuildDeveloperAccess

빌드 프로젝트 관리에 대한 액세스를 CodeBuild 제공하지만 허용하지는 않습니다.

AWSCodeBuildReadOnlyAccess

에 대한 읽기 전용 액세스를 CodeBuild 제공합니다.

CodeBuild 생성하는 빌드 출력 아티팩트에 액세스하려면 라는 AWS 관리형 정책도 첨부해야 합니다. AmazonS3ReadOnlyAccess

CodeBuild 서비스 역할을 만들고 관리하려면 이름이 지정된 AWS IAMFullAccess 관리형 정책도 첨부해야 합니다.

CodeBuild 작업 및 리소스에 대한 권한을 허용하는 고유의 사용자 지정 IAM 정책을 생성할 수도 있습니다. 해당 권한이 필요한 사용자 또는 그룹에 이러한 사용자 지정 정책을 연결할 수 있습니다.

AWSCodeBuildAdminAccess

AWSCodeBuildAdminAccess정책은 CodeBuild 빌드 프로젝트 관리 권한을 CodeBuild 포함하여 에 대한 모든 액세스 권한을 제공합니다. 관리자 수준의 사용자에게만 이 정책을 적용하여 프로젝트 및 보고서 그룹 삭제 기능을 포함하여 AWS 계정의 CodeBuild 프로젝트, 보고서 그룹 및 관련 리소스에 대한 모든 권한을 부여할 수 있습니다.

AWSCodeBuildAdminAccess 정책에는 다음 정책 설명이 포함되어 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "codebuild:*", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetRepository", "codecommit:ListBranches", "codecommit:ListRepositories", "cloudwatch:GetMetricStatistics", "ec2:DescribeVpcs", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ecr:DescribeRepositories", "ecr:ListImages", "elasticfilesystem:DescribeFileSystems", "events:DeleteRule", "events:DescribeRule", "events:DisableRule", "events:EnableRule", "events:ListTargetsByRule", "events:ListRuleNamesByTarget", "events:PutRule", "events:PutTargets", "events:RemoveTargets", "logs:GetLogEvents", "s3:GetBucketLocation", "s3:ListAllMyBuckets" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "logs:DeleteLogGroup" ], "Effect": "Allow", "Resource": "arn:aws:logs:*:*:log-group:/aws/codebuild/*:log-stream:*" }, { "Effect": "Allow", "Action": [ "ssm:PutParameter" ], "Resource": "arn:aws:ssm:*:*:parameter/CodeBuild/*" }, { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": "arn:aws:ecs:*:*:task/*/*" }, { "Sid": "CodeStarConnectionsReadWriteAccess", "Effect": "Allow", "Action": [ "codestar-connections:CreateConnection", "codestar-connections:DeleteConnection", "codestar-connections:UpdateConnectionInstallation", "codestar-connections:TagResource", "codestar-connections:UntagResource", "codestar-connections:ListConnections", "codestar-connections:ListInstallationTargets", "codestar-connections:ListTagsForResource", "codestar-connections:GetConnection", "codestar-connections:GetIndividualAccessToken", "codestar-connections:GetInstallationUrl", "codestar-connections:PassConnection", "codestar-connections:StartOAuthHandshake", "codestar-connections:UseConnection" ], "Resource": "arn:aws:codestar-connections:*:*:connection/*" }, { "Sid": "CodeStarNotificationsReadWriteAccess", "Effect": "Allow", "Action": [ "codestar-notifications:CreateNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:UpdateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:Subscribe", "codestar-notifications:Unsubscribe" ], "Resource": "*", "Condition": { "StringLike": { "codestar-notifications:NotificationsForResource": "arn:aws:codebuild:*" } } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListEventTypes", "codestar-notifications:ListTargets", "codestar-notifications:ListTagsforResource" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsSNSTopicCreateAccess", "Effect": "Allow", "Action": [ "sns:CreateTopic", "sns:SetTopicAttributes" ], "Resource": "arn:aws:sns:*:*:codestar-notifications*" }, { "Sid": "SNSTopicListAccess", "Effect": "Allow", "Action": [ "sns:ListTopics", "sns:GetTopicAttributes" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsChatbotAccess", "Effect": "Allow", "Action": [ "chatbot:DescribeSlackChannelConfigurations", "chatbot:ListMicrosoftTeamsChannelConfigurations" ], "Resource": "*" } ] }

AWSCodeBuildDeveloperAccess

AWSCodeBuildDeveloperAccess 정책은 프로젝트 CodeBuild 및 보고서 그룹 관련 리소스의 모든 기능에 대한 액세스를 허용합니다. 이 정책은 사용자가 다른 AWS 서비스 (예: 이벤트) 의 CodeBuild 프로젝트, 보고서 그룹 또는 관련 리소스를 삭제하는 것을 허용하지 않습니다. CloudWatch 이 정책은 대부분의 사용자에게 적용하는 것이 좋습니다.

AWSCodeBuildDeveloperAccess 정책에는 다음 정책 설명이 포함되어 있습니다.

{ "Statement": [ { "Action": [ "codebuild:StartBuild", "codebuild:StopBuild", "codebuild:StartBuildBatch", "codebuild:StopBuildBatch", "codebuild:RetryBuild", "codebuild:RetryBuildBatch", "codebuild:BatchGet*", "codebuild:GetResourcePolicy", "codebuild:DescribeTestCases", "codebuild:DescribeCodeCoverages", "codebuild:List*", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetRepository", "codecommit:ListBranches", "cloudwatch:GetMetricStatistics", "events:DescribeRule", "events:ListTargetsByRule", "events:ListRuleNamesByTarget", "logs:GetLogEvents", "s3:GetBucketLocation", "s3:ListAllMyBuckets" ], "Effect": "Allow", "Resource": "*" }, { "Effect": "Allow", "Action": [ "ssm:PutParameter" ], "Resource": "arn:aws:ssm:*:*:parameter/CodeBuild/*" }, { "Effect": "Allow", "Action": [ "ssm:StartSession" ], "Resource": "arn:aws:ecs:*:*:task/*/*" }, { "Sid": "CodeStarConnectionsUserAccess", "Effect": "Allow", "Action": [ "codestar-connections:ListConnections", "codestar-connections:GetConnection" ], "Resource": "arn:aws:codestar-connections:*:*:connection/*" }, { "Sid": "CodeStarNotificationsReadWriteAccess", "Effect": "Allow", "Action": [ "codestar-notifications:CreateNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:UpdateNotificationRule", "codestar-notifications:Subscribe", "codestar-notifications:Unsubscribe" ], "Resource": "*", "Condition": { "StringLike": { "codestar-notifications:NotificationsForResource": "arn:aws:codebuild:*" } } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListEventTypes", "codestar-notifications:ListTargets", "codestar-notifications:ListTagsforResource" ], "Resource": "*" }, { "Sid": "SNSTopicListAccess", "Effect": "Allow", "Action": [ "sns:ListTopics", "sns:GetTopicAttributes" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsChatbotAccess", "Effect": "Allow", "Action": [ "chatbot:DescribeSlackChannelConfigurations", "chatbot:ListMicrosoftTeamsChannelConfigurations" ], "Resource": "*" } ], "Version": "2012-10-17" }

AWSCodeBuildReadOnlyAccess

AWSCodeBuildReadOnlyAccess 정책은 다른 AWS 서비스의 관련 리소스 CodeBuild 및 관련 리소스에 대한 읽기 전용 액세스 권한을 부여합니다. 빌드를 보고 실행하고 프로젝트를 보고 보고서 그룹을 볼 수 있지만 변경할 수 없는 사용자에게 이 정책을 적용하십시오.

AWSCodeBuildReadOnlyAccess 정책에는 다음 정책 설명이 포함되어 있습니다.

{ "Statement": [ { "Action": [ "codebuild:BatchGet*", "codebuild:GetResourcePolicy", "codebuild:List*", "codebuild:DescribeTestCases", "codebuild:DescribeCodeCoverages", "codecommit:GetBranch", "codecommit:GetCommit", "codecommit:GetRepository", "cloudwatch:GetMetricStatistics", "events:DescribeRule", "events:ListTargetsByRule", "events:ListRuleNamesByTarget", "logs:GetLogEvents" ], "Effect": "Allow", "Resource": "*" }, { "Sid": "CodeStarConnectionsUserAccess", "Effect": "Allow", "Action": [ "codestar-connections:ListConnections", "codestar-connections:GetConnection" ], "Resource": "arn:aws:codestar-connections:*:*:connection/*" }, { "Sid": "CodeStarNotificationsPowerUserAccess", "Effect": "Allow", "Action": [ "codestar-notifications:DescribeNotificationRule" ], "Resource": "*", "Condition": { "StringLike": { "codestar-notifications:NotificationsForResource": "arn:aws:codebuild:*" } } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListEventTypes", "codestar-notifications:ListTargets" ], "Resource": "*" } ], "Version": "2012-10-17" }

CodeBuild 관리형 정책 및 알림

CodeBuild 알림을 지원하여 빌드 프로젝트의 중요한 변경 사항을 사용자에게 알릴 수 있습니다. 의 관리형 CodeBuild 정책에는 알림 기능을 위한 정책 설명이 포함됩니다. 자세한 내용은 알림이란 무엇입니까?를 참조하세요.

전체 액세스 관리형 정책의 알림과 관련된 권한

AWSCodeBuildFullAccess 관리형 정책에는 알림에 대한 전체 액세스를 허용하는 다음 설명이 포함되어 있습니다. 또한 이러한 관리형 정책이 적용된 사용자는 알림에 대한 Amazon SNS 주제를 생성 및 관리하고, 주제에 대해 사용자를 구독 및 구독 취소하고, 알림 규칙의 대상으로 선택할 주제를 나열하고, Slack에 대해 구성된  AWS Chatbot  클라이언트를 나열할 수 있습니다.

{ "Sid": "CodeStarNotificationsReadWriteAccess", "Effect": "Allow", "Action": [ "codestar-notifications:CreateNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:UpdateNotificationRule", "codestar-notifications:DeleteNotificationRule", "codestar-notifications:Subscribe", "codestar-notifications:Unsubscribe" ], "Resource": "*", "Condition" : { "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codebuild:*"} } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListTargets", "codestar-notifications:ListTagsforResource", "codestar-notifications:ListEventTypes" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsSNSTopicCreateAccess", "Effect": "Allow", "Action": [ "sns:CreateTopic", "sns:SetTopicAttributes" ], "Resource": "arn:aws:sns:*:*:codestar-notifications*" }, { "Sid": "SNSTopicListAccess", "Effect": "Allow", "Action": [ "sns:ListTopics" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsChatbotAccess", "Effect": "Allow", "Action": [ "chatbot:DescribeSlackChannelConfigurations", "chatbot:ListMicrosoftTeamsChannelConfigurations" ], "Resource": "*" }

읽기 전용 관리형 정책의 알림과 관련된 권한

AWSCodeBuildReadOnlyAccess 관리형 정책에는 알림에 대한 읽기 전용 액세스를 허용하는 다음 설명이 포함되어 있습니다. 이 관리형 정책이 적용된 사용자는 리소스에 대한 알림을 볼 수 있지만 리소스를 생성, 관리 또는 구독할 수는 없습니다.

{ "Sid": "CodeStarNotificationsPowerUserAccess", "Effect": "Allow", "Action": [ "codestar-notifications:DescribeNotificationRule" ], "Resource": "*", "Condition" : { "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codebuild:*"} } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListEventTypes", "codestar-notifications:ListTargets" ], "Resource": "*" }

다른 관리형 정책의 알림과 관련된 권한

AWSCodeBuildDeveloperAccess 관리형 정책에는 사용자가 알림을 생성, 편집 및 구독할 수 있도록 허용하는 다음 설명이 포함되어 있습니다. 사용자는 알림 규칙을 삭제하거나 리소스에 대한 태그를 관리할 수는 없습니다.

{ "Sid": "CodeStarNotificationsReadWriteAccess", "Effect": "Allow", "Action": [ "codestar-notifications:CreateNotificationRule", "codestar-notifications:DescribeNotificationRule", "codestar-notifications:UpdateNotificationRule", "codestar-notifications:Subscribe", "codestar-notifications:Unsubscribe" ], "Resource": "*", "Condition" : { "StringLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codebuild*"} } }, { "Sid": "CodeStarNotificationsListAccess", "Effect": "Allow", "Action": [ "codestar-notifications:ListNotificationRules", "codestar-notifications:ListTargets", "codestar-notifications:ListTagsforResource", "codestar-notifications:ListEventTypes" ], "Resource": "*" }, { "Sid": "SNSTopicListAccess", "Effect": "Allow", "Action": [ "sns:ListTopics" ], "Resource": "*" }, { "Sid": "CodeStarNotificationsChatbotAccess", "Effect": "Allow", "Action": [ "chatbot:DescribeSlackChannelConfigurations", "chatbot:ListMicrosoftTeamsChannelConfigurations" ], "Resource": "*" }

IAM 및 알림에 대한 자세한 내용은 AWS CodeStar 알림에 대한 Identity and Access Management를 참조하세요.

CodeBuild AWS 관리형 정책 업데이트

이 서비스가 이러한 변경 사항을 추적하기 시작한 CodeBuild 이후의 AWS 관리형 정책 업데이트에 대한 세부 정보를 볼 수 있습니다. 이 페이지의 변경 사항에 대한 자동 알림을 받아보려면 AWS CodeBuild 사용자 가이드 문서 기록 에서 RSS 피드를 구독하세요.

변경 사항 설명 날짜

AWSCodeBuildAdminAccessAWSCodeBuildDeveloperAccess – 기존 정책에 대한 업데이트

CodeBuild 를 사용하여 추가 알림 유형을 지원하는 권한을 이러한 정책에 추가했습니다 AWS Chatbot.

AWSCodeBuildAdminAccessAWSCodeBuildDeveloperAccess 정책이 권한, chatbot:ListMicrosoftTeamsChannelConfigurations를 추가하도록 변경되었습니다.

2023년 5월 16일

CodeBuild 변경 내용 추적 시작

CodeBuild AWS 관리형 정책의 변경 사항 추적을 시작했습니다.

2021년 5월 16일

고객 관리형 정책 예제

이 섹션에서는 AWS CodeBuild 작업에 대한 권한을 부여하는 사용자 정책의 예를 제공합니다. 이러한 정책은 CodeBuild API, AWS SDK 또는 를 사용할 때 작동합니다. AWS CLI콘솔을 사용하는 경우 콘솔별 추가 권한을 부여해야 합니다. 자세한 내용은 AWS CodeBuild 콘솔 사용에 필요한 권한 섹션을 참조하세요.

다음 샘플 IAM 정책을 사용하여 사용자 및 역할의 CodeBuild 액세스를 제한할 수 있습니다.

주제

사용자가 빌드 프로젝트에 대한 정보를 가져오도록 허용

다음은 us-east-2라는 이름으로 시작하는 빌드 프로젝트에 대해 사용자가 123456789012 계정의 my 리전에 있는 빌드 프로젝트에 대한 정보를 가져오도록 허용하는 정책 설명의 예입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:BatchGetProjects", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/my*" } ] }

사용자가 보고서 그룹에 대한 정보를 가져오도록 허용

다음 예제 정책 설명을 통해 사용자는 계정 123456789012us-east-2 리전에서 보고서 그룹에 대한 정보를 가져올 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:BatchGetReportGroups", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }

사용자가 보고서에 대한 정보를 가져오도록 허용

다음 예제 정책 설명을 통해 사용자는 계정 123456789012us-east-2 리전에서 보고서에 대한 정보를 가져올 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:BatchGetReports", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }

사용자가 빌드 프로젝트를 생성하도록 허용

다음 예제 정책 설명을 사용하면 사용자가 특정 CodeBuild 서비스 역할만 사용하여 us-east-2 Region for 123456789012 account에만 어떤 이름으로든 빌드 프로젝트를 생성할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:CreateProject", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/CodeBuildServiceRole" } ] }

다음 예제 정책 설명을 사용하면 사용자가 지정된 CodeBuild 서비스 역할만 사용하여 us-east-2 Region for 123456789012 account에서만 어떤 이름으로든 빌드 프로젝트를 만들 수 있습니다. 또한 사용자가 지정된 서비스 역할만 다른 서비스에는 사용할 수 AWS CodeBuild 없고 다른 AWS 서비스에는 사용할 수 없도록 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:CreateProject", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/CodeBuildServiceRole", "Condition": { "StringEquals": {"iam:PassedToService": "codebuild.amazonaws.com"} } } ] }}

사용자가 보고서 그룹을 생성하도록 허용

다음 예제 정책 설명을 통해 사용자는 계정 123456789012us-east-2 리전에서 보고서 그룹을 생성할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:CreateReportGroup", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }

사용자가 보고서 그룹을 삭제하도록 허용

다음 예제 정책 설명을 통해 사용자는 계정 123456789012us-east-2 리전에서 보고서 그룹을 삭제할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:DeleteReportGroup", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }

사용자가 보고서를 삭제하도록 허용

다음 예제 정책 설명을 통해 사용자는 계정 123456789012us-east-2 리전에서 보고서를 삭제할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:DeleteReport", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }

사용자가 빌드 프로젝트를 삭제하도록 허용

다음은 us-east-2라는 이름으로 시작하는 빌드 프로젝트에 대해 사용자가 123456789012 계정의 my 리전에 있는 빌드 프로젝트를 삭제하도록 허용하는 정책 설명의 예입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:DeleteProject", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/my*" } ] }

사용자가 빌드 프로젝트 이름 목록을 가져오도록 허용

다음은 사용자가 동일한 계정의 빌드 프로젝트 이름 목록을 가져오도록 허용하는 정책 설명의 예입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListProjects", "Resource": "*" } ] }

사용자가 빌드 프로젝트에 대한 정보를 변경하도록 허용

다음은 사용자에게 모든 이름의 빌드 프로젝트에 대한 정보를 변경하도록 허용하지만, 123456789012 계정의 us-east-2 리전에만 있어야 하며, 지정된 AWS CodeBuild 서비스 역할만 사용해야 하는 정책 설명의 예입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:UpdateProject", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/*" }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": "arn:aws:iam::123456789012:role/CodeBuildServiceRole" } ] }

사용자가 보고서 그룹을 변경하도록 허용

다음 예제 정책 설명을 통해 사용자는 계정 123456789012us-east-2 리전에서 보고서 그룹을 변경할 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:UpdateReportGroup", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }

사용자가 빌드에 대한 정보를 가져오도록 허용

다음은 us-east-2123456789012라는 이름의 빌드 프로젝트에 대해 사용자가 my-build-project 계정의 my-other-build-project 리전에 있는 빌드에 대한 정보를 가져오도록 허용하는 정책 설명의 예입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:BatchGetBuilds", "Resource": [ "arn:aws:codebuild:us-east-2:123456789012:project/my-build-project", "arn:aws:codebuild:us-east-2:123456789012:project/my-other-build-project" ] } ] }

사용자가 빌드 프로젝트의 빌드 ID 목록을 가져오도록 허용

다음은 us-east-2123456789012라는 이름의 빌드 프로젝트에 대해 사용자가 my-build-project 계정의 my-other-build-project 리전에 있는 빌드 ID 목록을 가져오도록 허용하는 정책 설명의 예입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListBuildsForProject", "Resource": [ "arn:aws:codebuild:us-east-2:123456789012:project/my-build-project", "arn:aws:codebuild:us-east-2:123456789012:project/my-other-build-project" ] } ] }

사용자가 빌드 ID 목록을 가져오도록 허용

다음은 사용자가 동일한 계정의 모든 빌드 ID 목록을 가져오도록 허용하는 정책 설명의 예입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListBuilds", "Resource": "*" } ] }

사용자가 보고서 그룹 목록을 가져오도록 허용

다음 예제 정책 설명을 통해 사용자는 계정 123456789012us-east-2 리전에서 보고서 그룹 목록을 가져올 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListReportGroups", "Resource": "*" } ] }

사용자가 보고서 목록을 가져오도록 허용

다음 예제 정책 설명을 통해 사용자는 계정 123456789012us-east-2 리전에서 보고서 목록을 가져올 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListReports", "Resource": "*" } ] }

사용자가 보고서 그룹에 대한 보고서 목록을 가져오도록 허용

다음 예제 정책 설명을 통해 사용자는 계정 123456789012us-east-2 리전에서 보고서 그룹에 대한 보고서 목록을 가져올 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListReportsForReportGroup", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }

사용자가 보고서에 대한 테스트 케이스 목록을 가져오도록 허용

다음 예제 정책 설명을 통해 사용자는 계정 123456789012us-east-2 리전에서 보고서에 대한 테스트 케이스 목록을 가져올 수 있습니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:DescribeTestCases", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }

사용자가 빌드 실행을 시작하도록 허용

다음은 us-east-2라는 이름으로 시작하는 빌드 프로젝트에 대해 사용자가 123456789012 계정의 my 리전에 있는 빌드를 실행하도록 허용하는 정책 설명의 예입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:StartBuild", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/my*" } ] }

사용자가 빌드 중지를 시도하도록 허용

다음은 us-east-2라는 이름으로 시작하는 빌드 프로젝트에 대해 사용자가 123456789012 계정의 my 리전에 있는 빌드만 실행 중지를 시도하도록 허용하는 정책 설명의 예입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:StopBuild", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/my*" } ] }

사용자가 빌드 삭제를 시도하도록 허용

다음은 이름이 my로 시작하는 빌드 프로젝트에 대해 사용자가 123456789012 계정의 us-east-2 리전에 있는 빌드만 삭제하려고 시도하는 것을 허용하는 정책 설명의 예입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:BatchDeleteBuilds", "Resource": "arn:aws:codebuild:us-east-2:123456789012:project/my*" } ] }

사용자가 CodeBuild에서 관리하는 도커 이미지에 대한 정보를 가져오도록 허용

다음은 사용자가 CodeBuild가 관리하는 모든 Docker 이미지에 대한 정보를 가져오도록 허용하는 정책 설명의 예입니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListCuratedEnvironmentImages", "Resource": "*" } ] }

VPC 네트워크 인터페이스 생성에 필요한 AWS 서비스에 CodeBuild 대한 액세스 허용

다음 예제 정책 설명은 두 개의 서브넷이 있는 VPC에서 네트워크 인터페이스를 생성할 수 있는 AWS CodeBuild 권한을 부여합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:DescribeDhcpOptions", "ec2:DescribeNetworkInterfaces", "ec2:DeleteNetworkInterface", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeVpcs" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterfacePermission" ], "Resource": "arn:aws:ec2:region:account-id:network-interface/*", "Condition": { "StringEquals": { "ec2:AuthorizedService": "codebuild.amazonaws.com" }, "ArnEquals": { "ec2:Subnet": [ "arn:aws:ec2:region:account-id:subnet/subnet-id-1", "arn:aws:ec2:region:account-id:subnet/subnet-id-2" ] } } } ] }

거부 명령문을 사용하면 소스 공급자와의 연결이 끊기지 않도록 AWS CodeBuild 방지할 수 있습니다.

다음 예제 정책 명령문은 거부문을 사용하여 AWS CodeBuild 가 소스 공급자 연결을 해제하지 않도록 합니다. codebuild:PersistOAuthTokencodebuild:ImportSourceCredentials의 역인 codebuild:DeleteOAuthToken을 사용하여 소스 공급자와 연결합니다. 자세한 설명은 AWS CodeBuild 콘솔을 소스 공급자에 연결하는 데 필요한 권한 섹션을 참조하세요.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "codebuild:DeleteOAuthToken", "Resource": "*" } ] }