AWS CDK - Role.addManagedPolicy 不适用于导入的角色

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

我有一个用例,我需要单独创建角色和策略,然后将策略添加到角色。

我分别使用 fromRoleArn、fromManagedPolicyArn 导入现有角色和策略,并尝试使用 Role.addManagedPolicy 方法将策略添加到 Role。

我没有看到该政策被添加到角色中。代码运行成功,但策略未添加到角色中。

这是一个错误吗?任何人都可以为我的用例建议替代解决方案

amazon-web-services aws-cdk
1个回答
0
投票

这不是一个错误。 CDK 无法更改导入的资源,因此此操作将是空操作。

来自文档

虽然您可以在任何地方使用导入的资源,但您无法修改导入的资源。例如,在导入的 s3.Bucket 上调用 addToResourcePolicy(Python:add_to_resource_policy)不会执行任何操作。

另一种方法是使用 CDK 创建角色。

IAM 角色在这里有点“例外”,因为您可以修改其策略并添加内联语句。这就是导入时

mutable
属性的用途。

但这不适用于附加托管策略,因此在这种情况下对您没有帮助。

ImportedRole.addManagedPolicy
是一个空操作:

https://github.com/aws/aws-cdk/blob/bb90b4ccdbddbbce08a7d6f1b7d7e625263a70cf/packages/aws-cdk-lib/aws-iam/lib/private/imported-role.ts#L77-L79

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