Amazon CodeCatalyst의 ID 및 액세스 관리 - Amazon CodeCatalyst

Amazon CodeCatalyst의 ID 및 액세스 관리

Amazon CodeCatalyst에서는 AWS Builder ID를 생성하고 사용하여, 로그인하고 스페이스과 프로젝트에 액세스합니다. AWS Builder ID는 AWS Identity and Access Management (IAM)의 ID가 아니며 AWS 계정에는 존재하지 않습니다. 그러나 CodeCatalyst는 청구 목적으로 스페이스을 확인할 때 그리고 AWS 계정에 연결되어 해당 AWS 계정에서 리소스를 생성하고 사용할 때 IAM과 통합됩니다.

AWS Identity and Access Management(IAM)는 관리자가 AWS 리소스에 대한 액세스를 안전하게 통제할 수 있도록 지원하는 AWS 서비스입니다. IAM 관리자는 누가 리소스를 사용하도록 인증되고(로그인됨) 권한이 부여되는지(권한 있음)를 제어합니다. IAM은 추가 비용 없이 사용할 수 있는 AWS 서비스입니다.

Amazon CodeCatalyst에서 스페이스를 생성할 때 AWS 계정를 청구 계정으로 연결해야 합니다. CodeCatalyst 스페이스를 확인하기 위한 AWS 계정의 관리자 권한이나, 해당 권한이 있어야 합니다. 또한 CodeCatalyst가 연결된 AWS 계정에서 리소스를 생성하고 액세스하는 데 사용할 수 있는 스페이스에 IAM 역할을 추가할 수 있습니다. 이를 서비스 역할이라고 합니다. 둘 이상의 AWS 계정에 대한 연결을 생성하고 각 계정에서 CodeCatalyst에 대한 서비스 역할을 생성하도록 선택할 수 있습니다.

참고

CodeCatalyst에 대한 청구는 청구 계정으로 지정된 AWS 계정에서 이루어집니다. 그러나 해당 AWS 계정 또는 연결된 다른 AWS 계정에서 CodeCatalyst 서비스 역할을 생성하는 경우, CodeCatalyst 서비스 역할에서 생성 및 사용하는 리소스는 연결된 AWS 계정에서 청구됩니다. 자세한 내용은 Amazon CodeCatalyst 관리자 안내서의 Managing billing을 참조하세요.

IAM의 ID 기반 정책

ID 기반 정책은 ID에 연결할 수 있는 JSON 권한 정책 문서입니다. 해당 ID는 사용자, 사용자 그룹 또는 역할일 수 있습니다. 이러한 정책은 사용자와 역할이 어떤 리소스와 어떤 조건에서 어떤 작업을 수행할 수 있는지를 제어합니다. ID 기반 정책을 생성하는 방법을 알아보려면 IAM 사용 설명서IAM 정책 생성을 참조하십시오.

IAM ID 기반 정책을 사용하면 허용되거나 거부되는 작업과 리소스뿐 아니라 작업이 허용되거나 거부되는 조건을 지정할 수 있습니다. ID 기반 정책에서는 위탁자가 연결된 사용자 또는 역할에 적용되므로 위탁자를 지정할 수 없습니다. JSON 정책에서 사용하는 모든 요소에 대해 알아보려면 IAM 사용 설명서IAM JSON 정책 요소 참조를 참조하세요.

CodeCatalyst의 ID 기반 정책 예시

CodeCatalyst ID 기반 정책 예시를 보려면 CodeCatalyst의 ID 기반 정책 예시 섹션을 참조하세요.

IAM의 정책 작업

관리자는 AWS JSON 정책을 사용하여 누가 무엇에 액세스할 수 있는지를 지정할 수 있습니다. 즉, 어떤 위탁자가 어떤 리소스와 어떤 조건에서 어떤 작업을 수행할 수 있는지를 지정할 수 있습니다.

JSON 정책의 Action 요소는 정책에서 액세스를 허용하거나 거부하는 데 사용할 수 있는 작업을 설명합니다. 일반적으로 정책 작업의 이름은 연결된 AWSAPI 작업의 이름과 동일합니다. 일치하는 API 작업이 없는 권한 전용 작업 같은 몇 가지 예외도 있습니다. 정책에서 여러 작업이 필요한 몇 가지 작업도 있습니다. 이러한 추가 작업을 일컬어 종속 작업이라고 합니다.

단일 문에서 여러 작업을 지정하려면 다음과 같이 쉼표로 구분합니다.

"Action": [ "prefix:action1", "prefix:action2" ]

IAM의 정책 리소스

관리자는 AWS JSON 정책을 사용하여 누가 무엇에 액세스할 수 있는지를 지정할 수 있습니다. 즉, 어떤 위탁자가 어떤 리소스와 어떤 조건에서 어떤 작업을 수행할 수 있는지를 지정할 수 있습니다.

Resource JSON 정책 요소는 작업이 적용되는 하나 이상의 개체를 지정합니다. 문에는 Resource또는 NotResource요소가 반드시 추가되어야 합니다. 모범 사례에 따라 Amazon 리소스 이름(ARN)을 사용하여 리소스를 지정합니다. 리소스 수준 권한이라고 하는 특정 리소스 유형을 지원하는 작업에 대해 이를 수행할 수 있습니다.

작업 나열과 같이 리소스 수준 권한을 지원하지 않는 작업의 경우, 와일드카드(*)를 사용하여 해당 문이 모든 리소스에 적용됨을 나타냅니다.

"Resource": "*"

IAM의 정책 조건 키

관리자는 AWS JSON 정책을 사용하여 누가 무엇에 액세스할 수 있는지를 지정할 수 있습니다. 즉, 어떤 위탁자가 어떤 리소스와 어떤 조건에서 어떤 작업을 수행할 수 있는지를 지정할 수 있습니다.

Condition 요소(또는 Condition 블록)를 사용하면 문이 발효되는 조건을 지정할 수 있습니다. Condition 요소는 옵션입니다. 같거나 작음과 같은 조건 연산자를 사용하여 정책의 조건을 요청의 값과 일치시키는 조건식을 생성할 수 있습니다.

한 문에서 여러 Condition 요소를 지정하거나 단일 Condition 요소에서 여러 키를 지정하는 경우, AWS는 논리적 AND 태스크를 사용하여 평가합니다. 단일 조건 키의 여러 값을 지정하는 경우, AWS는 논리적 OR 태스크를 사용하여 조건을 평가합니다. 명문의 권한을 부여하기 전에 모든 조건을 충족해야 합니다.

조건을 지정할 때 자리 표시자 변수를 사용할 수도 있습니다. 자세한 내용은 IAM 사용 설명서IAM 정책 요소: 변수 및 태그를 참조하세요.

AWS는 전역 조건 키와 서비스별 조건 키를 지원합니다. 모든 AWS 전역 조건 키를 보려면 IAM 사용 설명서AWS 전역 조건 컨텍스트 키를 참조하세요.

CodeCatalyst의 ID 기반 정책 예시

CodeCatalyst에서 AWS 계정은 스페이스의 청구를 관리하고 프로젝트 워크플로의 리소스에 액세스하는 데 필요합니다. 계정 연결은 스페이스에 AWS 계정의 추가를 승인하는 데 사용됩니다. ID 기반 정책은 연결된 AWS 계정에서 사용됩니다.

기본적으로 사용자 및 역할은 CodeCatalyst 리소스를 생성하거나 수정할 수 있는 권한이 없습니다. 또한 AWS Management Console, AWS Command Line Interface(AWS CLI) 또는 AWS API를 사용하여 작업을 수행할 수 없습니다. IAM 관리자는 리소스에서 작업을 수행할 수 있는 권한을 사용자와 역할에게 부여하는 IAM 정책을 생성해야 합니다. 그런 다음 관리자는 해당 권한이 필요한 사용자에 이러한 정책을 연결해야 합니다.

다음 예시 IAM 정책은 계정 연결과 관련된 작업에 대한 권한을 부여합니다. 이를 사용하여 계정을 CodeCatalyst에 연결하는 액세스를 제한합니다.

예시 1: 사용자가 단일 AWS 리전에서 연결 요청을 수락하도록 허용

다음 권한 정책은 사용자가 CodeCatalyst와 AWS 계정 간의 연결 요청을 보고 수락하는 것만 할 수 있도록 허용합니다. 또한 이 정책은 조건을 사용하여 us-west-2 리전의 작업만 허용하고 다른 AWS 리전에서는 허용하지 않습니다. 요청을 보고 승인하려면, 사용자는 요청에 지정된 계정과 동일한 계정으로 AWS Management Console에 로그인합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codecatalyst:AcceptConnection", "codecatalyst:GetPendingConnection" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": "us-west-2" } } } ] }

예시 2: 콘솔에서 단일 AWS 리전에 대한 연결 관리 허용

다음 권한 정책을 통해 사용자는 CodeCatalyst와 단일 리전의 AWS 계정 간의 연결을 관리할 수 있습니다. 이 정책은 조건을 사용하여 us-west-2 리전의 작업만 허용하고 다른 AWS 리전에서는 허용하지 않습니다. 연결을 생성한 후 AWS Management Console에서 옵션을 선택하여 CodeCatalystWorkflowDevelopmentRole-spaceName 역할을 생성할 수 있습니다. 예시 정책에서 iam:PassRole 작업의 조건에는 CodeCatalyst에 대한 서비스 위탁자가 포함됩니다. 해당 액세스 권한이 있는 역할만 AWS Management Console에 생성됩니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codecatalyst:*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestedRegion": "us-west-2" } } }, { "Effect": "Allow", "Action": [ "iam:CreateRole", "iam:CreatePolicy", "iam:AttachRolePolicy", "iam:ListRoles" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole" ], "Resource": "*", "Condition": { "StringEquals": { "iam:PassedToService": [ "codecatalyst.amazonaws.com", "codecatalyst-runner.amazonaws.com" ] } } } ] }

예시 3: 연결 관리 거부

다음 권한 정책은 CodeCatalyst와 AWS 계정 간의 연결을 관리할 수 있는 사용자의 권한을 거부합니다.

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

CodeCatalyst 권한 참조

이 섹션에서는 CodeCatalyst에 연결된 AWS 계정의 계정 연결 리소스를 사용하는 작업에 대한 권한 참조를 제공합니다. 다음 섹션에서는 계정 연결과 관련된 권한이 필요한 작업에 대해 설명합니다.

계정 연결에 필요한 권한

계정 연결을 사용하려면 다음 권한이 필요합니다.

계정 연결에 대한 CodeCatalyst 권한 필수 권한 리소스
AcceptConnection 이 계정을 CodeCatalyst 스페이스에 연결하기 위한 요청을 수락할 때 필요합니다. IAM 정책 권한일 뿐, API 작업이 아닙니다.

정책 Resource 요소에는 와일드카드(*)만 지원됩니다.

AssociateIamRoleToConnection IAM 역할을 계정 연결에 연결하는 데 필요합니다. IAM 정책 권한일 뿐, API 작업이 아닙니다. arn:aws:codecatalyst:region:account_ID:/connections/connection_ID
DeleteConnection 계정 연결을 삭제하는 데 필요합니다. IAM 정책 권한일 뿐, API 작업이 아닙니다. arn:aws:codecatalyst:region:account_ID:/connections/connection_ID
DisassociateIamRoleFromConnection 계정 연결에서 IAM 역할을 연결 해제하는 데 필요합니다. IAM 정책 권한일 뿐, API 작업이 아닙니다. arn:aws:codecatalyst:region:account_ID:/connections/connection_ID
GetBillingAuthorization 계정 연결에 대한 청구 권한을 설명하는 데 필요합니다. IAM 정책 권한일 뿐, API 작업이 아닙니다. arn:aws:codecatalyst:region:account_ID:/connections/connection_ID
GetConnection 계정 연결을 얻는 데 필요합니다. IAM 정책 권한일 뿐, API 작업이 아닙니다. arn:aws:codecatalyst:region:account_ID:/connections/connection_ID
GetPendingConnection 이 계정을 CodeCatalyst 스페이스에 연결하기 위한 보류 상태의 요청을 수락할 때 필요합니다. IAM 정책 권한일 뿐, API 작업이 아닙니다.

정책 Resource 요소에는 와일드카드(*)만 지원됩니다.

ListConnections 보류 중이 아닌 계정 연결을 나열하는 데 필요합니다. IAM 정책 권한일 뿐, API 작업이 아닙니다.

정책 Resource 요소에는 와일드카드(*)만 지원됩니다.

ListIamRolesForConnection 계정 연결과 연결된 IAM 역할을 나열하는 데 필요합니다. IAM 정책 권한일 뿐, API 작업이 아닙니다. arn:aws:codecatalyst:region:account_ID:/connections/connection_ID
ListTagsForResource 계정 연결과 연결된 태그를 나열하는 데 필요합니다. IAM 정책 권한일 뿐, API 작업이 아닙니다. arn:aws:codecatalyst:region:account_ID:/connections/connection_ID
PutBillingAuthorization 계정 연결에 대한 청구 권한을 생성하거나 업데이트하는 데 필요합니다. IAM 정책 권한일 뿐, API 작업이 아닙니다. arn:aws:codecatalyst:region:account_ID:/connections/connection_ID
RejectConnection 이 계정을 CodeCatalyst 스페이스에 연결하기 위한 요청을 거절할 때 필요합니다. IAM 정책 권한일 뿐, API 작업이 아닙니다.

정책 Resource 요소에는 와일드카드(*)만 지원됩니다.

TagResource 계정 연결과 연결된 태그를 생성하거나 편집하는 데 필요합니다. IAM 정책 권한일 뿐, API 작업이 아닙니다. arn:aws:codecatalyst:region:account_ID:/connections/connection_ID
UntagResource 계정 연결과 연결된 태그를 제거하는 데 필요합니다. IAM 정책 권한일 뿐, API 작업이 아닙니다. arn:aws:codecatalyst:region:account_ID:/connections/connection_ID

IAM Identity Center 애플리케이션에 필요한 권한

IAM Identity Center 애플리케이션을 사용하려면 다음 권한이 필요합니다.

IAM Identity Center 애플리케이션에 대한 CodeCatalyst 권한 필수 권한 리소스
AssociateIdentityCenterApplicationToSpace IAM Identity Center 애플리케이션을 CodeCatalyst 스페이스와 연결하는 데 필요합니다. IAM 정책 권한일 뿐, API 작업이 아닙니다. arn:aws:codecatalyst:region:account_ID:/identity-center-applications/identity-center-application_ID
AssociateIdentityToIdentityCenterApplication CodeCatalyst 스페이스에 대한 IAM Identity Center 애플리케이션과 ID를 연결하는 데 필요합니다. IAM 정책 권한일 뿐, API 작업이 아닙니다. arn:aws:codecatalyst:region:account_ID:/identity-center-applications/identity-center-application_ID
BatchAssociateIdentitiesToIdentityCenterApplication CodeCatalyst 스페이스에 대한 IAM Identity Center 애플리케이션과 여러 ID를 연결하는 데 필요합니다. IAM 정책 권한일 뿐, API 작업이 아닙니다. arn:aws:codecatalyst:region:account_ID:/identity-center-applications/identity-center-application_ID
BatchDisassociateIdentitiesFromIdentityCenterApplication CodeCatalyst 스페이스에 대한 IAM Identity Center 애플리케이션에서 여러 ID의 연결 해제하는 데 필요합니다. IAM 정책 권한일 뿐, API 작업이 아닙니다. arn:aws:codecatalyst:region:account_ID:/identity-center-applications/identity-center-application_ID
CreateIdentityCenterApplication IAM Identity Center 애플리케이션을 생성하는 데 필요합니다. IAM 정책 권한일 뿐, API 작업이 아닙니다. arn:aws:codecatalyst:region:account_ID:/identity-center-applications/identity-center-application_ID
CreateSpaceAdminRoleAssignment 주어진 CodeCatalyst 스페이스 및 IAM Identity Center 애플리케이션에 대한 관리자 역할 할당을 생성하는 데 필요합니다. IAM 정책 권한일 뿐, API 작업이 아닙니다. arn:aws:codecatalyst:region:account_ID:/identity-center-applications/identity-center-application_ID
DeleteIdentityCenterApplication IAM Identity Center 애플리케이션을 삭제하는 데 필요합니다. IAM 정책 권한일 뿐, API 작업이 아닙니다. arn:aws:codecatalyst:region:account_ID:/identity-center-applications/identity-center-application_ID
DisassociateIdentityCenterApplicationFromSpace CodeCatalyst 스페이스에서 IAM Identity Center 애플리케이션을 연결 해제하는 데 필요합니다. IAM 정책 권한일 뿐, API 작업이 아닙니다. arn:aws:codecatalyst:region:account_ID:/identity-center-applications/identity-center-application_ID
DisassociateIdentityFromIdentityCenterApplication CodeCatalyst 스페이스에 대한 IAM Identity Center 애플리케이션과 ID를 연결 해제하는 데 필요합니다. IAM 정책 권한일 뿐, API 작업이 아닙니다. arn:aws:codecatalyst:region:account_ID:/identity-center-applications/identity-center-application_ID
GetIdentityCenterApplication IAM Identity Center 애플리케이션에 대한 정보를 가져오는 데 필요합니다. IAM 정책 권한일 뿐, API 작업이 아닙니다. arn:aws:codecatalyst:region:account_ID:/identity-center-applications/identity-center-application_ID
ListIdentityCenterApplications 계정의 모든 IAM Identity Center 애플리케이션에 대한 목록을 보는 데 필요합니다. IAM 정책 권한일 뿐, API 작업이 아닙니다.

정책 Resource 요소에는 와일드카드(*)만 지원됩니다.

ListIdentityCenterApplicationsForSpace CodeCatalyst 스페이스별로 IAM Identity Center 애플리케이션의 목록을 보는 데 필요합니다. IAM 정책 권한일 뿐, API 작업이 아닙니다. arn:aws:codecatalyst:region:account_ID:/identity-center-applications/identity-center-application_ID
ListSpacesForIdentityCenterApplication IAM Identity Center 애플리케이션별로 CodeCatalyst 스페이스의 목록을 보는 데 필요합니다. IAM 정책 권한일 뿐, API 작업이 아닙니다. arn:aws:codecatalyst:region:account_ID:/identity-center-applications/identity-center-application_ID
SynchronizeIdentityCenterApplication IAM Identity Center 애플리케이션을 지원 Identity Store와 동기화하는 데 필요합니다. IAM 정책 권한일 뿐, API 작업이 아닙니다. arn:aws:codecatalyst:region:account_ID:/identity-center-applications/identity-center-application_ID
UpdateIdentityCenterApplication IAM Identity Center 애플리케이션을 업데이트하는 데 필요합니다. IAM 정책 권한일 뿐, API 작업이 아닙니다. arn:aws:codecatalyst:region:account_ID:/identity-center-applications/identity-center-application_ID