태그를 사용하여 CodeArtifact 리소스에 대한 액세스 제어 - CodeArtifact

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

태그를 사용하여 CodeArtifact 리소스에 대한 액세스 제어

IAM 사용자 정책 설명의 조건은 CodeArtifact 작업에 필요한 리소스에 대한 권한을 지정하는 데 사용하는 구문의 일부입니다. 조건에 태그를 사용하는 것은 리소스 및 요청에 대한 액세스를 제어하는 하나의 방법입니다. CodeArtifact 리소스 태깅에 대한 자세한 내용은 리소스에 태그 지정 섹션을 참조하세요. 이 주제에서는 태그 기반 액세스 제어를 다룹니다.

IAM 정책을 설계할 때 특정 리소스에 대한 액세스 권한을 부여하여 세부적인 권한을 설정할 수도 있습니다. 관리하는 리소스의 개수가 늘어날수록 이 작업은 더 어려워집니다. 리소스에 태그를 지정하고 정책 문 조건에서 태그를 사용하면 이러한 작업이 더 간단해질 수 있습니다. 특정 태그를 사용하여 리소스에 대량으로 액세스 권한을 부여합니다. 그런 다음 생성 중 또는 나중에 이 태그를 관련 리소스에 반복해서 적용합니다.

리소스에 태그가 연결되거나 태그 지정을 지원하는 서비스에 대한 요청에서 전달될 수 있습니다. CodeArtifact에서 리소스에 태그가 있을 수 있고 일부 작업에 태그가 포함될 수 있습니다. IAM 정책을 생성하면 태그 조건 키를 사용하여 다음을 제어할 수 있습니다.

  • 도메인 또는 리포지토리 리소스에 이미 있는 태그를 기반으로 해당 리소스에 대해 작업을 수행할 수 있는 사용자

  • 작업의 요청에서 전달될 수 있는 태그

  • 요청에서 특정 키를 사용할 수 있는지 여부를 제어합니다.

태그 조건 키의 전체 구문 및 의미는 IAM 사용 설명서의 태그를 사용한 액세스 제어를 참조하십시오.

중요

리소스에 태그를 사용하여 작업을 제한하는 경우 태그는 작업이 실행되는 리소스에 있어야 합니다. 예를 들어 태그가 포함된 DescribeRepository 권한을 거부하려면 태그가 도메인이 아닌 각 리포지토리에 있어야 합니다. CodeArtifact의 작업 목록과 해당 작업이 작동하는 리소스는 AWS CodeArtifact 사용 권한 참조을 참조하세요.

태그 기반 액세스 제어 정책 예제

다음 예에서는 CodeArtifact 사용자에 정책의 태그 조건을 지정하는 방법을 설명합니다.

예 1: 요청의 태그 기반 작업 한도 지정

AWSCodeArtifactAdminAccess 관리형 사용자 정책은 사용자에게 모든 리소스에서 모든 CodeArtifact 작업을 수행할 수 있는 무제한적인 권한을 제공합니다.

다음 정책은 이러한 기능을 제한하고 요청이 특정 태그를 포함하지 않는 한 권한이 없는 사용자의 리포지토리 생성 권한을 거부합니다. 이와 관련하여 정책은 요청이 1 또는 2 값 중 하나와 함께 costcenter라는 태그를 지정하지 않는 경우 CreateRepository 작업을 거부합니다. 고객의 관리자는 권한이 없는 IAM 사용자에게 관리형 사용자 정책 이외에 이 IAM 정책도 연결해야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": "codeartifact:CreateRepository", "Resource": "*", "Condition": { "Null": { "aws:RequestTag/costcenter": "true" } } }, { "Effect": "Deny", "Action": "codeartifact:CreateRepository", "Resource": "*", "Condition": { "ForAnyValue:StringNotEquals": { "aws:RequestTag/costcenter": [ "1", "2" ] } } } ] }
예 2: 리소스 태그 기반 작업 한도 지정

AWSCodeArtifactAdminAccess 관리형 사용자 정책은 사용자에게 모든 리소스에서 모든 CodeArtifact 작업을 수행할 수 있는 무제한적인 권한을 제공합니다.

다음 정책은 이러한 기능을 제한하고 권한이 없는 사용자의 지정된 도메인의 리포지토리에 대한 작업 수행 권한을 거부합니다. 이와 관련하여 정책은 리소스에 Value1 또는 Value2 값 중 하나가 포함된 Key1 태그가 있으면 일부 작업을 거부합니다. aws:ResourceTag 조건 키는 해당 리소스의 태그를 기반으로 리소스에 대한 액세스를 제어하는 데 사용됩니다. 고객의 관리자는 권한이 없는 IAM 사용자에게 관리형 사용자 정책 이외에 이 IAM 정책도 연결해야 합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "codeartifact:TagResource", "codeartifact:UntagResource", "codeartifact:DescribeDomain", "codeartifact:DescribeRepository", "codeartifact:PutDomainPermissionsPolicy", "codeartifact:PutRepositoryPermissionsPolicy", "codeartifact:ListRepositoriesInDomain", "codeartifact:UpdateRepository", "codeartifact:ReadFromRepository", "codeartifact:ListPackages", "codeartifact:ListTagsForResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/Key1": ["Value1", "Value2"] } } } ] }
예 3: 리소스 태그 기반 작업 허용

다음 정책은 사용자에게 CodeArtifact에서 리포지토리 및 패키지에 대해 작업을 수행하고 관련 정보를 가져올 수 있는 권한을 부여합니다.

이와 관련하여 정책은 리포지토리에 Value1 값이 포함된 Key1 태그가 있으면 특정 작업을 허용합니다. aws:RequestTag 조건 키는 IAM 요청에서 전달할 수 있는 태그를 제어하는 데 사용됩니다. aws:TagKeys 조건은 태그 키의 대/소문자를 구분합니다. 이 정책은 AWSCodeArtifactAdminAccess 관리형 사용자 정책이 연결되어 있지 않은 IAM 사용자에게 유용합니다. 관리형 정책은 사용자에게 모든 리소스에서 모든 CodeArtifact 작업을 수행할 수 있는 무제한적인 권한을 제공합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codeartifact:UpdateRepository", "codeartifact:DeleteRepository", "codeartifact:ListPackages" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/Key1": "Value1" } } } ] }
예 4: 요청의 태그 기반 작업 허용

다음 정책은 사용자에게 CodeArtifact의 지정된 도메인에 리포지토리를 생성할 수 있는 권한을 부여합니다.

이와 관련하여 정책은 요청의 리소스 생성 API가 Value1 값이 포함된 Key1 태그를 지정하는 경우 CreateRepositoryTagResource 작업을 허용합니다. aws:RequestTag 조건 키는 IAM 요청에서 전달할 수 있는 태그를 제어하는 데 사용됩니다. aws:TagKeys 조건은 태그 키의 대/소문자를 구분합니다. 이 정책은 AWSCodeArtifactAdminAccess 관리형 사용자 정책이 연결되어 있지 않은 IAM 사용자에게 유용합니다. 관리형 정책은 사용자에게 모든 리소스에서 모든 CodeArtifact 작업을 수행할 수 있는 무제한적인 권한을 제공합니다.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codeartifact:CreateRepository", "codeartifact:TagResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:RequestTag/Key1": "Value1" } } } ] }