IAM 워크플로 정책 - AWS Transfer Family

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

IAM 워크플로 정책

서버에 워크플로를 추가할 때는 실행 역할을 선택해야 합니다. 서버는 워크플로를 실행할 때 이 역할을 사용합니다. 역할에 적절한 권한이 없는 경우 워크플로를 실행할 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 역할 및 정책 생성.

  2. 다음 권한이 있는 다른 정책을 생성하여 이를 역할에 연결합니다. 각 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:::DOC-EXAMPLE-BUCKET" ] }, { "Sid": "AllObjectActions", "Effect": "Allow", "Action": "s3:*Object", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ] }, { "Sid": "GetObjectVersion", "Effect": "Allow", "Action": "s3:GetObjectVersion", "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ] }, { "Sid": "Custom", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:region:account-id:function:function-name" ] }, { "Sid": "Tag", "Effect": "Allow", "Action": [ "s3:PutObjectTagging", "s3:PutObjectVersionTagging" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ] } ] }
  3. 이 역할을 저장하고 서버에 워크플로를 추가할 때 실행 역할로 지정하세요.

    참고

    IAM 역할을 구성할 때 워크플로에 대해 가능한 한 리소스에 대한 액세스를 제한하도록 AWS 권장합니다.

워크플로 신뢰 관계

워크플로 실행 역할에는 transfer.amazonaws.com과의 신뢰 관계도 필요합니다. AWS Transfer Family에 대한 신뢰 관계를 설정하려면 신뢰 관계를 구축하기 위해을 참조하세요.

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

실행 역할 예시: 복호화, 복사, 태그 지정

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

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

실행 역할 예시: 함수 실행 및 삭제

이 예제에서는 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:region:account-id:function:function-name" ] } ] }