

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

# 워크플로에 대한 IAM 정책
<a name="workflow-execution-role"></a>

서버에 워크플로를 추가할 때는 실행 역할을 선택해야 합니다. 서버는 워크플로를 실행할 때 이 역할을 사용합니다. 역할에 적절한 권한이 없는 경우 워크플로를 실행할 AWS Transfer Family 수 없습니다.

이 섹션에서는 워크플로를 실행하는 데 사용할 수 있는 한 가지 AWS Identity and Access Management (IAM) 권한 세트에 대해 설명합니다. 다른 예는 이 주제 후반부에서 설명합니다.

**참고**  
Amazon S3 파일에 태그가 있는 경우 IAM 정책에 하나 또는 두 개의 권한을 추가해야 합니다.  
버전이 지정되지 않은 Amazon S3 파일에 `s3:GetObjectTagging`을 추가합니다.
버전이 지정된 Amazon S3 파일에 `s3:GetObjectVersionTagging`을 추가합니다.

**워크플로에 대한 실행 역할을 만들려면**

1. 새 IAM 역할을 생성하고 AWS 관리형 정책을 `AWSTransferFullAccess` 역할에 추가합니다. 새 IAM 역할을 생성하는 방법에 대한 자세한 내용은 [IAM 역할 및 정책 생성](requirements-roles.md)을 참조하세요.

1. 다음 권한이 있는 다른 정책을 생성하여 이를 역할에 연결합니다. 각 `user input placeholder`를 사용자의 정보로 바꿉니다.  
****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "ConsoleAccess",
               "Effect": "Allow",
               "Action": "s3:GetBucketLocation",
               "Resource": "*"
           },
           {
               "Sid": "ListObjectsInBucket",
               "Effect": "Allow",
               "Action": "s3:ListBucket",
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket"
               ]
           },
           {
               "Sid": "AllObjectActions",
               "Effect": "Allow",
               "Action": "s3:*Object",
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket/*"
               ]
           },
           {
               "Sid": "GetObjectVersion",
               "Effect": "Allow",
               "Action": "s3:GetObjectVersion",
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket/*"
               ]
           },
           {
               "Sid": "Custom",
               "Effect": "Allow",
               "Action": [
                   "lambda:InvokeFunction"
               ],
               "Resource": [
                   "arn:aws:lambda:us-east-1:123456789012:function:function-name"
               ]
           },
           {
               "Sid": "Tag",
               "Effect": "Allow",
               "Action": [
                   "s3:PutObjectTagging",
                   "s3:PutObjectVersionTagging"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-bucket/*"
               ]
           }
       ]
   }
   ```

1. 이 역할을 저장하고 서버에 워크플로를 추가할 때 실행 역할로 지정하세요.
**참고**  
IAM 역할을 구성할 때는 워크플로에 대해 가능한 한 리소스에 대한 액세스를 제한할 것을 AWS 권장합니다.

## 워크플로 신뢰 관계
<a name="workflows-trust"></a>

워크플로 실행 역할에는 `transfer.amazonaws.com`과의 신뢰 관계도 필요합니다. AWS Transfer Family에 대한 신뢰 관계를 설정하려면 [신뢰 관계를 구축하기 위해](requirements-roles.md#establish-trust-transfer)을 참조하세요.

신뢰 관계를 구축하는 동시에 *혼란스러운 대리인* 문제를 피하도록 조치를 취할 수도 있습니다. 이 문제에 대한 설명과 이를 방지하는 방법의 예는 [교차 서비스 혼동된 대리자 방지](confused-deputy.md)을 참조하세요.

## 실행 역할 예시: 복호화, 복사, 태그 지정
<a name="example-workflow-role-copy-tag"></a>

태그 지정, 복사 및 복호화 단계가 포함된 워크플로가 있는 경우 다음 IAM 정책을 사용할 수 있습니다. 각 `user input placeholder`를 사용자의 정보로 바꿉니다.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "CopyRead",
            "Effect": "Allow",
            "Action": [
                "s3:GetObject",
                "s3:GetObjectTagging",
                "s3:GetObjectVersionTagging"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-source-bucket/*"
        },
        {
            "Sid": "CopyWrite",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:PutObjectTagging"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
        },
        {
            "Sid": "CopyList",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-source-bucket",
                "arn:aws:s3:::amzn-s3-demo-destination-bucket"
            ]
        },
        {
            "Sid": "Tag",
            "Effect": "Allow",
            "Action": [
                "s3:PutObjectTagging",
                "s3:PutObjectVersionTagging"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*",
            "Condition": {
                "StringEquals": {
                    "s3:RequestObjectTag/Archive": "yes"
                }
            }
        },
        {
            "Sid": "ListBucket",
            "Effect": "Allow",
            "Action": "s3:ListBucket",
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-destination-bucket"
            ]
        },
        {
            "Sid": "HomeDirObjectAccess",
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObjectVersion",
                "s3:DeleteObject",
                "s3:GetObjectVersion"
            ],
            "Resource": "arn:aws:s3:::amzn-s3-demo-destination-bucket/*"
        },
        {
            "Sid": "Decrypt",
            "Effect": "Allow",
            "Action": [
                "secretsmanager:GetSecretValue"
            ],
            "Resource": "arn:aws:secretsmanager:us-east-1:123456789012:secret:aws/transfer/*"
        }
    ]
}
```

## 실행 역할 예시: 함수 실행 및 삭제
<a name="example-workflow-role-custom-delete"></a>

이 예제에는 AWS Lambda 함수를 호출하는 워크플로가 있습니다. 워크플로에서 업로드된 파일을 삭제하고 이전 단계에서 실패한 워크플로 실행에 대해 조치를 취하는 예외 처리 단계가 있는 경우 다음 IAM 정책을 사용합니다. 각 `user input placeholder`를 사용자의 정보로 바꿉니다.

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "Delete",
            "Effect": "Allow",
            "Action": [
                "s3:DeleteObject",
                "s3:DeleteObjectVersion"
            ],
            "Resource": "arn:aws:s3:::bucket-name"
        },
        {
            "Sid": "Custom",
            "Effect": "Allow",
            "Action": [
                "lambda:InvokeFunction"
            ],
            "Resource": [
                "arn:aws:lambda:us-east-1:123456789012:function:function-name"
            ]
        }
    ]
}
```