

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

# 의 자격 증명 및 액세스 관리 AWS CodeBuild
<a name="auth-and-access-control"></a>

에 액세스하려면 자격 증명이 AWS CodeBuild 필요합니다. 이러한 자격 증명에는 S3 버킷에 빌드 아티팩트를 저장 및 검색하고 빌드에 대한 Amazon CloudWatch Logs를 보는 등 AWS 리소스에 액세스할 수 있는 권한이 있어야 합니다. 다음 섹션에서는 [AWS Identity and Access Management](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)(IAM) 및 CodeBuild를 사용하여 리소스에 대한 액세스를 보호할 수 있는 방법에 대한 세부 정보를 제공합니다.

# AWS CodeBuild 리소스에 대한 액세스 권한 관리 개요
<a name="auth-and-access-control-iam-access-control-identity-based"></a>

모든 AWS 리소스는 AWS 계정이 소유하며, 리소스를 생성하거나 액세스할 수 있는 권한은 권한 정책에 의해 관리됩니다. 계정 관리자는 IAM ID(사용자, 그룹 및 역할)에 권한 정책을 연결할 수 있습니다.

**참고**  
계정 관리자 또는 관리자 사용자는 관리자 권한이 있는 사용자입니다. 자세한 설명은 *IAM 사용자 가이드*의 [IAM 모범 사례](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html) 섹션을 참조하십시오.

권한을 부여할 때는 권한을 부여 받을 사용자, 사용자가 액세스할 수 있는 리소스 및 해당 리소스에 수행할 수 있는 작업을 결정합니다.

**Topics**
+ [AWS CodeBuild 리소스 및 작업](#arn-formats)
+ [리소스 소유권 이해](#understanding-resource-ownership)
+ [리소스 액세스 관리](#managing-access-resources)
+ [정책 요소 지정: 작업, 효과, 보안 주체](#actions-effects-principals)

## AWS CodeBuild 리소스 및 작업
<a name="arn-formats"></a>

에서 AWS CodeBuild기본 리소스는 빌드 프로젝트입니다. 정책에서 Amazon 리소스 이름(ARN)을 사용하여 정책이 적용되는 리소스를 식별합니다. 빌드도 리소스이며 빌드에는 이와 연결된 ARN이 들어 있습니다. 자세한 내용은의 [Amazon 리소스 이름(ARN) 및 AWS 서비스 네임스페이스](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)를 참조하세요*Amazon Web Services 일반 참조*.


| 리소스 유형 | ARN 형식 | 
| --- | --- | 
| 빌드 프로젝트 |  `arn:aws:codebuild:region-ID:account-ID:project/project-name`  | 
| 빌드 |  `arn:aws:codebuild:region-ID:account-ID:build/build-ID`  | 
| 보고서 그룹 | arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name | 
| Report | arn:aws:codebuild:region-ID:account-ID:report/report-ID | 
| 플릿 |  `arn:aws:codebuild:region-ID:account-ID:fleet/fleet-ID`  | 
|  모든 CodeBuild 리소스  |  `arn:aws:codebuild:*`  | 
|  지정된 AWS 리전에서 지정된 계정이 소유한 모든 CodeBuild 리소스  |  `arn:aws:codebuild:region-ID:account-ID:*`  | 

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

**참고**  
대부분의 AWS 서비스는 콜론(:) 또는 슬래시(/)를 ARNs. 그러나 CodeBuild는 리소스 패턴 및 규칙에서 정확한 일치를 사용합니다. 따라서 이벤트 패턴을 만들 때 리소스에서 ARN 구문이 일치하도록 정확한 문자를 사용해야 합니다.

예를 들어, 명령문에서 다음과 같이 ARN을 사용하여 특정 빌드 프로젝트(*myBuildProject*)를 지정할 수 있습니다.

```
"Resource": "arn:aws:codebuild:us-east-2:123456789012:project/myBuildProject"
```

모든 리소스를 지정해야 하거나, API 작업이 ARN을 지원하지 않는 경우 다음과 같이 `Resource` 요소에 와일드카드 문자(\$1)를 사용합니다.

```
"Resource": "*"
```

일부 CodeBuild API 작업에서는 여러 리소스 사용을 허용합니다(예: `BatchGetProjects`). 명령문 하나에 여러 리소스를 지정하려면 다음과 같이 각 ARN을 쉼표로 구분합니다.

```
"Resource": [
  "arn:aws:codebuild:us-east-2:123456789012:project/myBuildProject",
  "arn:aws:codebuild:us-east-2:123456789012:project/myOtherBuildProject"
]
```

CodeBuild는 CodeBuild 리소스를 처리하기 위한 작업 모음을 제공합니다. 목록을 보려면 [AWS CodeBuild 권한 참조](auth-and-access-control-permissions-reference.md) 섹션을 참조하세요.

## 리소스 소유권 이해
<a name="understanding-resource-ownership"></a>

 AWS 계정은 누가 리소스를 생성했는지에 관계없이 계정에 생성된 리소스를 소유합니다. 특히 리소스 소유자는 리소스 생성 요청을 인증하는 AWS [보안 주체 엔](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html)터티(즉, 루트 계정, 사용자 또는 IAM 역할)의 계정입니다. 다음 예제에서는 이러한 작동 방법을 설명합니다.
+  AWS 계정의 루트 계정 자격 증명을 사용하여 규칙을 생성하는 경우 AWS 계정은 CodeBuild 리소스의 소유자입니다.
+  AWS 계정에서 사용자를 생성하고 해당 사용자에게 CodeBuild 리소스를 생성할 수 있는 권한을 부여하는 경우 사용자는 CodeBuild 리소스를 생성할 수 있습니다. 하지만 사용자가 속한 AWS 계정이 CodeBuild 리소스를 소유합니다.
+  AWS 계정에서 CodeBuild 리소스를 생성할 권한이 있는 IAM 역할을 생성하는 경우 해당 역할을 수임할 수 있는 사람은 누구나 CodeBuild 리소스를 생성할 수 있습니다. 역할이 속한 AWS 계정이 CodeBuild 리소스를 소유합니다.

## 리소스 액세스 관리
<a name="managing-access-resources"></a>

권한 정책은 누가 어떤 리소스에 액세스 할 수 있는지를 나타냅니다.

**참고**  
이 섹션에서는 AWS CodeBuild에서 IAM을 사용하는 방법에 대해 설명하며, IAM 서비스에 대한 자세한 내용은 다루지 않습니다. IAM 설명서의 전체 내용은 *IAM 사용자 안내서*의 [IAM이란?](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html)을 참조하세요. IAM 정책 구문과 설명에 대한 자세한 내용은 *IAM 사용 설명서*의 [AWS IAM 정책 참조](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html) 섹션을 참조하세요.

IAM 보안 인증에 연결된 정책을 보안 인증 기반 정책(IAM 정책)이라고 합니다. 리소스에 연결된 정책을 리소스 기반 정책이라고 합니다. CodeBuild는 계정 리소스 공유를 위해 자격 증명 기반 정책과 특정 읽기 전용 API에 대한 리소스 기반 정책을 지원합니다.

### S3 버킷에 대한 보안 액세스
<a name="secure-s3-buckets"></a>

IAM 역할에 다음 권한을 포함시켜 CodeBuild 프로젝트와 연결된 S3 버킷이 사용자 또는 사용자가 신뢰할 수 있는 사람의 소유인지 확인할 것을 적극 권장합니다. 이러한 권한은 AWS 관리형 정책 및 역할에 포함되지 않습니다. 사용자가 직접 추가해야 합니다.
+  `s3:GetBucketAcl` 
+  `s3:GetBucketLocation` 

프로젝트에서 사용되는 S3 버킷 소유자가 변경될 경우에는 사용자가 해당 버킷을 아직도 소유하고 있는지 확인하고 아닐 경우에는 사용자의 IAM 역할에 권한을 업데이트해야 합니다. 자세한 내용은 [사용자가 CodeBuild와 상호 작용하도록 허용](setting-up-service-permissions-group.md) 및 [CodeBuild가 다른 AWS 서비스와 상호 작용하도록 허용](setting-up-service-role.md) 섹션을 참조하세요.

## 정책 요소 지정: 작업, 효과, 보안 주체
<a name="actions-effects-principals"></a>

각 AWS CodeBuild 리소스에 대해 서비스는 API 작업 세트를 정의합니다. 이러한 API 작업에 대한 권한을 부여하기 위해 CodeBuild에서는 정책에서 지정할 수 있는 작업을 정의합니다. 일부 API 작업에서는 API 작업을 수행하기 위해 복수의 작업에 대한 권한이 필요할 수 있습니다. 자세한 내용은 [AWS CodeBuild 리소스 및 작업](#arn-formats) 및 [AWS CodeBuild 권한 참조](auth-and-access-control-permissions-reference.md) 섹션을 참조하세요.

다음은 기본 정책 요소입니다.
+ **리소스** – Amazon 리소스 이름(ARN)을 사용하여 정책을 적용할 리소스를 식별합니다.
+ **작업** – 작업 키워드를 사용하여 허용 또는 거부할 리소스 작업을 식별합니다. 예를 들어, `codebuild:CreateProject` 권한은 사용자에게 `CreateProject` 작업 수행 권한을 제공합니다.
+ **효과** – 사용자가 작업을 요청하는 경우 효과(허용 또는 거부)를 지정합니다. 명시적으로 리소스에 대한 액세스 권한을 부여(허용)하지 않는 경우, 액세스는 묵시적으로 거부됩니다. 리소스에 대한 액세스를 명시적으로 거부할 수도 있습니다. 다른 정책에서 액세스 권한을 부여하더라도 사용자가 해당 리소스에 액세스할 수 없도록 하려고 할 때 이러한 작업을 수행할 수 있습니다.
+ **보안 주체** – 자격 증명 기반 정책(IAM 정책)에서 정책이 연결되는 사용자는 암시적인 보안 주체입니다. 리소스 기반 정책의 경우 사용자, 계정, 서비스 또는 권한의 수신자인 기타 엔터티를 지정합니다.

IAM 정책 구문과 설명에 대한 자세한 내용은 *IAM 사용자 안내서*의 [AWS IAM 정책 참조](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies.html)를 참조하세요.

모든 CodeBuild API 작업과 해당 작업이 적용되는 리소스를 보여 주는 표는 [AWS CodeBuild 권한 참조](auth-and-access-control-permissions-reference.md) 섹션을 참조하세요.

# 에 대한 자격 증명 기반 정책 사용 AWS CodeBuild
<a name="auth-and-access-control-iam-identity-based-access-control"></a>

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

**중요**  
CodeBuild 리소스에 대한 액세스 관리를 위해 제공되는 기본 개념과 옵션 설명에 대한 소개 주제 부분을 먼저 읽어 보세요. 자세한 내용은 [AWS CodeBuild 리소스에 대한 액세스 권한 관리 개요](auth-and-access-control-iam-access-control-identity-based.md) 단원을 참조하십시오.

**Topics**
+ [AWS CodeBuild 콘솔을 사용하는 데 필요한 권한](#console-permissions)
+ [가 Amazon Elastic Container Registry AWS CodeBuild 에 연결하는 데 필요한 권한](#ecr-policies)
+ [AWS CodeBuild 콘솔이 소스 공급자에 연결하는 데 필요한 권한](#console-policies)
+ [AWS 에 대한 관리형(미리 정의된) 정책 AWS CodeBuild](#managed-policies)
+ [CodeBuild 관리형 정책 및 알림](#notifications-permissions)
+ [AWS 관리형 정책에 대한 CodeBuild 업데이트](#security-iam-awsmanpol-updates)
+ [고객 관리형 정책 예제](#customer-managed-policies)

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

------
#### [ JSON ]

****  

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

------

## AWS CodeBuild 콘솔을 사용하는 데 필요한 권한
<a name="console-permissions"></a>

 AWS CodeBuild 콘솔을 사용하는 사용자에게는 AWS 계정의 다른 AWS 리소스를 설명할 수 있는 최소 권한 집합이 있어야 합니다. 사용자에게는 다음 서비스에 대한 권한이 있어야 합니다.
+ AWS CodeBuild
+ Amazon CloudWatch
+ CodeCommit( AWS CodeCommit 리포지토리에 소스 코드를 저장하는 경우)
+ Amazon Elastic Container Registry(Amazon ECR)(Amazon ECR 리포지토리의 도커 이미지를 사용하는 빌드 환경을 사용하는 경우)
**참고**  
2022년 7월 26일부로 기본 IAM 정책이 업데이트되었습니다. 자세한 내용은 [가 Amazon Elastic Container Registry AWS CodeBuild 에 연결하는 데 필요한 권한](#ecr-policies) 단원을 참조하십시오.
+ Amazon Elastic Container Service(Amazon ECS)(Amazon ECR 리포지토리의 도커 이미지를 사용하는 빌드 환경을 사용하는 경우)
+ AWS Identity and Access Management (IAM)
+ AWS Key Management Service (AWS KMS)
+ Amazon Simple Storage Service(Amazon S3)

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

## 가 Amazon Elastic Container Registry AWS CodeBuild 에 연결하는 데 필요한 권한
<a name="ecr-policies"></a>

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와 상호 작용하도록 허용](setting-up-service-permissions-group.md) 섹션을 참조하세요.

## AWS CodeBuild 콘솔이 소스 공급자에 연결하는 데 필요한 권한
<a name="console-policies"></a>

 AWS CodeBuild 콘솔은 다음 API 작업을 사용하여 소스 공급자(예: GitHub 리포지토리)에 연결합니다.
+ `codebuild:ListConnectedOAuthAccounts`
+ `codebuild:ListRepositories`
+ `codebuild:PersistOAuthToken`
+ `codebuild:ImportSourceCredentials`

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

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

## AWS 에 대한 관리형(미리 정의된) 정책 AWS CodeBuild
<a name="managed-policies"></a>

AWS 는에서 생성하고 관리하는 독립 실행형 IAM 정책을 제공하여 많은 일반적인 사용 사례를 처리합니다 AWS. 이러한 AWS 관리형 정책은 일반적인 사용 사례에 필요한 권한을 부여하므로 필요한 권한을 조사할 필요가 없습니다. CodeBuild의 관리형 정책은 해당 정책을 부여받은 사용자의 책임에 필요한 IAM, AWS CodeCommit Amazon EC2, Amazon ECR, Amazon SNS 및 Amazon CloudWatch Events와 같은 다른 서비스에서 작업을 수행할 수 있는 권한도 제공합니다. 예를 들면 `AWSCodeBuildAdminAccess` 정책은 관리 수준의 사용자 정책으로, 이 정책을 통해 사용자가 프로젝트 관련 이벤트(이름에 `arn:aws:codebuild:`라는 접두사가 붙은 주제)에 대한 알림을 위한 프로젝트 빌드 및 Amazon SNS 주제에 대한 CloudWatch 이벤트 규칙을 생성 및 관리하고 CodeBuild에서 프로젝트 및 보고서 그룹을 관리할 수 있습니다. 자세한 내용은 *IAM 사용자 안내서*의 [AWS 관리형 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#aws-managed-policies)을 참조하세요.

계정의 사용자에게 연결할 수 있는 다음 AWS 관리형 정책은에 고유합니다 AWS CodeBuild.

**AWSCodeBuildAdminAccess**  
CodeBuild 빌드 프로세스를 관리하는 데 필요한 권한을 비롯하여 CodeBuild에 대한 전체 액세스 권한을 제공합니다.

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

**AWSCodeBuildReadOnlyAccess**  
CodeBuild에 대한 읽기 전용 액세스 권한을 제공합니다.

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

CodeBuild 서비스 역할을 생성하고 관리하려면 라는 AWS 관리형 정책도 연결해야 합니다`IAMFullAccess`.

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

**Topics**
+ [AWSCodeBuildAdminAccess](#admin-access-policy)
+ [AWSCodeBuildDeveloperAccess](#developer-access-policy)
+ [AWSCodeBuildReadOnlyAccess](#read-only-access-policy)

### AWSCodeBuildAdminAccess
<a name="admin-access-policy"></a>

`AWSCodeBuildAdminAccess` 정책은 CodeBuild 빌드 프로세스를 관리하는 데 필요한 권한을 비롯하여 CodeBuild에 대한 전체 액세스 권한을 제공합니다. 이 정책은 관리자 수준 사용자에게만 적용하여 프로젝트 및 보고서 그룹을 삭제하는 기능을 포함하여 AWS 계정의 CodeBuild 프로젝트, 보고서 그룹 및 관련 리소스에 대한 전체 제어 권한을 부여합니다.

전체 관리형 정책은 IAM 관리형 정책 참조의 [ AWSCodeBuildAdminAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCodeBuildAdminAccess.html)를 참조하세요.

### AWSCodeBuildDeveloperAccess
<a name="developer-access-policy"></a>

`AWSCodeBuildDeveloperAccess` 정책은 CodeBuild의 모든 기능과 프로젝트 및 보고서 그룹 관련 리소스에 액세스할 수 있도록 합니다. 이 정책은 사용자가 CodeBuild 프로젝트나 보고서 그룹 또는 CloudWatch Events와 같은 다른 AWS 서비스의 관련 리소스를 삭제하도록 허용하지 않습니다. 이 정책은 대부분의 사용자에게 적용하는 것이 좋습니다.

전체 관리형 정책은 IAM 관리형 정책 참조의 [ AWSCodeBuildDeveloperAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCodeBuildDeveloperAccess.html)를 참조하세요.

### AWSCodeBuildReadOnlyAccess
<a name="read-only-access-policy"></a>

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

전체 관리형 정책은 IAM 관리형 정책 참조의 [ AWSCodeBuildReadOnlyAccess](https://docs.aws.amazon.com/aws-managed-policy/latest/reference/AWSCodeBuildReadOnlyAccess.xml)를 참조하세요.

## CodeBuild 관리형 정책 및 알림
<a name="notifications-permissions"></a>

CodeBuild에서는 프로젝트를 빌드하는 데 중요한 변경 사항을 사용자에게 알릴 수 있는 알림을 지원합니다. CodeBuild에 대한 관리형 정책에는 알림 기능에 대한 정책 설명이 포함되어 있습니다. 자세한 내용은 [알림이란 무엇입니까?](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/welcome.html)를 참조하세요.

### 읽기 전용 관리형 정책의 알림과 관련된 권한
<a name="notifications-readonly"></a>

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

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

### 다른 관리형 정책의 알림과 관련된 권한
<a name="notifications-otheraccess"></a>

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

```
    {
        "Sid": "CodeStarNotificationsReadWriteAccess",
        "Effect": "Allow",
        "Action": [
            "codestar-notifications:CreateNotificationRule",
            "codestar-notifications:DescribeNotificationRule",
            "codestar-notifications:UpdateNotificationRule",
            "codestar-notifications:Subscribe",
            "codestar-notifications:Unsubscribe"
        ],
        "Resource": "*",
        "Condition" : {
            "ArnLike" : {"codestar-notifications:NotificationsForResource" : "arn:aws:codebuild:*:*:project/*"}
        }
    },    
    {
        "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](https://docs.aws.amazon.com/codestar-notifications/latest/userguide/security-iam.html)를 참조하세요.

## AWS 관리형 정책에 대한 CodeBuild 업데이트
<a name="security-iam-awsmanpol-updates"></a>

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




| 변경 | 설명 | Date | 
| --- | --- | --- | 
|  `AWSCodeBuildAdminAccess` 및 `AWSCodeBuildDeveloperAccess` – 기존 정책에 대한 업데이트  |  CodeBuild는 세션 관리자 대화형 빌드 디버깅을 지원하기 위해 이러한 정책에 `ssmmessages:OpenDataChannel` 권한을 추가했습니다. 이제 `AWSCodeBuildAdminAccess` 및 `AWSCodeBuildDeveloperAccess` 정책에 Session Manager 세션 리소스(`arn:aws:ssm:*:*:session/*`)에 대한 `ssmmessages:OpenDataChannel` 작업이 포함되어이 WebSocket API에서 SigV4 적용을 지원합니다.  | 2025년 12월 1일 | 
|  `AWSCodeBuildAdminAccess`, `AWSCodeBuildDeveloperAccess` 및 `AWSCodeBuildReadOnlyAccess` - 기존 정책 업데이트  |  CodeBuild는 리소스를 이러한 정책으로 업데이트했습니다. `AWSCodeBuildAdminAccess`, `AWSCodeBuildDeveloperAccess`, `AWSCodeBuildReadOnlyAccess` 정책이 기존 리소스를 업데이트하도록 변경되었습니다. 원본 리소스 `arn:aws:codebuild:*`이 `arn:aws:codebuild:*:*:project/*`로 업데이트되었습니다.  | 2024년 11월 15일 | 
|  `AWSCodeBuildAdminAccess`, `AWSCodeBuildDeveloperAccess` 및 `AWSCodeBuildReadOnlyAccess` - 기존 정책 업데이트  |  CodeBuild는 AWS CodeConnections 리브랜딩을 지원하기 위해 이러한 정책에 리소스를 추가했습니다. `AWSCodeBuildAdminAccess`, `AWSCodeBuildDeveloperAccess` 및 `AWSCodeBuildReadOnlyAccess` 정책이 `arn:aws:codeconnections:*:*:*` 리소스를 추가하도록 변경되었습니다.  | 2024년 4월 18일 | 
|  `AWSCodeBuildAdminAccess` 및 `AWSCodeBuildDeveloperAccess` - 기존 정책 업데이트  |  CodeBuild는 채팅 애플리케이션에서 Amazon Q Developer를 사용하는 추가 알림 유형을 지원하기 위해 이러한 정책에 권한을 추가했습니다. `AWSCodeBuildAdminAccess` 및 `AWSCodeBuildDeveloperAccess` 정책이 권한, `chatbot:ListMicrosoftTeamsChannelConfigurations`를 추가하도록 변경되었습니다.  | 2023년 5월 16일 | 
|  CodeBuild가 변경 내용 추적을 시작함  |  CodeBuild가 AWS 관리형 정책에 대한 변경 사항 추적을 시작했습니다.  | 2021년 5월 16일 | 

## 고객 관리형 정책 예제
<a name="customer-managed-policies"></a>

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

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

**Topics**
+ [사용자가 빌드 프로젝트에 대한 정보를 가져오도록 허용](#customer-managed-policies-example-batch-get-projects)
+ [사용자가 플릿에 대한 정보를 가져오도록 허용](#customer-managed-policies-get-information-about-fleets)
+ [사용자가 보고서 그룹에 대한 정보를 가져오도록 허용](#customer-managed-policies-get-information-about-report-group)
+ [사용자가 보고서에 대한 정보를 가져오도록 허용](#customer-managed-policies-get-information-about-reports)
+ [사용자가 빌드 프로젝트를 생성하도록 허용](#customer-managed-policies-example-create-project)
+ [사용자가 플릿을 생성하도록 허용](#customer-managed-policies-example-create-fleet)
+ [사용자가 보고서 그룹을 생성하도록 허용](#customer-managed-policies-example-create-report-group)
+ [사용자가 플릿을 삭제하도록 허용](#customer-managed-policies-example-delete-fleet)
+ [사용자가 보고서 그룹을 삭제하도록 허용](#customer-managed-policies-example-delete-report-group)
+ [사용자가 보고서를 삭제하도록 허용](#customer-managed-policies-example-delete-report)
+ [사용자가 빌드 프로젝트를 삭제하도록 허용](#customer-managed-policies-example-delete-project)
+ [사용자가 빌드 프로젝트 이름 목록을 가져오도록 허용](#customer-managed-policies-example-list-projects)
+ [사용자가 빌드 프로젝트에 대한 정보를 변경하도록 허용](#customer-managed-policies-example-update-project)
+ [사용자가 플릿을 변경하도록 허용](#customer-managed-policies-example-change-fleet)
+ [사용자가 보고서 그룹을 변경하도록 허용](#customer-managed-policies-example-change-report-group)
+ [사용자가 빌드에 대한 정보를 가져오도록 허용](#customer-managed-policies-example-batch-get-builds)
+ [사용자가 빌드 프로젝트의 빌드 ID 목록을 가져오도록 허용](#customer-managed-policies-example-list-builds-for-project)
+ [사용자가 빌드 ID 목록을 가져오도록 허용](#customer-managed-policies-example-list-builds)
+ [사용자가 플릿 목록을 가져오도록 허용](#customer-managed-policies-example-get-list-of-fleets)
+ [사용자가 보고서 그룹 목록을 가져오도록 허용](#customer-managed-policies-example-get-list-of-report-groups)
+ [사용자가 보고서 목록을 가져오도록 허용](#customer-managed-policies-example-get-list-of-reports)
+ [사용자가 보고서 그룹에 대한 보고서 목록을 가져오도록 허용](#customer-managed-policies-example-get-list-of-reports-for-report-group)
+ [사용자가 보고서에 대한 테스트 케이스 목록을 가져오도록 허용](#customer-managed-policies-example-get-list-of-test-cases-for-report)
+ [사용자가 빌드 실행을 시작하도록 허용](#customer-managed-policies-example-start-build)
+ [사용자가 빌드 중지를 시도하도록 허용](#customer-managed-policies-example-stop-build)
+ [사용자가 빌드 삭제를 시도하도록 허용](#customer-managed-policies-example-delete-builds)
+ [사용자가 CodeBuild에서 관리하는 도커 이미지에 대한 정보를 가져오도록 허용](#customer-managed-policies-example-list-curated-environment-images)
+ [사용자가 플릿 서비스 역할에 대한 권한 정책을 추가하도록 허용](#customer-managed-policies-example-permission-policy-fleet-service-role)
+ [VPC 네트워크 인터페이스를 생성하는 데 필요한 AWS 서비스에 대한 CodeBuild 액세스 허용](#customer-managed-policies-example-create-vpc-network-interface)
+ [거부 문을 사용하여 AWS CodeBuild 가 소스 공급자와의 연결을 끊지 않도록 방지](#customer-managed-policies-example-deny-disconnect)

### 사용자가 빌드 프로젝트에 대한 정보를 가져오도록 허용
<a name="customer-managed-policies-example-batch-get-projects"></a>

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

------
#### [ JSON ]

****  

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

------

### 사용자가 플릿에 대한 정보를 가져오도록 허용
<a name="customer-managed-policies-get-information-about-fleets"></a>

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

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:BatchGetFleets",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:fleet/*"
    }
  ]
}
```

------

### 사용자가 보고서 그룹에 대한 정보를 가져오도록 허용
<a name="customer-managed-policies-get-information-about-report-group"></a>

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

------
#### [ JSON ]

****  

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

------

### 사용자가 보고서에 대한 정보를 가져오도록 허용
<a name="customer-managed-policies-get-information-about-reports"></a>

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

------
#### [ JSON ]

****  

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

------

### 사용자가 빌드 프로젝트를 생성하도록 허용
<a name="customer-managed-policies-example-create-project"></a>

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

------
#### [ JSON ]

****  

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

------

다음은 사용자에게 모든 이름의 빌드 프로젝트를 생성하도록 허용하지만, `123456789012` 계정의 `us-east-2` 리전에만 있어야 하며, 지정된 CodeBuild 서비스 역할만 사용해야 하는 정책 설명의 예입니다. 또한 사용자가 다른 서비스가 AWS CodeBuild 아닌 에서만 지정된 AWS 서비스 역할을 사용할 수 있도록 합니다.

------
#### [ JSON ]

****  

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

------

### 사용자가 플릿을 생성하도록 허용
<a name="customer-managed-policies-example-create-fleet"></a>

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

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:CreateFleet",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:fleet/*"
    }
  ]
}
```

------

### 사용자가 보고서 그룹을 생성하도록 허용
<a name="customer-managed-policies-example-create-report-group"></a>

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

------
#### [ JSON ]

****  

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

------

### 사용자가 플릿을 삭제하도록 허용
<a name="customer-managed-policies-example-delete-fleet"></a>

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

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:DeleteFleet",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:fleet/*"
    }
  ]
}
```

------

### 사용자가 보고서 그룹을 삭제하도록 허용
<a name="customer-managed-policies-example-delete-report-group"></a>

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

------
#### [ JSON ]

****  

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

------

### 사용자가 보고서를 삭제하도록 허용
<a name="customer-managed-policies-example-delete-report"></a>

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

------
#### [ JSON ]

****  

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

------

### 사용자가 빌드 프로젝트를 삭제하도록 허용
<a name="customer-managed-policies-example-delete-project"></a>

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

------
#### [ JSON ]

****  

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

------

### 사용자가 빌드 프로젝트 이름 목록을 가져오도록 허용
<a name="customer-managed-policies-example-list-projects"></a>

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

------
#### [ JSON ]

****  

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

------

### 사용자가 빌드 프로젝트에 대한 정보를 변경하도록 허용
<a name="customer-managed-policies-example-update-project"></a>

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

------
#### [ JSON ]

****  

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

------

### 사용자가 플릿을 변경하도록 허용
<a name="customer-managed-policies-example-change-fleet"></a>

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

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": "codebuild:UpdateFleet",
      "Resource": "arn:aws:codebuild:us-east-2:111122223333:fleet/*"
    }
  ]
}
```

------

### 사용자가 보고서 그룹을 변경하도록 허용
<a name="customer-managed-policies-example-change-report-group"></a>

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

------
#### [ JSON ]

****  

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

------

### 사용자가 빌드에 대한 정보를 가져오도록 허용
<a name="customer-managed-policies-example-batch-get-builds"></a>

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

------
#### [ JSON ]

****  

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

------

### 사용자가 빌드 프로젝트의 빌드 ID 목록을 가져오도록 허용
<a name="customer-managed-policies-example-list-builds-for-project"></a>

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

------
#### [ JSON ]

****  

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

------

### 사용자가 빌드 ID 목록을 가져오도록 허용
<a name="customer-managed-policies-example-list-builds"></a>

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

------
#### [ JSON ]

****  

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

------

### 사용자가 플릿 목록을 가져오도록 허용
<a name="customer-managed-policies-example-get-list-of-fleets"></a>

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

------
#### [ JSON ]

****  

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

------

### 사용자가 보고서 그룹 목록을 가져오도록 허용
<a name="customer-managed-policies-example-get-list-of-report-groups"></a>

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

------
#### [ JSON ]

****  

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

------

### 사용자가 보고서 목록을 가져오도록 허용
<a name="customer-managed-policies-example-get-list-of-reports"></a>

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

------
#### [ JSON ]

****  

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

------

### 사용자가 보고서 그룹에 대한 보고서 목록을 가져오도록 허용
<a name="customer-managed-policies-example-get-list-of-reports-for-report-group"></a>

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

------
#### [ JSON ]

****  

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

------

### 사용자가 보고서에 대한 테스트 케이스 목록을 가져오도록 허용
<a name="customer-managed-policies-example-get-list-of-test-cases-for-report"></a>

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

------
#### [ JSON ]

****  

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

------

### 사용자가 빌드 실행을 시작하도록 허용
<a name="customer-managed-policies-example-start-build"></a>

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

------
#### [ JSON ]

****  

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

------

### 사용자가 빌드 중지를 시도하도록 허용
<a name="customer-managed-policies-example-stop-build"></a>

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

------
#### [ JSON ]

****  

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

------

### 사용자가 빌드 삭제를 시도하도록 허용
<a name="customer-managed-policies-example-delete-builds"></a>

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

------
#### [ JSON ]

****  

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

------

### 사용자가 CodeBuild에서 관리하는 도커 이미지에 대한 정보를 가져오도록 허용
<a name="customer-managed-policies-example-list-curated-environment-images"></a>

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

------
#### [ JSON ]

****  

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

------

### 사용자가 플릿 서비스 역할에 대한 권한 정책을 추가하도록 허용
<a name="customer-managed-policies-example-permission-policy-fleet-service-role"></a>

다음 리소스 정책 문 예제에서는 사용자가 플릿 서비스 역할에 대한 VPC 권한 정책을 추가할 수 있습니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CodeBuildFleetVpcCreateNI",
            "Effect": "Allow",
            "Action": [
                "ec2:CreateNetworkInterface"
            ],
            "Resource": [
                "arn:aws:ec2:us-west-2:111122223333:subnet/subnet-id-1",
                "arn:aws:ec2:us-west-2:111122223333:security-group/security-group-id-1",
                "arn:aws:ec2:us-west-2:111122223333: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:us-west-2:111122223333:network-interface/*",
            "Condition": {
                "StringEquals": {
                    "ec2:Subnet": [
                        "arn:aws:ec2:us-west-2:111122223333:subnet/subnet-id-1"
                    ]
                }
            }
        }
    ]
}
```

------

다음 예제 리소스 정책 문을 사용하면 사용자가 플릿 서비스 역할에 대한 사용자 지정 Amazon Managed Image(AMI) 권한 정책을 추가할 수 있습니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "ec2:DescribeImages",
            "Resource": "*"
        } 
    ]
}
```

------

다음 신뢰 정책 문 예제에서는 사용자가 플릿 서비스 역할에 대한 권한 정책을 추가할 수 있습니다.

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "CodeBuildFleetVPCTrustPolicy",
      "Effect": "Allow",
      "Principal": {
        "Service": "codebuild.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "111122223333"
        }
      }
    }
  ]
}
```

------

### VPC 네트워크 인터페이스를 생성하는 데 필요한 AWS 서비스에 대한 CodeBuild 액세스 허용
<a name="customer-managed-policies-example-create-vpc-network-interface"></a>

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

------
#### [ JSON ]

****  

```
{
    "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:us-west-2:111122223333:network-interface/*",
            "Condition": {
                "StringEquals": {
                    "ec2:AuthorizedService": "codebuild.amazonaws.com"
                },
                "ArnEquals": {
                    "ec2:Subnet": [
                        "arn:aws:ec2:us-west-2:111122223333:subnet/subnet-id-1",
                        "arn:aws:ec2:us-west-2:111122223333:subnet/subnet-id-2"
                    ]
                }
            }
        }
    ]
}
```

------

### 거부 문을 사용하여 AWS CodeBuild 가 소스 공급자와의 연결을 끊지 않도록 방지
<a name="customer-managed-policies-example-deny-disconnect"></a>

 다음 예제 정책 명령문은 거부문을 사용하여 AWS CodeBuild 가 소스 공급자 연결을 해제하지 않도록 합니다. `codebuild:PersistOAuthToken` 및 `codebuild:ImportSourceCredentials`의 역인 `codebuild:DeleteOAuthToken`을 사용하여 소스 공급자와 연결합니다. 자세한 내용은 [AWS CodeBuild 콘솔이 소스 공급자에 연결하는 데 필요한 권한](#console-policies) 단원을 참조하십시오.

------
#### [ JSON ]

****  

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

------

# AWS CodeBuild 권한 참조
<a name="auth-and-access-control-permissions-reference"></a>

 AWS CodeBuild 정책에서 AWS전체 조건 키를 사용하여 조건을 표시할 수 있습니다. 목록은 IAM 사용 설명서에서 [사용 가능한 키](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements.html#AvailableKeys)를 참조하세요.**

정책의 `Action` 필드에 작업을 지정합니다. 작업을 지정하려면 `codebuild:` 접두사 다음에 API 작업 이름을 사용합니다(예: `codebuild:CreateProject` 및 `codebuild:StartBuild`). 문장 하나에 여러 작업을 지정하려면 쉼표로 구분합니다(예: `"Action": [ "codebuild:CreateProject", "codebuild:StartBuild" ]`).

**와일드카드 문자 사용**

정책의 `Resource` 필드에 리소스 값으로 와일드카드 문자(\$1)를 사용하거나 사용하지 않고 ARN을 지정합니다. 와일드카드를 사용하여 여러 작업 또는 리소스를 지정할 수 있습니다. 예를 들어, `codebuild:*`는 모든 CodeBuild 작업을 지정하고, `codebuild:Batch*`는 `Batch`라는 단어로 시작하는 모든 CodeBuild 작업을 지정합니다. 다음 정책은 이름이 `my`로 시작되는 모든 빌드 프로젝트에 대한 액세스 권한을 부여합니다.

```
arn:aws:codebuild:us-east-2:123456789012:project/my*
```<a name="actions-related-to-objects-table"></a>CodeBuild API 작업 및 작업에 필요한 권한

BatchDeleteBuilds  
 **작업:** `codebuild:BatchDeleteBuilds`   
빌드를 삭제하는 데 필요합니다.  
 **리소스:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

BatchGetBuilds  
 **작업:** `codebuild:BatchGetBuilds`   
빌드에 대한 정보를 가져오는 권한이 필요합니다.  
 **리소스:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

BatchGetProjects  
 **작업:** `codebuild:BatchGetProjects`   
빌드 프로젝트에 대한 정보를 가져오는 권한이 필요합니다.  
 **리소스:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

BatchGetReportGroups  
 **작업:** `codebuild:BatchGetReportGroups`   
보고서 그룹에 대한 정보를 가져오는 권한이 필요합니다.  
 **리소스:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

BatchGetReports  
 **작업:** `codebuild:BatchGetReports`   
보고서에 대한 정보를 가져오는 권한이 필요합니다.  
 **리소스:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

BatchPutTestCases ¹  
 **작업:** `codebuild:BatchPutTestCases`   
테스트 보고서를 생성하거나 업데이트하는 권한이 필요합니다.  
 **리소스:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

CreateProject  
 **작업:** `codebuild:CreateProject`, `iam:PassRole`   
빌드 프로젝트를 생성하는 권한이 필요합니다.  
 **리소스:**   
+  `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 
+  `arn:aws:iam::account-ID:role/role-name ` 

CreateReport ¹  
 **작업:** `codebuild:CreateReport`   
테스트 보고서를 생성하는 권한이 필요합니다.  
 **리소스:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

CreateReportGroup  
 **작업:** `codebuild:CreateReportGroup`   
보고서 그룹을 만드는 권한이 필요합니다.  
 **리소스:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

CreateWebhook  
 **작업:** `codebuild:CreateWebhook`   
Webhook를 생성하는 데 필요합니다.  
 **리소스:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

DeleteProject  
 **작업:** `codebuild:DeleteProject`   
CodeBuild 프로젝트를 삭제하는 데 필요합니다.  
 **리소스:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

DeleteReports  
 **작업:** `codebuild:DeleteReport`   
규칙을 삭제하는 권한이 필요합니다.  
 **리소스:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

DeleteReportGroup  
 **작업:** `codebuild:DeleteReportGroup`   
보고서 그룹을 삭제하는 권한이 필요합니다.  
 **리소스:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

DeleteSourceCredentials  
 **작업:** `codebuild:DeleteSourceCredentials`   
GitHub나 GitHub Enterprise Server, Bitbucket 리포지토리의 자격 증명 정보가 포함된 일단의 `SourceCredentialsInfo` 객체를 삭제하는 데 필요합니다.  
 **리소스:** `*` 

DeleteWebhook  
 **작업:** `codebuild:DeleteWebhook`   
Webhook를 생성하는 데 필요합니다.  
 **리소스:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

DescribeTestCases  
 **작업:** `codebuild:DescribeTestCases`   
테스트 케이스의 페이지 매김 목록을 반환하는 권한이 필요합니다.  
 **리소스:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

ImportSourceCredentials  
 **작업:** `codebuild:ImportSourceCredentials`   
GitHub나 GitHub Enterprise Server, Bitbucket 리포지토리의 자격 증명 정보가 포함된 일단의 `SourceCredentialsInfo` 객체를 가져오는 데 필요합니다.  
 **리소스:** `*` 

InvalidateProjectCache  
 **작업:** `codebuild:InvalidateProjectCache`   
프로젝트용 캐시를 재설정하는 데 필요합니다.  
 **리소스:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

ListBuildBatches  
 **작업:** `codebuild:ListBuildBatches`   
빌드 배치 ID 목록을 가져오는 권한이 필요합니다.  
 **리소스:** `*` 

ListBuildBatchesForProject  
 **작업:** `codebuild:ListBuildBatchesForProject`   
특정 프로젝트의 빌드 배치 ID 목록을 가져오는 권한이 필요합니다.  
 **리소스:** `arn:aws:codebuild:region-ID:account-ID:project/project-name` 

ListBuilds  
 **작업:** `codebuild:ListBuilds`   
빌드 ID 목록을 가져오는 권한이 필요합니다.  
 **리소스:** `*` 

ListBuildsForProject  
 **작업:** `codebuild:ListBuildsForProject`   
빌드 프로젝트의 빌드 ID 목록을 가져오는 권한이 필요합니다.  
 **리소스:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

ListCuratedEnvironmentImages  
 **작업:** `codebuild:ListCuratedEnvironmentImages`   
 AWS CodeBuild가 관리하는 모든 도커 이미지에 대한 정보를 가져오는 권한이 필요합니다.  
 **리소스:** `*`(필요, 단, 주소 지정 가능한 AWS 리소스는 제외) 

ListProjects  
 **작업:** `codebuild:ListProjects`   
빌드 프로젝트 이름 목록을 가져오는 권한이 필요합니다.  
 **리소스:** `*` 

ListReportGroups  
 **작업:** `codebuild:ListReportGroups`   
보고서 그룹 목록을 가져오는 권한이 필요합니다.  
 **리소스:** `*` 

ListReports  
 **작업:** `codebuild:ListReports`   
보고서 목록을 가져오는 권한이 필요합니다.  
 **리소스:** `*` 

ListReportsForReportGroup  
 **작업:** `codebuild:ListReportsForReportGroup`   
보고서 그룹에 대한 보고서 목록을 가져오는 권한이 필요합니다.  
 **리소스:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

RetryBuild  
**작업:** `codebuild:RetryBuild`   
빌드를 재시도하는 데 필요합니다.  
**리소스:** `arn:aws:codebuild:region-ID:account-ID:project/project-name `

StartBuild  
 **작업:** `codebuild:StartBuild`   
빌드 실행을 시작하는 권한이 필요합니다.  
 **리소스:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

StopBuild  
 **작업:** `codebuild:StopBuild`   
빌드 실행 중지를 시도할 수 있는 권한이 필요합니다.  
 **리소스:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

UpdateProject  
 **작업:** `codebuild:UpdateProject`, `iam:PassRole`   
빌드에 대한 정보를 변경하는 권한이 필요합니다.  
 **리소스:**   
+  `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 
+  `arn:aws:iam::account-ID:role/role-name ` 

UpdateProjectVisibility  <a name="UpdateProjectVisibility"></a>
 **작업:** `codebuild:UpdateProjectVisibility`, `iam:PassRole`   
프로젝트 빌드의 퍼블릭 가시성을 변경하는 데 필요합니다.  
 **리소스:**   
+  `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 
+  `arn:aws:iam::account-ID:role/role-name ` 

UpdateReport ¹  
 **작업:** `codebuild:UpdateReport`   
테스트 보고서를 생성하거나 업데이트하는 권한이 필요합니다.  
 **리소스:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

UpdateReportGroup  
 **작업:** `codebuild:UpdateReportGroup`   
보고서 그룹을 업데이트하는 권한이 필요합니다.  
 **리소스:** `arn:aws:codebuild:region-ID:account-ID:report-group/report-group-name ` 

UpdateWebhook  
 **작업:** `codebuild:UpdateWebhook`   
Webhook를 업데이트하는 데 필요합니다.  
 **리소스:** `arn:aws:codebuild:region-ID:account-ID:project/project-name ` 

¹ 권한에만 사용됩니다. 이 작업에 대한 API가 없습니다.

# 태그를 사용하여 AWS CodeBuild 리소스에 대한 액세스 제어
<a name="auth-and-access-control-using-tags"></a>

IAM 정책 문의 조건은 CodeBuild 프로젝트 기반 작업에 대한 권한을 지정하는 데 사용할 수 있는 구문의 일부입니다. 해당 프로젝트와 연결된 태그를 기준으로 프로젝트에 대한 작업을 허용하거나 거부하는 정책을 생성한 다음, 사용자를 관리하기 위해 구성하는 IAM 그룹에 해당 정책을 적용할 수 있습니다. 콘솔을 사용하여 프로젝트에 태그를 적용하는 방법에 대한 자세한 내용은 섹션을 AWS CLI참조하세요[에서 빌드 프로젝트 생성AWS CodeBuild](create-project.md). CodeBuild SDK를 사용하여 태그를 적용하는 방법에 대한 자세한 내용은 *CodeBuild API 참조*의 [CreateProject](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_CreateProject.html#API_CreateProject_RequestSyntax) 및 [태그](https://docs.aws.amazon.com/codebuild/latest/APIReference/API_Tag.html)를 참조하세요. 태그를 사용하여 AWS 리소스에 대한 액세스를 제어하는 방법에 대한 자세한 내용은 *IAM 사용 설명서*의 [AWS 리소스 태그를 사용하여 리소스에 대한 액세스 제어를 참조하세요](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html).

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

**Example 예 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"
        }
      }
    }
  ]
}
```

**Example 예 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"]
        }
      }
    }
  ]
}
```

**Example 예 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": {
        "StringLike": {
          "aws:RequestedRegion": "us-east-1"
        }
      }
    }
  ]
}
```

**Example 예 4: 리소스 태그를 기준으로 CodeBuild 작업을 AWSCodeBuildDeveloperAccess로 제한**  
특정 태그가 지정되지 않은 모든 보고서 그룹 및 프로젝트에 대한 CodeBuild 작업을 허용하는 정책을 생성할 수 있습니다. 예를 들어 다음 정책은 특정 태그로 태그 지정된 보고서 그룹 및 프로젝트를 제외한 모든 보고서 그룹 및 프로젝트에 대해 [AWSCodeBuildDeveloperAccess](auth-and-access-control-iam-identity-based-access-control.md#developer-access-policy) 권한과 동등한 권한을 허용합니다.    
****  

```
{
   "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"
            }
         }
      }
   ]
}
```

# 콘솔에서 리소스 보기
<a name="console-resources"></a>

 AWS CodeBuild 콘솔에는 로그인한 AWS 리전의 AWS 계정에 대한 리포지토리 목록을 표시할 수 있는 `ListRepositories` 권한이 필요합니다. 또한 콘솔에는 리소스의 대/소문자를 구분하지 않고 빠르게 검색할 수 있는 **Go to resource(리소스로 이동)** 기능이 포함되어 있습니다. 이 검색은 로그인한 AWS 리전의 계정 AWS 에서 수행됩니다. 다음 서비스에 표시되는 리소스는 다음과 같습니다.
+ AWS CodeBuild: 빌드 프로젝트
+ AWS CodeCommit: 리포지토리
+ AWS CodeDeploy: 애플리케이션
+ AWS CodePipeline: 파이프라인

모든 서비스의 리소스에서 이 검색을 수행하려면 다음 권한이 있어야 합니다.
+ CodeBuild: `ListProjects`
+ CodeCommit: `ListRepositories`
+ CodeDeploy: `ListApplications`
+ CodePipeline: `ListPipelines`

해당 서비스에 대한 권한이 없는 경우 서비스의 리소스에 대한 결과가 반환되지 않습니다. 리소스를 볼 수 있는 권한이 있더라도 해당 리소스 보기에 대한 명시적 `Deny`가 있으면 일부 리소스가 반환되지 않습니다.