AWS CodeArtifact 사용 권한 참조 - CodeArtifact

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

AWS CodeArtifact 사용 권한 참조

AWS CodeArtifact 리소스 및 운영

에서 AWS CodeArtifact 기본 리소스는 도메인입니다. 정책에서 Amazon 리소스 이름(ARN)을 사용하여 정책이 적용되는 리소스를 식별합니다. 리포지토리도 리소스이며 리포지토리에는 이와 연결된 ARN이 들어 있습니다. 자세한 내용은 Amazon Web Services 일반 참조Amazon 리소스 이름(ARN)을 참조하세요.

리소스 유형 ARN 형식
도메인

arn:aws:codeartifact:region-ID:account-ID:domain/my_domain

리포지토리

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

패키지 그룹

arn:aws:codeartifact:region-ID:account-ID:package-group/my_domain/encoded_package_group_pattern

네임스페이스 포함 패키지

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format/namespace/my_package

네임스페이스 미포함 패키지

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format//my_package

모든 CodeArtifact 리소스

arn:aws:codeartifact:*

지정된 AWS 지역의 지정된 계정이 소유한 모든 CodeArtifact 리소스

arn:aws:codeartifact:region-ID:account-ID:*

액세스를 제어할 작업에 따라 지정할 리소스 ARN이 달라집니다.

명령문에서 다음과 같이 ARN을 사용하여 특정 도메인(myDomain)을 나타낼 수 있습니다.

"Resource": "arn:aws:codeartifact:us-east-2:123456789012:domain/myDomain"

명령문에서 다음과 같이 ARN을 사용하여 특정 리포지토리(myRepo)를 나타낼 수 있습니다.

"Resource": "arn:aws:codeartifact:us-east-2:123456789012:domain/myDomain/myRepo"

단일 명령문에서 여러 리소스를 지정하려면 ARN을 쉼표로 구분합니다. 다음 명령문은 특정 도메인의 모든 패키지 및 리포지토리에 적용됩니다.

"Resource": [ "arn:aws:codeartifact:us-east-2:123456789012:domain/myDomain", "arn:aws:codeartifact:us-east-2:123456789012:repository/myDomain/*", "arn:aws:codeartifact:us-east-2:123456789012:package/myDomain/*" ]
참고

많은 AWS 서비스가 ARN에서 콜론 (:) 또는 전방향 슬래시 (/) 를 동일한 문자로 취급합니다. 하지만 에서는 리소스 패턴 및 규칙이 정확히 일치하는 항목을 CodeArtifact 사용합니다. 따라서 이벤트 패턴을 만들 때 리소스에서 ARN 구문이 일치하도록 정확한 문자를 사용해야 합니다.

AWS CodeArtifact API 작업 및 권한

IAM 자격 증명에 연결할 수 있는 액세스 제어 및 쓰기 권한 정책(자격 증명 기반 정책)을 설정할 때 다음 표를 참조로 사용할 수 있습니다.

AWS CodeArtifact 정책에서 AWS-wide 조건 키를 사용하여 조건을 표현할 수 있습니다. 목록은 IAM 사용 설명서의 IAM JSON 정책 요소 참조를 참조하십시오.

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

와일드카드 문자 사용

정책의 Resource 필드에 리소스 값으로 와일드카드 문자(*)를 사용하거나 사용하지 않고 ARN을 지정합니다. 와일드카드를 사용하여 여러 작업 또는 리소스를 지정할 수 있습니다. 예를 들어, codeartifact:* 는 모든 CodeArtifact 작업을 지정하고 해당 단어로 Describe 시작하는 모든 CodeArtifact 작업을 codeartifact:Describe* 지정합니다.

CodeArtifact API 작업 및 작업에 필요한 권한
AWS CodeArtifact API 작업 필요한 권한(API 작업) 리소스
AssociateExternalConnection

codeartifact:AssociateExternalConnection

리포지토리에 외부 연결을 추가하는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

CopyPackageVersions

소스 리포지토리에서 대상 리포지토리로 패키지 버전을 복사하려면

codeartifact:CopyPackageVersions

대상 리포지토리에 필요합니다.

codeartifact:ReadFromRepository

소스 리포지토리에 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

CreateDomain

codeartifact:CreateDomain

도메인을 생성하는 데 필요합니다.

kms:DescribeKeykms:CreateGrant

기본값이 아닌 encryptionKey 키를 지정하는 경우 제공된 KMS 키에 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:domain/my_domain

CreatePackageGroup

codeartifact:CreatePackageGroup

패키지 그룹을 생성하는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:package-group/my_domain/encoded_package_group_pattern

CreateRepository

codeartifact:CreateRepository

리포지토리를 생성하는 데 필요합니다.

codeartifact:AssociateWithDownstreamRepository

다운스트림 리포지토리에 업스트림 리포지토리로 추가할 수 있도록 리포지토리에 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

DeleteDomain

codeartifact:DeleteDomain

도메인을 삭제하는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:domain/my_domain

DeleteDomainPermissionsPolicy

codeartifact:DeleteDomainPermissionsPolicy

도메인의 리소스 정책을 삭제하는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:domain/my_domain

DeletePackage

codeartifact:DeletePackage

패키지를 삭제하는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format/namespace/my_package

DeletePackageGroup

codeartifact:DeletePackageGroup

패키지 그룹을 삭제하는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:package-group/my_domain/encoded_package_group_pattern

DeletePackageVersions

codeartifact:DeletePackageVersions

패키지 버전을 삭제하는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format/namespace/my_package

DeleteRepository

codeartifact:DeleteRepository

리포지토리를 삭제하는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

DeleteRepositoryPermissionsPolicy

codeartifact:DeleteRepositoryPermissionsPolicy

리포지토리의 리소스 정책을 삭제하는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

DescribeDomain

codeartifact:DescribeDomain

도메인 정보를 가져오는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:domain/my_domain

DescribePackage

codeartifact:DescribePackage

패키지 정보를 가져오는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format/namespace/my_package

DescribePackageGroup

codeartifact:DescribePackageGroup

패키지 그룹에 대한 정보를 가져오는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:package-group/my_domain/encoded_package_group_pattern

DescribePackageVersion

codeartifact:DescribePackageVersion

패키지 버전 정보를 가져오는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format/namespace/my_package

DescribeRepository

codeartifact:DescribeRepository

리포지토리 정보를 가져오는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

DisassociateExternalConnection

codeartifact:DisassociateExternalConnection

리포지토리에서 외부 연결을 제거하는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

DisposePackageVersions

codeartifact:DisposePackageVersions

패키지 버전을 폐기하는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format/namespace/my_package

GetAssociatedPackageGroup

codeartifact:GetAssociatedPackageGroup

패키지의 관련 패키지 그룹을 가져오는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:package-group/my_domain/encoded_package_group_pattern

GetAuthorizationToken

codeartifact:GetAuthorizationToken

sts:GetServiceBearerToken

리포지토리에 액세스하기 위한 임시 인증 토큰을 가져오는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:domain/my_domain

GetDomainPermissionsPolicy

codeartifact:GetDomainPermissionsPolicy

도메인 리소스 정책을 가져오는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:domain/my_domain

GetPackageVersionAsset

codeartifact:GetPackageVersionAsset

패키지 버전의 자산을 가져오는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format/namespace/my_package
GetPackageVersionReadme

codeartifact:GetPackageVersionReadme

패키지 버전의 readme를 가져오는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format/namespace/my_package

GetRepositoryEndpoint

codeartifact:GetRepositoryEndpoint

리포지토리 엔드포인트를 가져오는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

GetRepositoryPermissionsPolicy

codeartifact:GetRepositoryPermissionsPolicy

리포지토리 리소스 정책을 가져오는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

ListAssociatedPackages

codeartifact:ListAssociatedPackages

패키지 그룹과 관련된 패키지 목록을 반환하는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:package-group/my_domain/encoded_package_group_pattern

ListDomains

codeartifact:ListDomains

AWS 계정의 도메인 페이지 매김 목록을 반환하는 데 필요합니다.

*

ListPackageGroups

codeartifact:ListPackageGroups

도메인에서 페이지가 매겨진 패키지 그룹 목록을 반환하는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:domain/my_domain

ListPackages

codeartifact:ListPackages

리포지토리에서 패키지의 페이지 매김 목록을 반환하는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

ListPackageVersionAssets

codeartifact:ListPackageVersionAssets

패키지 버전의 자산 페이지 매김 목록을 반환하는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format/namespace/my_package

ListPackageVersionDependencies

codeartifact:ListPackageVersionDependencies

패키지 버전 종속성의 페이지 매김 목록을 반환하는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format/namespace/my_package

ListPackageVersions

codeartifact:ListPackageVersions

리포지토리에서 패키지 버전의 페이지 매김 목록을 반환하는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format/namespace/my_package

ListRepositories

codeartifact:ListRepositories

AWS 계정의 리포지토리 페이지 매김 목록을 반환하는 데 필요합니다.

*

ListRepositoriesInDomain

codeartifact:ListRepositoriesInDomain

도메인의 리포지토리 페이지 매김 목록을 반환하는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:domain/my_domain

ListSubPackageGroups

codeartifact:ListSubPackageGroups

패키지 그룹의 직계 하위 패키지 그룹 목록을 반환하는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:package-group/my_domain/encoded_package_group_pattern

ListTagsForResource

codeartifact:ListTagsForResource

지정된 리소스의 태그를 나열하는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:domain/my_domain

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

PublishPackageVersion

codeartifact:PublishPackageVersion

패키지 버전을 리포지토리에 게시하는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format/namespace/my_package

PutDomainPermissionsPolicy

codeartifact:PutDomainPermissionsPolicy

도메인에 리소스 정책을 추가하는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:domain/my_domain

PutPackageMetadata

codeartifact:PutPackageMetadata

Maven 패키지 버전을 리포지토리에 게시하거나 npm 패키지 버전에서 npm 태그를 추가 또는 제거하는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format/namespace/my_package

PutPackageOriginConfiguration

codeartifact:PutPackageOriginConfiguration

패키지의 오리진 구성을 업데이트하는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format/namespace/my_package

PutRepositoryPermissionsPolicy

codeartifact:PutRepositoryPermissionsPolicy

리포지토리에 리소스 정책을 추가하는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

ReadFromRepository

codeartifact:ReadFromRepository

패키지 관리자 클라이언트를 사용하여 리포지토리에서 읽는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

TagResource

codeartifact:TagResource

연결 리소스를 태깅하는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:domain/my_domain

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

UntagResource

codeartifact:UntagResource

리소스에서 태그를 제거하는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:domain/my_domain

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

UpdatePackageGroup

codeartifact:UpdatePackageGroup

패키지 그룹을 업데이트하는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:package-group/my_domain/encoded_package_group_pattern

UpdatePackageGroupOriginConfiguration

codeartifact:UpdatePackageGroupOriginConfiguration

패키지 그룹의 오리진 구성을 업데이트하는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:package-group/my_domain/encoded_package_group_pattern

UpdatePackageVersionsStatus

codeartifact:UpdatePackageVersionsStatus

패키지 버전의 상태를 변경하는 데 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:package/my_domain/my_repo/package-format/namespace/my_package

UpdateRepository

codeartifact:UpdateRepository

리포지토리의 설명 또는 업스트림 연결을 업데이트하는 데 필요합니다. 자세한 내용은 리포지토리 업스트림 구성 수정 또는 UpdateRepositoryCodeArtifact API 가이드를 참조하십시오.

codeartifact:AssociateWithDownstreamRepository

다운스트림 리포지토리에 업스트림 리포지토리로 추가할 수 있도록 리포지토리에 필요합니다.

arn:aws:codeartifact:region-ID:account-ID:repository/my_domain/my_repo

패키지 그룹 ARN

참고

이 섹션에서는 패키지 그룹 ARN 및 패턴 인코딩에 대한 정보를 제공합니다. 패턴을 인코딩하고 ARN을 구성하는 대신 콘솔에서 ARN을 복사하거나 DescribePackageGroup API를 사용하여 ARN을 가져오는 것이 좋습니다.

IAM 정책은 와일드카드 문자*, 를 사용하여 여러 IAM 작업 또는 여러 리소스를 매칭합니다. 패키지 그룹 패턴도 * 캐릭터를 사용합니다. 단일 패키지 그룹과 일치하는 IAM 정책을 보다 쉽게 작성하기 위해 패키지 그룹 ARN 형식은 패키지 그룹 패턴의 인코딩된 버전을 사용합니다.

구체적으로 패키지 그룹 ARN 형식은 다음과 같습니다.

arn:aws:codeartifact:region:account-ID:package-group/my_domain/encoded_package_group_pattern

인코딩된 패키지 그룹 패턴은 특정 특수 문자가 퍼센트 인코딩된 값으로 대체되는 패키지 그룹 패턴입니다. 다음 목록에는 문자와 해당 퍼센트 인코딩 값이 포함되어 있습니다.

  • * : %2a

  • $ : %24

  • % : %25

예를 들어, 도메인의 루트 패키지 그룹 (/*) 의 ARN은 다음과 같습니다.

arn:aws:codeartifact:us-east-1:111122223333:package-group/my_domain/%2a

목록에 포함되지 않은 문자는 인코딩할 수 없으며 ARN은 대소문자를 구분하므로 로 인코딩하고 그렇지 않으면 * 인코딩해야 합니다. %2a %2A