首页 > 解决方案 > AssumeRole 受信任实体到特定的 lambda 函数

问题描述

我有一个需要很多权限的 lambda,因为它会自动杀死临时资源,所以我分配了 managed policy AdministratorAccess。我想要做的是将这个角色限制为只假设一个特定的 lambda 函数。我尝试在 上设置条件sts:AssumeRole,但是在尝试将此角色分配给 lambda 时出现错误:

您的角色尚未准备好,或无法由 Lambda 担任。请等待一分钟,然后重试。

也许相关;lambda 和角色 CF 堆栈与使用角色的 CodePipeline 一起部署CICD-Pipeline。有人做过吗?这是我到目前为止所拥有的:

  LambdaExecutionRole:
    Type: AWS::IAM::Role
    Properties:
      RoleName: common-delete-stack-Role
      AssumeRolePolicyDocument:
        Version: '2012-10-17'
        Statement:
          - Effect: Allow
            Principal:
              Service: [lambda.amazonaws.com]
            Action: [sts:AssumeRole]
            Condition:
              StringEquals:
                aws:SourceArn: !Sub arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:common-delete-stack
      ManagedPolicyArns: [arn:aws:iam::aws:policy/AdministratorAccess]

我也尝试过这个条件,结果相同。

StringEquals:
  lambda:FunctionArn: !Sub arn:aws:lambda:${AWS::Region}:${AWS::AccountId}:function:common-delete-stack

标签: amazon-web-servicesaws-lambdaamazon-cloudformationamazon-ami

解决方案


推荐阅读