IAM 工作流程的政策 - AWS Transfer Family

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

IAM 工作流程的政策

當您將工作流程新增至伺服器時,必須選取執行角色。伺服器在執行工作流程時使用此角色。如果角色沒有適當的許可, AWS Transfer Family 則無法執行工作流程。

本節描述一組可用於執行工作流程的 AWS Identity and Access Management (IAM) 許可。本主題稍後會說明其他範例。

注意

如果您的 Amazon S3 檔案有標籤,您需要將一或兩個許可新增至IAM政策。

  • s3:GetObjectTagging 為未進行版本控制的 Amazon S3 檔案新增 。

  • s3:GetObjectVersionTagging 為版本化的 Amazon S3 檔案新增 。

為您的工作流程建立執行角色
  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" ] } ] }