工作流的 IAM 策略 - Amazon Transfer Family
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

工作流的 IAM 策略

向服务器添加工作流时,必须选择执行角色。服务器在执行工作流时使用此角色。如果角色没有适当的权限,则Amazon Transfer Family无法运行工作流程。

本部分介绍了可用于执行工作流程的一组可能的Amazon Identity and Access Management (IAM) 权限。本主题的后续部分中包含了其他示例。

为工作流创建执行角色
  1. 创建新的 IAM 角色,并将Amazon托管策略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:${FunctionName}" ] }, { "Sid": "Tag", "Effect": "Allow", "Action": [ "s3:PutObjectTagging", "s3:PutObjectVersionTagging" ], "Resource": [ "arn:aws:s3:::DOC-EXAMPLE-BUCKET/*" ] } ] }
  3. 保存此角色并在向服务器添加工作流时将其指定为执行角色。

    注意

    在构建 IAM 角色时,Amazon建议您尽可能限制工作流程对资源的访问权限。

工作流程信任关系

工作流程执行角色还需要与建立信任关系transfer.amazonaws.com。要建立的信任关系Amazon Transfer Family,请参阅建立信任关系

在建立信任关系的同时,你也可以采取措施避免混乱的副手问题。有关此问题的描述以及如何避免该问题的示例,请参阅防止跨服务混淆代理

执行角色示例:复制和标记

如果您的工作流程将对象复制到不同的 Amazon S3 位置并标记复制的对象,请使用以下 IAM 策略。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CopyRead", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:GetObjectTagging" ], "Resource": "arn:aws:s3:::${SourceBucketName}/${ObjectName}" }, { "Sid": "CopyWrite", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:PutObjectTagging" ], "Resource": "arn:aws:s3:::${DestinationBucketName}/${ObjectName}" }, { "Sid": "CopyList", "Effect": "Allow", "Action": "s3:ListBucket", "Resource": [ "arn:aws:s3:::${SourceBucketName}", "arn:aws:s3:::${DestinationBucketName}" ] }, { "Sid": "Tag", "Effect": "Allow", "Action": [ "s3:PutObjectTagging", "s3:PutObjectVersionTagging" ], "Resource": "arn:aws:s3:::${DestinationBucketName}/${ObjectName}", "Condition": { "StringEquals": { "s3:RequestObjectTag/Archive": "yes" } } } ] }

执行角色示例:运行函数并删除

在此示例中,您有一个调用Amazon Lambda函数的工作流程。如果工作流程删除了上传的文件,并且有一个异常处理程序步骤来处理上一步中失败的工作流程,请使用以下 IAM 策略。将user input placeholder每个信息。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Delete", "Effect": "Allow", "Action": [ "s3:DeleteObject" ], "Resource": "arn:aws:s3:::${BucketName}/${ObjectName}" }, { "Sid": "Custom", "Effect": "Allow", "Action": [ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:region:account-id:function:${FunctionName}" ] } ] }