本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
工作流的 IAM 策略
向服务器添加工作流时,必须选择执行角色。服务器在执行工作流时使用此角色。如果角色没有适当的权限,则Amazon Transfer Family无法运行工作流程。
本部分介绍了可用于执行工作流程的一组可能的Amazon Identity and Access Management (IAM) 权限。本主题的后续部分中包含了其他示例。
为工作流创建执行角色
-
创建新的 IAM 角色,并将Amazon托管策略
AWSTransferFullAccess
添加到该角色。有关创建新 IAM 角色的更多信息,请参阅创建 IAM 角色和策略。 -
使用以下权限创建另一个策略,并将其附加到您的角色。将
每个信息。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
/*" ] } ] } -
保存此角色并在向服务器添加工作流时将其指定为执行角色。
注意 在构建 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}" ] } ] }