amazon-web-services - 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
解决方案
推荐阅读
- c - 接受一个字符串并“过滤掉”所有非数字字符以及C中除第一个点之外的所有字符的函数?
- node.js - 安装 npm 会删除 eosio 包,反之亦然?
- matlab - Matlab eig 没有输出已知的输出向量
- sql - sql如何在条件中返回列表
- java - 单击输入时如何解决扫描仪错误
- symfony - 如何将 api-platform {id} 更改为其他名称?
- java - 在java中为两个不使用继承的类创建通用方法
- arrays - 如何在 Kotlin 中将对象、布尔值和长值添加到数组中?
- django - Heroku CI 和/或 Travis CI
- c++ - C ++如何使类函数成为不同命名空间中另一个类的朋友