工作流程的 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" ] } ] }