기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS CodeBuild 리소스에 대한 액세스 권한 관리 개요
모든 AWS 리소스는 AWS 계정이 소유하며, 리소스를 생성하거나 액세스할 수 있는 권한은 권한 정책에 의해 관리됩니다. 계정 관리자는 IAM 자격 증명(즉, 사용자, 그룹 및 역할)에 권한 정책을 연결할 수 있습니다.
참고
계정 관리자 또는 관리자 사용자는 관리자 권한이 있는 사용자입니다. 자세한 내용은 IAM 사용 설명서의 IAM 모범 사례를 참조하세요.
권한을 부여할 때는 권한을 부여 받을 사용자, 사용자가 액세스할 수 있는 리소스 및 해당 리소스에 수행할 수 있는 작업을 결정합니다.
AWS CodeBuild 리소스 및 작업
에서 AWS CodeBuild기본 리소스는 빌드 프로젝트입니다. 정책에서 Amazon 리소스 이름(ARN)을 사용하여 정책이 적용되는 리소스를 식별합니다. 빌드는 리소스이기도 하며 이와 ARNs 연결되어 있습니다. 자세한 내용은 의 Amazon 리소스 이름(ARN) 및 AWS 서비스 네임스페이스를 참조하세요Amazon Web Services 일반 참조.
리소스 유형 | ARN 형식 |
---|---|
빌드 프로젝트 |
|
빌드 |
|
보고서 그룹 | arn:aws:codebuild: |
보고서 | arn:aws:codebuild: |
플릿 |
|
모든 CodeBuild 리소스 |
|
지정된 AWS 리전에서 지정된 계정이 소유한 모든 CodeBuild 리소스 |
|
중요
예약 용량 기능을 사용할 때 소스 파일, Docker 계층, 빌드스펙에 지정된 캐시된 디렉터리를 포함하여 플릿 인스턴스에 캐시된 데이터에 동일한 계정 내의 다른 프로젝트에서 액세스할 수 있습니다. 이는 설계에 의한 것이며 동일한 계정 내의 프로젝트가 플릿 인스턴스를 공유할 수 있도록 허용합니다.
참고
대부분의 AWS 서비스는 콜론(:) 또는 슬래시(/)를 에서 동일한 문자로 취급합니다ARNs. 그러나 는 리소스 패턴 및 규칙의 정확한 일치를 CodeBuild 사용합니다. 이벤트 패턴을 생성할 때 리소스의 ARN 구문과 일치하도록 올바른 문자를 사용해야 합니다.
예를 들어 특정 빌드 프로젝트(myBuildProject
)를 다음과 ARN 같이 사용하여 명령문에 추가합니다.
"Resource": "arn:aws:codebuild:
us-east-2
:123456789012
:project/myBuildProject
"
모든 리소스를 지정하거나 API 작업이 를 지원하지 않는 경우 다음과 같이 Resource
요소에 와일드카드 문자(*)를 ARNs사용합니다.
"Resource": "*"
일부 CodeBuild API 작업은 여러 리소스(예: )를 허용합니다BatchGetProjects
. 단일 문에서 여러 리소스를 지정하려면 다음과 같이 쉼표ARNs로 구분합니다.
"Resource": [ "arn:aws:codebuild:
us-east-2
:123456789012
:project/myBuildProject
", "arn:aws:codebuild:us-east-2
:123456789012
:project/myOtherBuildProject
" ]
CodeBuild 는 CodeBuild 리소스로 작업하는 일련의 작업을 제공합니다. 목록을 보려면 AWS CodeBuild 권한 참조 섹션을 참조하세요.
리소스 소유권 이해
AWS 계정은 누가 리소스를 생성했는지에 관계없이 계정에서 생성된 리소스를 소유합니다. 특히 리소스 소유자는 리소스 생성 요청을 인증하는 AWS 보안 주체 엔터티(즉, 루트 계정, 사용자 또는 IAM 역할)의 계정입니다. 다음 예에서는 이러한 작동 방식을 설명합니다.
-
AWS 계정의 루트 계정 자격 증명을 사용하여 규칙을 생성하는 경우 AWS 계정은 CodeBuild 리소스의 소유자입니다.
-
AWS 계정에 사용자를 생성하고 해당 사용자에게 CodeBuild 리소스를 생성할 수 있는 권한을 부여하는 경우 사용자는 CodeBuild 리소스를 생성할 수 있습니다. 하지만 사용자가 속한 AWS 계정은 리소스를 소유합니다 CodeBuild.
-
CodeBuild 리소스 생성 권한이 있는 IAM AWS 계정을 생성하는 경우 역할을 수임할 수 있는 모든 사용자가 리소스를 생성할 CodeBuild 수 있습니다. 역할이 속한 AWS 계정이 리소스를 소유합니다 CodeBuild.
리소스 액세스 관리
권한 정책은 누가 어떤 리소스에 액세스 할 수 있는지를 나타냅니다.
참고
이 섹션에서는 의 사용에 IAM 대해 설명합니다 AWS CodeBuild. IAM 서비스에 대한 자세한 정보는 제공하지 않습니다. 전체 IAM 설명서는 IAM 사용 설명서의 IAM?란 무엇입니까?를 참조하세요. IAM 정책 구문 및 설명에 대한 자세한 내용은 IAM 사용 설명서의 AWS IAM 정책 참조를 참조하세요.
IAM 자격 증명에 연결된 정책을 자격 증명 기반 정책(IAM 정책)이라고 합니다. 리소스에 연결된 정책을 리소스 기반 정책이라고 합니다. 는 계정 간 리소스 공유를 APIs 위한 목적으로만 특정 읽기에 대한 자격 증명 기반 정책 및 리소스 기반 정책을 CodeBuild 지원합니다.
S3 버킷에 대한 보안 액세스
CodeBuild 프로젝트에 연결된 S3 버킷이 사용자 또는 사용자가 신뢰하는 사람이 소유하고 있는지 확인하려면 IAM 역할에 다음 권한을 포함하는 것이 좋습니다. 이러한 권한은 AWS 관리형 정책 및 역할에 포함되지 않습니다. 사용자가 직접 추가해야 합니다.
-
s3:GetBucketAcl
-
s3:GetBucketLocation
프로젝트에서 사용하는 S3 버킷의 소유자가 변경되는 경우 버킷을 여전히 소유하고 있는지 확인하고 그렇지 않은 경우 IAM 역할의 권한을 업데이트해야 합니다. 자세한 내용은 사용자가 다음과 상호 작용하도록 허용 CodeBuild 및 다른 AWS 서비스와 상호 작용할 수 CodeBuild 있도록 허용 단원을 참조하세요.
정책 요소 지정: 작업, 효과, 보안 주체
각 AWS CodeBuild 리소스에 대해 서비스는 API 일련의 작업을 정의합니다. 이러한 API 작업에 대한 권한을 부여하려면 는 정책에서 지정할 수 있는 일련의 작업을 CodeBuild 정의합니다. 일부 API 작업은 API 작업을 수행하기 위해 둘 이상의 작업에 대한 권한이 필요할 수 있습니다. 자세한 내용은 AWS CodeBuild 리소스 및 작업 및 AWS CodeBuild 권한 참조 단원을 참조하세요.
다음은 기본 정책 요소입니다.
-
리소스 - Amazon 리소스 이름(ARN)을 사용하여 정책이 적용되는 리소스를 식별합니다.
-
작업 – 작업 키워드를 사용하여 허용 또는 거부할 리소스 작업을 식별합니다. 예를 들어,
codebuild:CreateProject
권한은 사용자에게CreateProject
작업 수행 권한을 제공합니다. -
효과 – 사용자가 작업을 요청하는 경우 효과(허용 또는 거부)를 지정합니다. 명시적으로 리소스에 대한 액세스 권한을 부여(허용)하지 않는 경우, 액세스는 묵시적으로 거부됩니다. 리소스에 대한 액세스를 명시적으로 거부할 수도 있습니다. 다른 정책에서 액세스 권한을 부여하더라도 사용자가 해당 리소스에 액세스할 수 없도록 하려고 할 때 이러한 작업을 수행할 수 있습니다.
-
보안 주체 - 자격 증명 기반 정책(IAM 정책)에서 정책이 연결된 사용자는 암시적 보안 주체입니다. 리소스 기반 정책의 경우 사용자, 계정, 서비스 또는 권한의 수신자인 기타 엔터티를 지정합니다.
IAM 정책 구문 및 설명에 대한 자세한 내용은 IAM 사용 설명서의 AWS IAM 정책 참조를 참조하세요.
적용되는 모든 CodeBuild API 작업과 리소스를 보여주는 표는 섹션을 참조하세요AWS CodeBuild 권한 참조.