本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
为您的状态机创建 IAM 角色
Amazon Step Functions 可以执行代码和访问 Amazon 资源(如调用 Amazon Lambda 函数)。为了保持安全性,您必须使用 IAM 角色为 Step Functions 授予对这些资源的访问权限。
本指南Step Functions 教程中的使您可以利用自动生成的 IAM 角色,这些角色对您创建状态机的Amazon区域有效。但是,您可以为状态机创建自己的 IAM 角色。
在创建供状态机使用的 IAM 策略时,该策略应包括您希望状态机承担的权限。您可以使用现有的Amazon托管策略作为示例,也可以从头开始创建满足您特定需求的自定义策略。有关更多信息,请参阅 IAM 用户指南中的创建 IAM 策略
要为状态机创建自己的 IAM 角色,请按照本节中的步骤操作。
在此示例中,您创建了一个有权调用 Lambda 函数的 IAM 角色。
为 Step Functions 创建角色
-
登录 IA M 控制台
,然后选择角色、创建角色。 -
在 “选择可信实体” 页面的 “Amazon服务” 下,从列表中选择 Step Functions,然后选择 “下一步:权限”。
-
在 Attached permissions policy 页面上,选择 Next: Review。
-
在 “审阅” 页面上,输入
StepFunctionsLambdaRole
“角色名称”,然后选择 “创建角色”。IAM 角色显示在角色列表中。
有关 IAM 权限和策略的更多信息,请参阅 IAM 用户指南中的访问管理。
防止跨服务混淆副手问题
混淆代理问题是一个安全性问题,即不具有操作执行权限的实体可能会迫使具有更高权限的实体执行该操作。在 Amazon 中,跨服务模拟可能会导致混淆代理问题。一个服务(呼叫服务) 调用另一项服务(所谓的服务)时,可能会发生跨服务模拟。这种类型的模仿可能发生在跨账户和跨服务中。可以操纵调用服务以使用其权限对另一个客户的资源进行操作,否则该服务不应有访问权限。
为了防止众议员感到困惑,我们Amazon提供了一些工具,这些工具可帮助您保护所有服务的数据,这些服务委托人已被授予访问您账户中资源的权限。本节重点介绍针对的跨服务混淆代理预防Amazon Step Functions;但是,您可以在 IAM 用户指南的混乱副手问题部分中了解有关此主题的更多信息。
我们建议在资源策略中使用aws:SourceArn
和aws:SourceAccount
全局条件上下文密钥来限制授Step Functions予其他服务访问您的资源的权限。如果您只希望将一个资源与跨服务访问相关联,请使用 aws:SourceArn
。如果您想允许该账户中的任何资源与跨服务使用操作相关联,请使用 aws:SourceAccount
。
防范混淆代理问题最有效的方法是使用 aws:SourceArn
全局条件上下文键和资源的完整 ARN。如果您不知道资源的完整 ARN,或者要指定多个资源,请使用带有通配符 (*
) 的aws:SourceArn
全局上下文条件密钥来表示 ARN 的未知部分。例如,arn:aws:states:*:111122223333:*
。
以下是可信策略的示例,它显示了如何使用aws:SourceArn
和使用 Step Funct aws:SourceAccount
ions 来防止出现混乱的副手问题。
{ "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Principal":{ "Service":[ "states.amazonaws.com" ] }, "Action":"sts:AssumeRole", "Condition":{ "ArnLike":{ "aws:SourceArn":"arn:aws:states:us-east-1:111122223333:stateMachine:*" }, "StringEquals":{ "aws:SourceAccount":"111122223333" } } } ] }
附加内联策略
Step Functions 可以在某种Task
状态下直接控制其他服务。附加内联策略以允许 Step Functions 访问您需要控制的服务的 API 操作。
-
打开 IAM 控制台
,选择角色,搜索您的 Step Functions 角色,然后选择该角色。 -
选择添加内联策略。
-
使用可视化编辑器或 JSON 选项卡为您的角色创建策略。
有关 Amazon Step Functions 如何控制其他 Amazon 服务的更多信息,请参阅将 Amazon Step Functions 与其他服务一起使用。
注意
有关由 Step Functions 控制台创建的 IAM 策略的示例,请参阅集成服务的 IAM 政策。