공유 프로젝트 작업 - AWS CodeBuild

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

공유 프로젝트 작업

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

프로젝트 공유를 위한 전제 조건

프로젝트를 공유하려면 AWS 계정이 해당 프로젝트를 소유해야 합니다. 사용자와 공유된 프로젝트를 공유할 수 없습니다.

사용자와 공유된 공유 프로젝트에 액세스하기 위한 전제 조건

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

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

자세한 내용은 ID 기반 정책 사용: AWS CodeBuild 섹션을 참조하세요.

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

자세한 정보는 AWS RAM 사용 설명서를 참조하세요.

프로젝트 공유

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

기존 리소스 공유에 프로젝트를 추가하거나 AWS RAM콘솔에서 프로젝트를 만들 수 있습니다.

참고

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

프로젝트를 조직 단위 또는 전체 조직과 공유하려면 AWS Organizations와의 공유를 활성화해야 합니다. 자세한 내용은 AWS RAM 사용 설명서에서 AWS Organizations를 사용하여 공유 사용을 참조하세요.

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

소유한 프로젝트를 공유하려면(CodeBuild 콘솔)
  1. https://console.aws.amazon.com/codesuite/codebuild/home에서 AWS CodeBuild 콘솔을 엽니다.

  2. 탐색 창에서 [Build projects]를 선택합니다.

    참고

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

  3. 공유할 프로젝트를 선택한 다음 공유를 선택합니다. 자세한 내용은 AWS RAM 사용 설명서리소스 공유 생성을 참조하세요.

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

AWS RAM 사용 설명서에서 리소스 공유 생성을 참조하세요.

소유한 프로젝트를 공유하려면(AWS RAM 명령)

create-resource-share 명령을 사용합니다.

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

put-resource-policy 명령을 사용합니다.

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

    { "Version":"2012-10-17", "Statement":[{ "Effect":"Allow", "Principal":{ "AWS":"<consumer-aws-account-id-or-user>" }, "Action":[ "codebuild:BatchGetProjects", "codebuild:BatchGetBuilds", "codebuild:ListBuildsForProject"], "Resource":"<arn-of-project-to-share>" }] }
  2. 프로젝트 ARN 및 식별자로 policy.json을 업데이트하여 공유합니다. 다음 예제에서는 123456789012로 식별된 AWS 계정의 루트 사용자에게 읽기 전용 액세스 권한을 부여합니다.

    { "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" }] }
  3. put-resource-policy 명령을 실행합니다.

    aws codebuild put-resource-policy --resource-arn <project-arn> --policy file://policy.json
  4. 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> 값을 복사합니다.

  5. AWS RAMpromote-resource-share-created-from-policy 명령을 실행합니다.

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

공유 프로젝트의 공유 해제

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

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

소유한 공유 프로젝트의 공유를 해제하려면(AWS RAM 콘솔)

AWS RAM 사용 설명서에서 리소스 공유 업데이트를 참조하세요.

소유한 공유 프로젝트의 공유를 해제하려면(AWS CLI)

disassociate-resource-share 명령을 사용합니다.

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

delete-resource-policy 명령을 실행하고 공유를 해제할 프로젝트의 ARN을 지정합니다.

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

공유 프로젝트 식별

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

AWS 계정 또는 사용자와 공유된 프로젝트를 식별하려면(AWS CLI)

list-shared-projects 명령을 사용하여 공유된 프로젝트를 반환합니다.

공유 프로젝트 권한

소유자에 대한 권한

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

소비자에 대한 권한

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