

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

# 태그를 사용하여 CodeArtifact 리소스에 대한 액세스 제어
<a name="tag-based-access-control"></a>

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

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

리소스에 태그가 연결되거나 태그 지정을 지원하는 서비스에 대한 요청에서 전달될 수 있습니다. CodeArtifact에서 리소스에 태그가 있을 수 있고 일부 작업에 태그가 포함될 수 있습니다. IAM 정책을 생성하면 태그 조건 키를 사용하여 다음을 제어할 수 있습니다.
+ 도메인 또는 리포지토리 리소스에 이미 있는 태그를 기반으로 해당 리소스에 대해 작업을 수행할 수 있는 사용자
+ 작업의 요청에서 전달될 수 있는 태그
+ 요청에서 특정 키를 사용할 수 있는지 여부를 통제합니다.

태그 조건 키의 전체 구문 및 의미는 *IAM* 사용 설명서의 [태그를 사용한 액세스 제어](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html)를 참조하십시오.

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

## 태그 기반 액세스 제어 정책 예제
<a name="tag-based-access-control-examples"></a>

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

**Example 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"
              ]
          }
      }
  }
  ]
}
```

**Example 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"]
        }
      }
    }
  ]
}
```

**Example 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"
        }
      }
    }
  ]
}
```

**Example 4: 요청의 태그 기반 작업 허용**  
다음 정책은 사용자에게 CodeArtifact의 지정된 도메인에 리포지토리를 생성할 수 있는 권한을 부여합니다.  
이와 관련하여 정책은 요청의 리소스 생성 API가 `Value1` 값이 포함된 `Key1` 태그를 지정하는 경우 `CreateRepository` 및 `TagResource` 작업을 허용합니다. `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"
        }
      }
    }
  ]
}
```