

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

# 태그를 사용하여 Elastic Beanstalk 리소스에 대한 액세스 제어
<a name="AWSHowTo.iam.policies.access-tags"></a>

이 주제에서는 태그 기반 액세스 제어를 통해 IAM 정책을 생성하고 관리하는 방법을 설명합니다.

IAM 정책 설명의 조건을 사용하여 Elastic Beanstalk에서 리소스에 액세스할 수 있는 권한을 구성할 수 있습니다. 정책 설명 조건에 대한 자세한 내용은 [Elastic Beanstalk 작업에 사용되는 리소스 및 조건](AWSHowTo.iam.policies.actions.md) 단원을 참조하세요. 조건에 태그를 사용하는 것은 리소스 및 요청에 대한 액세스를 제어하는 하나의 방법입니다. Elastic Beanstalk 리소스 태깅에 대한 자세한 내용은 [Elastic Beanstalk 애플리케이션 리소스 태그 지정](applications-tagging-resources.md) 단원을 참조하세요.

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

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

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

## 정책의 태그 조건 예제
<a name="AWSHowTo.iam.policies.access-tags.examples"></a>

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

**Example 1: 요청의 태그 기반 작업 제한**  <a name="example_policy_tags.deny_by_request_tag"></a>
Elastic Beanstalk **AdministratorAccess-AWSElasticBeanstalk** 관리형 사용자 정책이 사용자에게 모든 Elastic Beanstalk 관리형 리소스에 대해 모든 Elastic Beanstalk 작업을 수행할 수 있는 무제한적인 권한을 제공합니다.  
다음 정책은 이러한 기능을 제한하고 권한이 없는 사용자의 Elastic Beanstalk 프로덕션 환경 생성 권한을 거부합니다. 이와 관련하여 정책은 요청이 `gamma` 또는 `prod` 값 중 하나와 함께 `stage`라는 태그를 지정하는 경우 `CreateEnvironment` 작업을 거부합니다. 또한 정책은 이러한 동일한 태그 값을 포함하거나 `stage` 태그를 완전하게 제거하기 위한 태그 수정 작업을 허용하지 않음으로써 이러한 권한이 없는 사용자가 프로덕션 환경의 단계를 변경하지 못하도록 합니다. 고객의 관리자는 권한이 없는 IAM 사용자에게 관리형 사용자 정책 이외에 이 IAM 정책도 연결해야 합니다.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "elasticbeanstalk:CreateEnvironment",
        "elasticbeanstalk:AddTags"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/stage": ["gamma", "prod"]
        }
      }
    },
    {
      "Effect": "Deny",
      "Action": [
        "elasticbeanstalk:RemoveTags"
      ],
      "Resource": "*",
      "Condition": {
        "ForAnyValue:StringEquals": {
          "aws:TagKeys": ["stage"]
        }
      }
    }
  ]
}
```

**Example 2: 리소스 태그 기반 작업 제한**  <a name="example_policy_tags.deny_by_resource_tag"></a>
Elastic Beanstalk **AdministratorAccess-AWSElasticBeanstalk** 관리형 사용자 정책이 사용자에게 모든 Elastic Beanstalk 관리형 리소스에 대해 모든 Elastic Beanstalk 작업을 수행할 수 있는 무제한적인 권한을 제공합니다.  
다음 정책은 이러한 기능을 제한하고 권한이 없는 사용자의 Elastic Beanstalk 프로덕션 환경에 대한 작업 수행 권한을 거부합니다. 이와 관련하여 정책은 환경이 `gamma` 또는 `prod` 값 중 하나와 함께 `stage`라는 태그를 포함하는 경우 특정 작업을 거부합니다. 고객의 관리자는 권한이 없는 IAM 사용자에게 관리형 사용자 정책 이외에 이 IAM 정책도 연결해야 합니다.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Deny",
      "Action": [
        "elasticbeanstalk:AddTags",
        "elasticbeanstalk:RemoveTags",
        "elasticbeanstalk:DescribeEnvironments",
        "elasticbeanstalk:TerminateEnvironment",
        "elasticbeanstalk:UpdateEnvironment",
        "elasticbeanstalk:ListTagsForResource"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/stage": ["gamma", "prod"]
        }
      }
    }
  ]
}
```

**Example 3: 요청의 태그 기반 작업 허용**  <a name="example_policy_tags.allow_by_request_tag"></a>
다음 정책은 사용자에게 Elastic Beanstalk 개발 애플리케이션을 생성할 수 있는 권한을 부여합니다.  
이와 관련하여 정책은 요청이 `development` 값과 함께 `stage`라는 태그를 지정하는 경우 `CreateApplication` 및 `AddTags` 작업을 허용합니다. `aws:TagKeys` 조건은 사용자가 다른 태그 키를 추가할 수 없도록 합니다. 특히 이 조건은 `stage` 태그 키의 대소문자를 구분합니다. 이 정책은 Elastic Beanstalk **AdministratorAccess-AWSElasticBeanstalk** 관리형 사용자 정책이 연결되지 않은 IAM 사용자에 유용합니다. 이 관리형 정책은 사용자에게 모든 Elastic Beanstalk 관리형 리소스에 대해 모든 Elastic Beanstalk 작업을 수행할 수 있는 무제한적인 권한을 제공합니다.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "elasticbeanstalk:CreateApplication",
        "elasticbeanstalk:AddTags"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:RequestTag/stage": "development"
        },
        "ForAllValues:StringEquals": {
          "aws:TagKeys": ["stage"]
        }
      }
    }
  ]
}
```

**Example 4: 리소스 태그 기반 작업 허용**  <a name="example_policy_tags.allow_by_resource_tag"></a>
다음 정책은 사용자에게 Elastic Beanstalk 개발 애플리케이션에서 작업을 수행하고 관련 정보를 가져올 수 있는 권한을 부여합니다.  
이와 관련하여 정책은 애플리케이션이 `development` 값과 함께 `stage`라는 태그를 포함하는 경우 특정 작업을 허용합니다. `aws:TagKeys` 조건은 사용자가 다른 태그 키를 추가할 수 없도록 합니다. 특히 이 조건은 `stage` 태그 키의 대소문자를 구분합니다. 이 정책은 Elastic Beanstalk **AdministratorAccess-AWSElasticBeanstalk** 관리형 사용자 정책이 연결되지 않은 IAM 사용자에 유용합니다. 이 관리형 정책은 사용자에게 모든 Elastic Beanstalk 관리형 리소스에 대해 모든 Elastic Beanstalk 작업을 수행할 수 있는 무제한적인 권한을 제공합니다.    
****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "elasticbeanstalk:UpdateApplication",
        "elasticbeanstalk:DeleteApplication",
        "elasticbeanstalk:DescribeApplications"
      ],
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/stage": "development"
        },
        "ForAllValues:StringEquals": {
          "aws:TagKeys": ["stage"]
        }
      }
    }
  ]
}
```