在 Serverless Framework 中指定资源时,AWS Step Functions 是否会自动更新 IAM 角色权限?

问题描述 投票:0回答:1

我使用无服务器框架和 AWS Step Functions 插件来构建订单结账流程的状态机。在其中一个州,我尝试将消息发布到 Amazon SNS 主题。这是我的 serverless.yml 文件的相关部分:

PrepareOrder:
            Type: Task
            Resource: arn:aws:states:::sqs:sendMessage.waitForTaskToken
            Parameters:
              QueueUrl: !Ref OrdersQueue
              MessageBody:
                Input.$: "$"
                Token.$: "$$.Task.Token" #From the context object
            ResultPath: "$.courierStatus"
            Catch:
              - ErrorEquals: [NoCourierAvailable]
                ResultPath: "$.courierError"
                Next: RefundCustomer
            Next: DispatchOrder
DispatchOrder:
  Type: Task
  Resource: arn:aws:states:::sns:publish
  Parameters:
    TopicArn: "arn:aws:sns:us-east-1:************:NotifyCourier"
    Message.$: "$"
  Next: Dispatched

在此配置中,我将资源指定为 arn:aws:states:::sns:publish,这是 SNS 发布操作的 ARN。

我没有为此状态机显式创建 IAM 角色。但是,当我检查与状态机关联的 IAM 角色时,我发现它具有 sns:Publish 权限。我还注意到,当我更改资源值时,IAM 角色中的权限也会相应更新。


当我在无服务器框架中指定此类资源时,AWS Step Functions 是否会自动创建并更新具有必要权限的 IAM 角色?还是还有其他机制在起作用?

amazon-web-services serverless-framework aws-step-functions serverless-framework-step-functions
1个回答
0
投票

验证这一点的一种方法是检查生成的 cloudformation 模板文件。

serverless package --stage dev --package ./tmp

尝试更改

Resource
值并再次运行命令。

cloudformation-template-update-stack.json
文件夹下查找
tmp

© www.soinside.com 2019 - 2024. All rights reserved.