

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

# 빌드 프로젝트 공유
<a name="project-sharing"></a>

프로젝트 공유를 통해 프로젝트 소유자는 AWS CodeBuild 프로젝트를 다른 AWS 계정 또는 사용자와 공유할 수 있습니다. 이 모델에서는 프로젝트를 소유한 계정(소유자)이 다른 계정(소비자)과 프로젝트를 공유합니다. 소비자는 프로젝트를 편집하거나 실행할 수 없습니다.

**Topics**
+ [프로젝트 공유](#project-sharing-share)
+ [관련 서비스](#project-sharing-related)
+ [사용자와 공유된 CodeBuild 프로젝트 액세스](project-sharing-access-prereqs.md)
+ [공유 프로젝트의 공유 해제](project-sharing-unshare.md)
+ [공유 프로젝트 식별](project-sharing-identify.md)
+ [공유 프로젝트 권한](project-sharing-perms.md)

## 프로젝트 공유
<a name="project-sharing-share"></a>

소비자는 AWS CLI 및 AWS CodeBuild 콘솔을 모두 사용하여 공유한 프로젝트와 빌드를 볼 수 있습니다. 소비자는 프로젝트를 편집하거나 실행할 수 없습니다.

기존 리소스 공유에 프로젝트를 추가하거나 [AWS RAM 콘솔](https://console.aws.amazon.com/ram)에서 프로젝트를 만들 수 있습니다.

**참고**  
리소스 공유에 추가된 빌드가 있는 프로젝트는 삭제할 수 없습니다.

프로젝트를 조직 단위 또는 전체 조직과 공유하려면 AWS Organizations와의 공유를 활성화해야 합니다. 자세한 내용은 *AWS RAM 사용 설명서*에서 [AWS Organizations를 사용하여 공유 사용](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html)을 참조하세요.

 AWS CodeBuild 콘솔, AWS RAM 콘솔 또는를 사용하여 소유한 프로젝트를 AWS CLI 공유할 수 있습니다.

**프로젝트 공유를 위한 전제 조건**  
프로젝트 공유를 시작하기 전에 AWS 계정이 프로젝트를 소유하고 있는지 확인합니다. 사용자와 공유된 프로젝트를 공유할 수 없습니다.

**소유한 프로젝트를 공유하려면(CodeBuild 콘솔)**

1. [https://console.aws.amazon.com/codesuite/codebuild/home](https://console.aws.amazon.com/codesuite/codebuild/home) AWS CodeBuild 콘솔을 엽니다.

1. 탐색 창에서 **프로젝트 빌드**를 선택합니다.
**참고**  
기본적으로 가장 최근의 빌드 프로젝트 10개만 표시됩니다. 더 많은 빌드 프로젝트를 보려면 기어 아이콘을 선택하고 **페이지당 프로젝트 수**에서 다른 값을 선택하거나 뒤로 및 앞으로 화살표를 사용합니다.

1. 공유할 프로젝트를 선택한 다음 **공유**를 선택합니다. 자세한 내용은AWS RAM 사용 설명서의 [리소스 공유 생성](https://docs.aws.amazon.com/ram/latest/userguide/getting-started-sharing.html#getting-started-sharing-create)을 참조하세요.**

**소유한 프로젝트를 공유하려면(AWS RAM 콘솔)**  
AWS RAM 사용 설명서에서 [리소스 공유 생성](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing.html#working-with-sharing-create)을 참조하세요.**

**소유한 프로젝트를 공유하려면(AWS RAM 명령)**  
[create-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/create-resource-share.html) 명령을 사용합니다.

**소유한 프로젝트를 공유하려면(CodeBuild 명령)**<a name="codebuild-command"></a>

[put-resource-policy](https://docs.aws.amazon.com/cli/latest/reference/codebuild/put-resource-policy.html) 명령을 사용합니다.

1. 이름이 `policy.json`인 파일을 만들고 다음으로 복사합니다.

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement":[{
       "Effect":"Allow",
       "Action":[
         "codebuild:BatchGetProjects",
         "codebuild:BatchGetBuilds",
         "codebuild:ListBuildsForProject"],
       "Resource":"arn:aws:iam::*:role/Service*"
     }]
   }
   ```

------

1. 프로젝트 ARN 및 식별자로 `policy.json`을 업데이트하여 공유합니다. 다음 예제에서는 123456789012로 식별되는 AWS 계정의 루트 사용자에게 읽기 전용 액세스 권한을 부여합니다.

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

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement":[{
       "Effect":"Allow",
       "Principal":{
         "AWS": [
           "123456789012"
         ]
       },
       "Action":[
         "codebuild:BatchGetProjects",
         "codebuild:BatchGetBuilds",
         "codebuild:ListBuildsForProject"],
       "Resource":"arn:aws:codebuild:us-west-2:123456789012:project/my-project"
     }]
   }
   ```

------

1. [put-resource-policy](https://docs.aws.amazon.com/cli/latest/reference/codebuild/put-resource-policy.html) 명령을 실행합니다.

   ```
   aws codebuild put-resource-policy --resource-arn <project-arn> --policy file://policy.json
   ```

1.  AWS RAM 리소스 공유 ARN을 가져옵니다.

   ```
   aws ram list-resources --resource-owner SELF --resource-arns <project-arn>
   ```

   이렇게 하면 다음과 비슷한 응답이 반환됩니다.

   ```
   {
     "resources": [
       {
         "arn": "<project-arn>",
         "type": "<type>",
         "resourceShareArn": "<resource-share-arn>",
         "creationTime": "<creation-time>",
         "lastUpdatedTime": "<last-update-time>"
       }
     ]
   }
   ```

   응답에서 다음 단계에서 사용할 *<resource-share-arn>* 값을 복사합니다.

1.  AWS RAM [promote-resource-share-created-from-policy](https://docs.aws.amazon.com/cli/latest/reference/ram/promote-resource-share-created-from-policy.html) 명령을 실행합니다.

   ```
   aws ram promote-resource-share-created-from-policy --resource-share-arn <resource-share-arn>
   ```

## 관련 서비스
<a name="project-sharing-related"></a>

프로젝트 공유는 모든 AWS 계정 또는를 통해 AWS 리소스를 공유할 수 있는 서비스AWS RAM인 AWS Resource Access Manager ()와 통합됩니다 AWS Organizations. AWS RAM에서는 리소스와 리소스를 공유할 소비자를 지정하는 *리소스 공유*를 생성하여 리소스를 공유합니다. 소비자는 개별 AWS 계정,의 조직 단위 AWS Organizations또는의 전체 조직일 수 있습니다 AWS Organizations.

자세한 내용은 *[AWS RAM 사용 설명서](https://docs.aws.amazon.com/ram/latest/userguide/)*를 참조하십시오.

# 사용자와 공유된 CodeBuild 프로젝트 액세스
<a name="project-sharing-access-prereqs"></a>

공유 프로젝트에 액세스하려면 소비자의 IAM 역할에 `BatchGetProjects` 권한이 필요합니다. 다음 정책을 해당 IAM 역할에 연결할 수 있습니다.

```
{
    "Effect": "Allow",
    "Resource": [
        "*"
    ],
    "Action": [
        "codebuild:BatchGetProjects"
    ]
}
```

 자세한 내용은 [에 대한 자격 증명 기반 정책 사용 AWS CodeBuild](auth-and-access-control-iam-identity-based-access-control.md) 단원을 참조하십시오.

# 공유 프로젝트의 공유 해제
<a name="project-sharing-unshare"></a>

빌드를 포함하여 공유가 해제된 프로젝트는 소유자만 액세스할 수 있습니다. 프로젝트를 공유 해제하면 이전에 공유한 AWS 계정 또는 사용자가 프로젝트 또는 해당 빌드에 액세스할 수 없습니다.

소유하고 있는 공유 프로젝트의 공유를 해제하려면 리소스 공유에서 제거해야 합니다. AWS CodeBuild 콘솔, AWS RAM 콘솔 또는를 사용하여이 작업을 수행할 수 AWS CLI 있습니다.

**소유한 공유 프로젝트를 공유 해제하려면(AWS RAM 콘솔)**  
*AWS RAM 사용 설명서*에서 [리소스 공유 업데이트](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing.html#working-with-sharing-update)를 참조하세요.

**소유한 공유 프로젝트의 공유를 해제하려면(AWS CLI)**  
[disassociate-resource-share](https://docs.aws.amazon.com/cli/latest/reference/ram/disassociate-resource-share.html) 명령을 사용합니다.

 **소유한 프로젝트의 공유를 해제하려면(CodeBuild 명령)** 

[delete-resource-policy](https://docs.aws.amazon.com/cli/latest/reference/codebuild/delete-resource-policy.html) 명령을 실행하고 공유를 해제할 프로젝트의 ARN을 지정합니다.

```
aws codebuild delete-resource-policy --resource-arn project-arn
```

# 공유 프로젝트 식별
<a name="project-sharing-identify"></a>

소유자와 소비자는 AWS CLI 를 사용하여 공유 프로젝트를 식별할 수 있습니다.

**AWS 계정 또는 사용자와 공유된 프로젝트를 식별하려면(AWS CLI)**  
[list-shared-projects](https://docs.aws.amazon.com/cli/latest/reference/codebuild/list-shared-projects.html) 명령을 사용하여 공유된 프로젝트를 반환합니다.

# 공유 프로젝트 권한
<a name="project-sharing-perms"></a>

## 소유자에 대한 권한
<a name="project-perms-owner"></a>

프로젝트 소유자는 프로젝트를 편집하고 빌드를 실행하는 데 사용할 수 있습니다.

## 소비자에 대한 권한
<a name="project-perms-consumer"></a>

프로젝트 소비자는 프로젝트와 해당 빌드를 볼 수 있지만 프로젝트를 편집하거나 빌드를 실행하는 데 사용할 수는 없습니다.