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

AWS CDK - Role.addManagedPolicy does not work for imported roles

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

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

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

这是一个错误吗?。谁能为我的用例提出替代解决方案

这不是错误。 CDK 无法更改导入的资源,因此此操作将是 no-op.

来自docs

Although you can use an imported resource anywhere, you cannot modify the imported resource. For example, calling addToResourcePolicy (Python: add_to_resource_policy) on an imported s3.Bucket does nothing.

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

IAM 角色在这里是一种“例外”,您可以修改其策略并内联添加语句。这就是 mutable 道具在导入时的用途。

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