기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS CodeArtifact 사용 권한 참조
AWS CodeArtifact 리소스 및 운영
에서 AWS CodeArtifact 기본 리소스는 도메인입니다. 정책에서 Amazon 리소스 이름(ARN)을 사용하여 정책이 적용되는 리소스를 식별합니다. 리포지토리도 리소스이며 리포지토리에는 이와 연결된 ARN이 들어 있습니다. 자세한 내용은 Amazon Web Services 일반 참조의 Amazon 리소스 이름(ARN)을 참조하세요.
리소스 유형 | ARN 형식 |
---|---|
도메인 |
|
리포지토리 |
|
패키지 그룹 |
|
네임스페이스 포함 패키지 |
|
네임스페이스 미포함 패키지 |
|
모든 CodeArtifact 리소스 |
|
지정된 AWS 지역의 지정된 계정이 소유한 모든 CodeArtifact 리소스 |
|
액세스를 제어할 작업에 따라 지정할 리소스 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:CreateDomain
및 codeartifact:AssociateExternalConnection
). 문장 하나에 여러 작업을 지정하려면 쉼표로 구분합니다(예: "Action": [
"codeartifact:CreateDomain", "codeartifact:AssociateExternalConnection" ]
).
와일드카드 문자 사용
정책의 Resource
필드에 리소스 값으로 와일드카드 문자(*)를 사용하거나 사용하지 않고 ARN을 지정합니다. 와일드카드를 사용하여 여러 작업 또는 리소스를 지정할 수 있습니다. 예를 들어, codeartifact:*
는 모든 CodeArtifact 작업을 지정하고 해당 단어로 Describe
시작하는 모든 CodeArtifact 작업을 codeartifact:Describe*
지정합니다.
AWS CodeArtifact API 작업 | 필요한 권한(API 작업) | 리소스 |
---|---|---|
AssociateExternalConnection |
리포지토리에 외부 연결을 추가하는 데 필요합니다. |
|
CopyPackageVersions |
소스 리포지토리에서 대상 리포지토리로 패키지 버전을 복사하려면
대상 리포지토리에 필요합니다.
소스 리포지토리에 필요합니다. |
|
CreateDomain |
도메인을 생성하는 데 필요합니다.
기본값이 아닌 |
|
CreatePackageGroup |
패키지 그룹을 생성하는 데 필요합니다. |
|
CreateRepository |
리포지토리를 생성하는 데 필요합니다.
다운스트림 리포지토리에 업스트림 리포지토리로 추가할 수 있도록 리포지토리에 필요합니다. |
|
DeleteDomain |
도메인을 삭제하는 데 필요합니다. |
|
DeleteDomainPermissionsPolicy |
도메인의 리소스 정책을 삭제하는 데 필요합니다. |
|
DeletePackage |
패키지를 삭제하는 데 필요합니다. |
|
DeletePackageGroup |
패키지 그룹을 삭제하는 데 필요합니다. |
|
DeletePackageVersions |
패키지 버전을 삭제하는 데 필요합니다. |
|
DeleteRepository |
리포지토리를 삭제하는 데 필요합니다. |
|
DeleteRepositoryPermissionsPolicy |
리포지토리의 리소스 정책을 삭제하는 데 필요합니다. |
|
DescribeDomain |
도메인 정보를 가져오는 데 필요합니다. |
|
DescribePackage |
패키지 정보를 가져오는 데 필요합니다. |
|
DescribePackageGroup |
패키지 그룹에 대한 정보를 가져오는 데 필요합니다. |
|
DescribePackageVersion |
패키지 버전 정보를 가져오는 데 필요합니다. |
|
DescribeRepository |
리포지토리 정보를 가져오는 데 필요합니다. |
|
DisassociateExternalConnection |
리포지토리에서 외부 연결을 제거하는 데 필요합니다. |
|
DisposePackageVersions |
패키지 버전을 폐기하는 데 필요합니다. |
|
GetAssociatedPackageGroup |
패키지의 관련 패키지 그룹을 가져오는 데 필요합니다. |
|
GetAuthorizationToken |
리포지토리에 액세스하기 위한 임시 인증 토큰을 가져오는 데 필요합니다. |
|
GetDomainPermissionsPolicy |
도메인 리소스 정책을 가져오는 데 필요합니다. |
|
GetPackageVersionAsset |
패키지 버전의 자산을 가져오는 데 필요합니다. |
arn:aws:codeartifact: |
GetPackageVersionReadme |
패키지 버전의 readme를 가져오는 데 필요합니다. |
|
GetRepositoryEndpoint |
리포지토리 엔드포인트를 가져오는 데 필요합니다. |
|
GetRepositoryPermissionsPolicy |
리포지토리 리소스 정책을 가져오는 데 필요합니다. |
|
ListAssociatedPackages |
패키지 그룹과 관련된 패키지 목록을 반환하는 데 필요합니다. |
|
ListDomains |
AWS 계정의 도메인 페이지 매김 목록을 반환하는 데 필요합니다. |
|
ListPackageGroups |
도메인에서 페이지가 매겨진 패키지 그룹 목록을 반환하는 데 필요합니다. |
|
ListPackages |
리포지토리에서 패키지의 페이지 매김 목록을 반환하는 데 필요합니다. |
|
ListPackageVersionAssets |
패키지 버전의 자산 페이지 매김 목록을 반환하는 데 필요합니다. |
|
ListPackageVersionDependencies |
패키지 버전 종속성의 페이지 매김 목록을 반환하는 데 필요합니다. |
|
ListPackageVersions |
리포지토리에서 패키지 버전의 페이지 매김 목록을 반환하는 데 필요합니다. |
|
ListRepositories |
AWS 계정의 리포지토리 페이지 매김 목록을 반환하는 데 필요합니다. |
|
ListRepositoriesInDomain |
도메인의 리포지토리 페이지 매김 목록을 반환하는 데 필요합니다. |
|
ListSubPackageGroups |
패키지 그룹의 직계 하위 패키지 그룹 목록을 반환하는 데 필요합니다. |
|
ListTagsForResource |
지정된 리소스의 태그를 나열하는 데 필요합니다. |
|
PublishPackageVersion |
패키지 버전을 리포지토리에 게시하는 데 필요합니다. |
|
PutDomainPermissionsPolicy |
도메인에 리소스 정책을 추가하는 데 필요합니다. |
|
PutPackageMetadata |
Maven 패키지 버전을 리포지토리에 게시하거나 npm 패키지 버전에서 npm 태그를 추가 또는 제거하는 데 필요합니다. |
|
PutPackageOriginConfiguration |
패키지의 오리진 구성을 업데이트하는 데 필요합니다. |
|
PutRepositoryPermissionsPolicy |
리포지토리에 리소스 정책을 추가하는 데 필요합니다. |
|
ReadFromRepository |
패키지 관리자 클라이언트를 사용하여 리포지토리에서 읽는 데 필요합니다. |
|
TagResource |
연결 리소스를 태깅하는 데 필요합니다. |
|
UntagResource |
리소스에서 태그를 제거하는 데 필요합니다. |
|
UpdatePackageGroup |
패키지 그룹을 업데이트하는 데 필요합니다. |
|
UpdatePackageGroupOriginConfiguration |
패키지 그룹의 오리진 구성을 업데이트하는 데 필요합니다. |
|
UpdatePackageVersionsStatus |
패키지 버전의 상태를 변경하는 데 필요합니다. |
|
UpdateRepository |
리포지토리의 설명 또는 업스트림 연결을 업데이트하는 데 필요합니다. 자세한 내용은 리포지토리 업스트림 구성 수정 또는 UpdateRepositoryCodeArtifact API 가이드를 참조하십시오.
다운스트림 리포지토리에 업스트림 리포지토리로 추가할 수 있도록 리포지토리에 필요합니다. |
|
패키지 그룹 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