

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

# AWS Transfer Family 태그 기반 정책 예제
<a name="security_iam_tag-based-policy-examples"></a>

다음은 태그를 기반으로 AWS Transfer Family 리소스에 대한 액세스를 제어하는 방법의 예입니다.

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

IAM 정책의 조건은 AWS Transfer Family 리소스에 대한 권한을 지정하는 데 사용하는 구문의 일부입니다. AWS Transfer Family 리소스의 태그를 기반으로 리소스(예: 사용자, 서버, 역할 및 기타 엔터티)에 대한 액세스를 제어할 수 있습니다. 태그는 키/값 쌍입니다. 리소스 태그 지정에 대한 자세한 내용은의 [AWS 리소스 태그 지정](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)을 참조하세요*AWS 일반 참조*.

에서 AWS Transfer Family리소스에는 태그가 있을 수 있으며 일부 작업에는 태그가 포함될 수 있습니다. IAM 정책을 생성하면 태그 조건 키를 사용하여 다음을 통제할 수 있습니다.
+  AWS Transfer Family 리소스에 있는 태그를 기반으로 리소스에 대해 작업을 수행할 수 있는 사용자입니다.
+ 어떤 태그가 작업의 요청에서 전달될 수 있는지 통제합니다.
+ 요청에서 특정 키를 사용할 수 있는지 여부를 통제합니다.

태그 기반 액세스 통제를 사용하면 API 수준에서보다 더 세밀한 통제를 적용할 수 있습니다. 또한 리소스 기반 액세스 통제를 사용하는 것보다 더 동적인 통제를 적용할 수 있습니다. 요청에서 제공된 태그(요청 태그)를 기반으로 작업을 허용하거나 거부하는 IAM 정책을 생성할 수 있습니다. 작업 중인 리소스에 대한 태그(리소스 태그)를 기반으로 IAM 정책을 생성할 수 있습니다. 일반적으로 리소스 태그는 리소스에 이미 있는 태그용이고, 요청 태그는 리소스에 태그를 추가하거나 리소스에서 태그를 제거할 때 사용됩니다.

태그 조건 키의 전체 구문 및 의미는 *IAM 사용자 가이드*의 [AWS 리소스 태그를 사용한 액세스 통제](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_tags.html)를 참조하세요. API Gateway로 IAM 정책을 지정하는 방법에 대한 자세한 설명은 *API Gateway 개발자 가이드*의 [IAM 권한으로 API에 대한 액세스 통제](https://docs.aws.amazon.com/apigateway/latest/developerguide/permissions.html)를 참조하세요.

### 예 1: 리소스 태그 기반 작업 거부
<a name="transfer-deny-actions-resource-tag"></a>

태그를 기반으로 리소스에서 수행할 작업을 거부할 수 있습니다. 다음 예 정책은 사용자 또는 서버 리소스에 키 `stage`와(과) 값 `prod`이(가) 태그 지정된 경우 `TagResource`, `UntagResource`, `StartServer`, `StopServer`, `DescribeServer`, `DescribeUser` 작업을 거부합니다. 

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Deny",
            "Action": [
                "transfer:TagResource",
                "transfer:UntagResource",
                "transfer:StartServer",
                "transfer:StopServer",
                "transfer:DescribeServer",
                "transfer:DescribeUser"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/stage": "prod"
                }
            }
        }
    ]
}
```

### 예 2: 리소스 태그 기반 작업 허용
<a name="transfer-allow-actions-resource-tag"></a>

태그를 기반으로 리소스에서 작업을 수행하도록 허용할 수 있습니다. 다음 예 정책은 사용자 또는 서버 리소스에 키 `stage`와(과) 값 `prod`이(가) 태그 지정된 경우 `TagResource`, `UntagResource`, `StartServer`, `StopServer`, `DescribeServer`, `DescribeUser` 작업을 거부합니다. 

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "transfer:TagResource",
                "transfer:UntagResource",
                "transfer:StartServer",
                "transfer:StopServer",
                "transfer:DescribeServer",
                "transfer:DescribeUser"
            ],
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/stage": "prod"
                }
            }
        }
    ]
}
```

### 예 3: 요청 태그에 따른 사용자 또는 서버 생성 거부
<a name="transfer-deny-server-creation-tag"></a>

다음의 정책 예에는 명령문이 2개입니다. 첫 번째 명령문은 태그의 코스트 센터 키에 값이 없는 경우 모든 리소스에 대한 `CreateServer` 작업을 거부합니다.

두 번째 명령문은 태그의 코스트 센터 키에 1, 2 또는 3을 제외한 다른 값이 포함된 경우 `CreateServer` 작업을 거부합니다.

**참고**  
이 정책은 `1`, `2`, 또는 `3` 라는 `costcenter` 키와 값을 포함하는 리소스를 만들거나 삭제할 수 있도록 허용합니다.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        { 
            "Effect": "Deny",
            "Action": [
                "transfer:CreateServer"
            ],
            "Resource": [
                "*"
            ],
            "Condition": {
                "Null":  {
                    "aws:RequestTag/costcenter": "true"
                }
            }
        },
        {
            "Effect": "Deny",
            "Action": "transfer:CreateServer",
            "Resource": [
                "*"
            ],
            "Condition": {
                "ForAnyValue:StringNotEquals": {
                    "aws:RequestTag/costcenter": [
                        "1",
                        "2",
                        "3"
                    ]
                }
            }
        }           
    ]
}
```