기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
에 대한 자격 증명 기반 정책 사용 AWS CodeBuild
이 주제에서는 계정 관리자가 자격 증명(즉, 사용자, 그룹 및 역할)에 권한 정책을 연결하여 AWS CodeBuild 리소스에 대한 작업을 수행할 수 있는 권한을 부여하는 방법을 보여주는 자격 IAM 증명 기반 정책의 예를 제공합니다.
중요
먼저 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
-
Amazon CloudWatch
-
CodeCommit (소스 코드를 AWS CodeCommit 리포지토리에 저장하는 경우)
-
Amazon Elastic Container Registry(AmazonECR)(Amazon ECR리포지토리의 Docker 이미지에 의존하는 빌드 환경을 사용하는 경우)
참고
2022년 7월 26일부터 기본 IAM 정책이 업데이트되었습니다. 자세한 내용은 Amazon Elastic Container Registry에 연결하는 AWS CodeBuild 데 필요한 권한 단원을 참조하십시오.
-
Amazon Elastic Container Service(AmazonECS)(Amazon ECR리포지토리의 Docker 이미지에 의존하는 빌드 환경을 사용하는 경우)
-
AWS Identity and Access Management (IAM)
-
AWS Key Management Service (AWS KMS)
-
Amazon Simple Storage Service(S3)
최소 필수 권한보다 더 제한적인 IAM 정책을 생성하면 콘솔이 의도한 대로 작동하지 않습니다.
Amazon Elastic Container Registry에 연결하는 AWS CodeBuild 데 필요한 권한
2022년 7월 26일부터 AWS CodeBuild 는 Amazon ECR 권한에 대한 기본 IAM 정책을 업데이트했습니다. 다음 권한은 기본 정책에서 제거되었습니다.
"ecr:PutImage", "ecr:InitiateLayerUpload", "ecr:UploadLayerPart", "ecr:CompleteLayerUpload"
2022년 7월 26일 이전에 생성된 CodeBuild 프로젝트의 경우 다음 Amazon 정책으로 ECR 정책을 업데이트하는 것이 좋습니다.
"Action": [ "ecr:BatchCheckLayerAvailability", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage" ]
정책 업데이트에 대한 자세한 내용은 사용자가 다음과 상호 작용하도록 허용 CodeBuild 섹션을 참조하세요.
AWS CodeBuild 콘솔이 소스 공급자에 연결하는 데 필요한 권한
AWS CodeBuild 콘솔은 다음 API 작업을 사용하여 소스 공급자(예: 리 GitHub 포지토리)에 연결합니다.
-
codebuild:ListConnectedOAuthAccounts
-
codebuild:ListRepositories
-
codebuild:PersistOAuthToken
-
codebuild:ImportSourceCredentials
AWS CodeBuild 콘솔을 사용하여 소스 공급자(예: GitHub 리포지토리)를 빌드 프로젝트와 연결할 수 있습니다. 이렇게 하려면 먼저 이전 API 작업을 추가하여 AWS CodeBuild 콘솔에 IAM 액세스하는 데 사용하는 사용자와 연결된 정책에 액세스해야 합니다.
ListConnectedOAuthAccounts
, ListRepositories
및 PersistOAuthToken
API 작업은 코드로 호출되지 않습니다. 따라서 이러한 API 작업은 AWS CLI 및 AWS 에 포함되지 않습니다SDKs.
AWS 에 대한 관리형(사전 정의) 정책 AWS CodeBuild
AWS 는 에서 생성 및 관리하는 독립 실행형 IAM 정책을 제공하여 많은 일반적인 사용 사례를 처리합니다 AWS. 이러한 AWS 관리형 정책은 일반적인 사용 사례에 필요한 권한을 부여하므로 필요한 권한을 조사할 필요가 없습니다. 또한 의 관리형 정책은 해당 정책을 부여받은 사용자의 책임에 필요한 IAM,, AWS CodeCommit Amazon , EC2Amazon ECR, Amazon SNS, Amazon CloudWatch Events와 같은 다른 서비스에서 작업을 수행할 수 있는 권한을 CodeBuild 제공합니다. 예를 들어 이 AWSCodeBuildAdminAccess
정책은 이 정책을 사용하는 사용자가 프로젝트 관련 이벤트에 대한 알림(이름 앞에 가 붙은 주제arn:aws:codebuild:
)을 위해 프로젝트 빌드 및 Amazon SNS 주제에 대한 이벤트 규칙을 생성 및 관리하고 CloudWatch 에서 프로젝트 및 보고서 그룹을 관리할 수 있도록 허용하는 관리 수준 사용자 정책입니다 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포함하여 에 대한 전체 액세스를 제공합니다. 이 정책은 관리자 수준 사용자에게만 적용되어 CodeBuild 프로젝트 및 보고서 그룹을 삭제할 수 있는 기능을 포함하여 AWS 계정의 프로젝트, 보고서 그룹 및 관련 리소스에 대한 전체 제어 권한을 부여합니다.
AWSCodeBuildAdminAccess
정책에는 다음 정책 설명이 포함되어 있습니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AWSServicesAccess",
"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": "*"
},
{
"Sid": "CWLDeleteLogGroupAccess",
"Action": [
"logs:DeleteLogGroup"
],
"Effect": "Allow",
"Resource": "arn:aws:logs:*:*:log-group:/aws/codebuild/*:log-stream:*"
},
{
"Sid": "SSMParameterWriteAccess",
"Effect": "Allow",
"Action": [
"ssm:PutParameter"
],
"Resource": "arn:aws:ssm:*:*:parameter/CodeBuild/*"
},
{
"Sid": "SSMStartSessionAccess",
"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/*",
"arn:aws:codeconnections:*:*: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 및 프로젝트 및 보고서 그룹 관련 리소스의 모든 기능에 대한 액세스를 허용합니다. 이 정책은 사용자가 CodeBuild 프로젝트 또는 보고서 그룹 또는 CloudWatch 이벤트와 같은 다른 AWS 서비스의 관련 리소스를 삭제하는 것을 허용하지 않습니다. 이 정책은 대부분의 사용자에게 적용하는 것이 좋습니다.
AWSCodeBuildDeveloperAccess
정책에는 다음 정책 설명이 포함되어 있습니다.
{
"Statement": [
{
"Sid": "AWSServicesAccess",
"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": "*"
},
{
"Sid": "SSMParameterWriteAccess",
"Effect": "Allow",
"Action": [
"ssm:PutParameter"
],
"Resource": "arn:aws:ssm:*:*:parameter/CodeBuild/*"
},
{
"Sid": "SSMStartSessionAccess",
"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/*",
"arn:aws:codeconnections:*:*: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": [
{
"Sid": "AWSServicesAccess",
"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/*",
"arn:aws:codeconnections:*:*: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 및 알림에 대한 자세한 내용은 섹션을 참조하세요. Identity and Access Management for AWS CodeStar 알림 .
CodeBuild AWS 관리형 정책에 대한 업데이트
이 서비스가 이러한 변경 사항을 추적하기 시작한 CodeBuild 이후 에 대한 AWS 관리형 정책 업데이트에 대한 세부 정보를 봅니다. 이 페이지의 변경 사항에 대한 자동 알림을 받으려면 의 RSS 피드를 구독하세요AWS CodeBuild 사용 설명서 문서 기록 .
변경 사항 | 설명 | 날짜 |
---|---|---|
|
CodeBuild 는 AWS CodeConnections 리브랜딩을 지원하기 위해 이러한 정책에 리소스를 추가했습니다. 리소스 |
2024년 4월 18일 |
|
CodeBuild 는 를 사용하여 추가 알림 유형을 지원하도록 이러한 정책에 대한 권한을 추가했습니다 AWS Chatbot.
|
2023년 5월 16일 |
CodeBuild 변경 사항 추적 시작 |
CodeBuild 는 AWS 관리형 정책에 대한 변경 사항 추적을 시작했습니다. |
2021년 5월 16일 |
고객 관리형 정책 예제
이 섹션에서는 AWS CodeBuild 작업에 대한 권한을 부여하는 사용자 정책의 예를 제공합니다. 이러한 정책은 CodeBuild API AWS SDKs, 또는 를 사용할 때 작동합니다 AWS CLI. 콘솔을 사용하는 경우 콘솔별 추가 권한을 부여해야 합니다. 자세한 내용은 AWS CodeBuild 콘솔 사용에 필요한 권한을 참조하세요.
다음 샘플 IAM 정책을 사용하여 사용자 및 역할에 대한 CodeBuild 액세스를 제한할 수 있습니다.
주제
- 사용자가 빌드 프로젝트에 대한 정보를 가져오도록 허용
- 사용자가 플릿에 대한 정보를 가져오도록 허용
- 사용자가 보고서 그룹에 대한 정보를 가져오도록 허용
- 사용자가 보고서에 대한 정보를 가져오도록 허용
- 사용자가 빌드 프로젝트를 생성하도록 허용
- 사용자가 플릿을 생성하도록 허용
- 사용자가 보고서 그룹을 생성하도록 허용
- 사용자가 플릿을 삭제하도록 허용
- 사용자가 보고서 그룹을 삭제하도록 허용
- 사용자가 보고서를 삭제하도록 허용
- 사용자가 빌드 프로젝트를 삭제하도록 허용
- 사용자가 빌드 프로젝트 이름 목록을 가져오도록 허용
- 사용자가 빌드 프로젝트에 대한 정보를 변경하도록 허용
- 사용자가 플릿을 변경하도록 허용
- 사용자가 보고서 그룹을 변경하도록 허용
- 사용자가 빌드에 대한 정보를 가져오도록 허용
- 사용자가 빌드 프로젝트의 IDs 빌드 목록을 가져오도록 허용
- 사용자가 빌드 목록을 가져오도록 허용 IDs
- 사용자가 플릿 목록을 가져오도록 허용
- 사용자가 보고서 그룹 목록을 가져오도록 허용
- 사용자가 보고서 목록을 가져오도록 허용
- 사용자가 보고서 그룹에 대한 보고서 목록을 가져오도록 허용
- 사용자가 보고서에 대한 테스트 케이스 목록을 가져오도록 허용
- 사용자가 빌드 실행을 시작하도록 허용
- 사용자가 빌드 중지를 시도하도록 허용
- 사용자가 빌드 삭제를 시도하도록 허용
- 사용자가 에서 관리하는 Docker 이미지에 대한 정보를 가져오도록 허용 CodeBuild
- 사용자가 플릿 서비스 역할에 대한 권한 정책을 추가하도록 허용
- VPC 네트워크 인터페이스를 생성하는 데 필요한 AWS 서비스에 대한 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*" } ] }
사용자가 플릿에 대한 정보를 가져오도록 허용
다음 예제 정책 문을 통해 사용자는 계정 에 대한 us-east-2
리전의 플릿에 대한 정보를 가져올 수 있습니다123456789012
.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:BatchGetFleets", "Resource": "arn:aws:codebuild:us-east-2:123456789012:fleet/*" } ] }
사용자가 보고서 그룹에 대한 정보를 가져오도록 허용
다음 예제 정책 설명을 통해 사용자는 계정 123456789012
의 us-east-2
리전에서 보고서 그룹에 대한 정보를 가져올 수 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:BatchGetReportGroups", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }
사용자가 보고서에 대한 정보를 가져오도록 허용
다음 예제 정책 설명을 통해 사용자는 계정 123456789012
의 us-east-2
리전에서 보고서에 대한 정보를 가져올 수 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:BatchGetReports", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }
사용자가 빌드 프로젝트를 생성하도록 허용
다음 예제 정책 문을 사용하면 사용자가 계정의 us-east-2
리전에서만 지정된 CodeBuild 서비스 역할123456789012
만 사용하여 모든 이름의 빌드 프로젝트를 생성할 수 있습니다.
{ "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" } ] }
다음 예제 정책 문을 사용하면 사용자가 계정의 us-east-2
리전에서만 지정된 CodeBuild 서비스 역할만 123456789012
사용하여 모든 이름의 빌드 프로젝트를 생성할 수 있습니다. 또한 사용자가 지정된 서비스 역할만 사용할 수 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"} } } ] }}
사용자가 플릿을 생성하도록 허용
다음 예제 정책 문을 사용하면 사용자가 계정 에 대해 us-east-2
리전에서 플릿을 생성할 수 있습니다123456789012
.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:CreateFleet", "Resource": "arn:aws:codebuild:us-east-2:123456789012:fleet/*" } ] }
사용자가 보고서 그룹을 생성하도록 허용
다음 예제 정책 설명을 통해 사용자는 계정 123456789012
의 us-east-2
리전에서 보고서 그룹을 생성할 수 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:CreateReportGroup", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }
사용자가 플릿을 삭제하도록 허용
다음 예제 정책 문을 통해 사용자는 계정 에 대해 us-east-2
리전의 플릿을 삭제할 수 있습니다123456789012
.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:DeleteFleet", "Resource": "arn:aws:codebuild:us-east-2:123456789012:fleet/*" } ] }
사용자가 보고서 그룹을 삭제하도록 허용
다음 예제 정책 설명을 통해 사용자는 계정 123456789012
의 us-east-2
리전에서 보고서 그룹을 삭제할 수 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:DeleteReportGroup", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }
사용자가 보고서를 삭제하도록 허용
다음 예제 정책 설명을 통해 사용자는 계정 123456789012
의 us-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" } ] }
사용자가 플릿을 변경하도록 허용
다음 예제 정책 문을 통해 사용자는 계정 에 대한 us-east-2
리전의 플릿을 변경할 수 있습니다123456789012
.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:UpdateFleet", "Resource": "arn:aws:codebuild:us-east-2:123456789012:fleet/*" } ] }
사용자가 보고서 그룹을 변경하도록 허용
다음 예제 정책 설명을 통해 사용자는 계정 123456789012
의 us-east-2
리전에서 보고서 그룹을 변경할 수 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:UpdateReportGroup", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }
사용자가 빌드에 대한 정보를 가져오도록 허용
다음은 us-east-2
및 123456789012
라는 이름의 빌드 프로젝트에 대해 사용자가 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" ] } ] }
사용자가 빌드 프로젝트의 IDs 빌드 목록을 가져오도록 허용
다음 예제 정책 문을 통해 사용자는 my-build-project
및 라는 빌드 프로젝트의 계정에 대한 us-east-2
리전IDs의 빌드 목록을 가져올 수 123456789012
있습니다my-other-build-project
.
{ "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" ] } ] }
사용자가 빌드 목록을 가져오도록 허용 IDs
다음 예제 정책 문을 사용하면 사용자가 동일한 계정에 IDs 대한 모든 빌드 목록을 가져올 수 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListBuilds", "Resource": "*" } ] }
사용자가 플릿 목록을 가져오도록 허용
다음 예제 정책 문을 사용하면 사용자가 계정 에 대한 us-east-2
리전의 플릿 목록을 가져올 수 있습니다123456789012
.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListFleets", "Resource": "*" } ] }
사용자가 보고서 그룹 목록을 가져오도록 허용
다음 예제 정책 설명을 통해 사용자는 계정 123456789012
의 us-east-2
리전에서 보고서 그룹 목록을 가져올 수 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListReportGroups", "Resource": "*" } ] }
사용자가 보고서 목록을 가져오도록 허용
다음 예제 정책 설명을 통해 사용자는 계정 123456789012
의 us-east-2
리전에서 보고서 목록을 가져올 수 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListReports", "Resource": "*" } ] }
사용자가 보고서 그룹에 대한 보고서 목록을 가져오도록 허용
다음 예제 정책 설명을 통해 사용자는 계정 123456789012
의 us-east-2
리전에서 보고서 그룹에 대한 보고서 목록을 가져올 수 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListReportsForReportGroup", "Resource": "arn:aws:codebuild:us-east-2:123456789012:report-group/*" } ] }
사용자가 보고서에 대한 테스트 케이스 목록을 가져오도록 허용
다음 예제 정책 설명을 통해 사용자는 계정 123456789012
의 us-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*" } ] }
사용자가 에서 관리하는 Docker 이미지에 대한 정보를 가져오도록 허용 CodeBuild
다음 예제 정책 문을 사용하면 사용자가 에서 관리하는 모든 Docker 이미지에 대한 정보를 가져올 수 있습니다 CodeBuild.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "codebuild:ListCuratedEnvironmentImages", "Resource": "*" } ] }
사용자가 플릿 서비스 역할에 대한 권한 정책을 추가하도록 허용
다음 리소스 정책 문 예제에서는 사용자가 플릿 서비스 역할에 대한 VPC 권한 정책을 추가할 수 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CodeBuildFleetVpcCreateNI", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface" ], "Resource": [ "arn:aws:ec2:
region
:account-id
:subnet/subnet-id-1", "arn:aws:ec2:region
:account-id
:security-group/security-group-id-1", "arn:aws:ec2:region
:account-id
:network-interface/*" ] }, { "Sid": "CodeBuildFleetVpcPermission", "Effect": "Allow", "Action": [ "ec2:DescribeDhcpOptions", "ec2:DescribeNetworkInterfaces", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcs", "ec2:ModifyNetworkInterfaceAttribute", "ec2:DeleteNetworkInterface" ], "Resource": "*" }, { "Sid": "CodeBuildFleetVpcNIPermission", "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterfacePermission" ], "Resource": "arn:aws:ec2:region
:account-id
:network-interface/*", "Condition": { "StringEquals": { "ec2:Subnet": [ "arn:aws:ec2:region
:account-id
:subnet/subnet-id-1" ] } } } ] }
다음 리소스 정책 설명 예제에서는 사용자가 플릿 서비스 역할에 대한 사용자 지정 Amazon Managed Image(AMI) 권한 정책을 추가할 수 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "ec2:DescribeImages", "Resource": "*" } ] }
다음 신뢰 정책 문 예제에서는 사용자가 플릿 서비스 역할에 대한 권한 정책을 추가할 수 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CodeBuildFleetVPCTrustPolicy", "Effect": "Allow", "Principal": { "Service": "codebuild.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "
account-id
" } } } ] }
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:PersistOAuthToken
및 codebuild:ImportSourceCredentials
의 역인 codebuild:DeleteOAuthToken
을 사용하여 소스 공급자와 연결합니다. 자세한 내용은 AWS CodeBuild 콘솔이 소스 공급자에 연결하는 데 필요한 권한 단원을 참조하십시오.
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "codebuild:DeleteOAuthToken", "Resource": "*" } ] }