IAM角色的TrustRelationship如何指定多地域使用?
How to specify TrustRelationship of IAM role that will be used in many regions?
我正在创建一个将创建 IAM 角色的 CDK 堆栈。由于角色是全局的,因此只会部署一次。第二个堆栈将通过找到它 Role.fromRoleArn(...)
来使用这个角色。这个角色将由步骤功能承担。我在角色堆栈中有以下 CDK 构造:
assumedBy: new ServicePrincipal('states.amazonaws.com')
。当我查看生成的角色时,我在信任关系选项卡上看到以下内容:The identity provider(s) states.eu-north-1.amazonaws.com
。添加了部署角色堆栈的区域 (eu-north-1),但我没有指定它。当我使用 IAM 控制台创建角色时,没有添加区域 The identity provider(s) states.amazonaws.com
.
我的目标是无论在哪个区域部署第二个堆栈都使用单一角色,并且每个区域中的状态功能都可以承担该角色。
已编辑:
相同的代码添加了信任关系 lambda.amazonaws.com
和 apigateway.amazonaws.com
。对于那些关系区域未添加。
如何在创建角色时从 AWS 服务中去掉区域?
为了最小权限原则,目前似乎不支持,请参阅https://github.com/aws/aws-cdk/issues/2999。您可以尝试使用您的用例打开新功能请求。
但是,您仍然可以使用低级别 Cfn
类 来实现您想要的 - https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.CfnRole.html#class-cfnrole-construct
我正在创建一个将创建 IAM 角色的 CDK 堆栈。由于角色是全局的,因此只会部署一次。第二个堆栈将通过找到它 Role.fromRoleArn(...)
来使用这个角色。这个角色将由步骤功能承担。我在角色堆栈中有以下 CDK 构造:
assumedBy: new ServicePrincipal('states.amazonaws.com')
。当我查看生成的角色时,我在信任关系选项卡上看到以下内容:The identity provider(s) states.eu-north-1.amazonaws.com
。添加了部署角色堆栈的区域 (eu-north-1),但我没有指定它。当我使用 IAM 控制台创建角色时,没有添加区域 The identity provider(s) states.amazonaws.com
.
我的目标是无论在哪个区域部署第二个堆栈都使用单一角色,并且每个区域中的状态功能都可以承担该角色。
已编辑:
相同的代码添加了信任关系 lambda.amazonaws.com
和 apigateway.amazonaws.com
。对于那些关系区域未添加。
如何在创建角色时从 AWS 服务中去掉区域?
为了最小权限原则,目前似乎不支持,请参阅https://github.com/aws/aws-cdk/issues/2999。您可以尝试使用您的用例打开新功能请求。
但是,您仍然可以使用低级别 Cfn
类 来实现您想要的 - https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-iam.CfnRole.html#class-cfnrole-construct