gpt4 book ai didi

c# - 删除堆栈时,AWS IAM 角色不会被销毁

转载 作者:行者123 更新时间:2023-12-03 07:38:39 25 4
gpt4 key购买 nike

作为堆栈的一部分,我正在为 Lambda 和两个嵌套堆栈创建 IAM 角色:

public class TestStack : Stack
{

public TestStack(Construct scope, string id, IStackProps props = null) : base(scope, id, props)
{
AddRole();

new NestedStack1(this, "nested-stack1");
new NestedStack2(this, "nested-stack2");
}

private void AddRole()
{
var role = new Role(this, "test-role", new RoleProps
{
AssumedBy = new ServicePrincipal("lambda.amazonaws.com"),
ManagedPolicies = new IManagedPolicy[]
{
ManagedPolicy.FromAwsManagedPolicyName("service-role/AWSLambdaBasicExecutionRole")
},
RoleName = "test-role"
});

role.ApplyRemovalPolicy(RemovalPolicy.DESTROY);
}
}

在两个嵌套堆栈中,我通过以下方式解析 IAM 角色

Role.FromRoleArn(this, "test-role", $"arn:aws:iam::{Account}:role/test-role")

我必须这样做的原因是为了避免循环依赖问题。 lambda 在嵌套堆栈之一中创建,其角色设置为上面解析的角色。该代码有效,但我在角色的删除策略方面遇到了一个小问题。当我在 AWS UI 中删除 TestStack 时,角色删除失败,堆栈删除也失败。看来 RemovalPolicy.DESTROY 没有按预期工作。

当 CDK 被销毁时,我如何自动删除该角色?

更新:我在 CF 事件选项卡中看到以下状态原因:

Cannot delete entity, must delete policies first. (Service:AmazonIdentityManagement; Status Code: 409; Error Code:DeleteConflict;

最佳答案

当我尝试使用“RemovalPolicy.DESTROY”销毁我的 ELB 时,我在 CDK 上遇到了同样的问题。但当我添加“deletion_protection=False”时,它得到了解决,这可能对你有用。

关于c# - 删除堆栈时,AWS IAM 角色不会被销毁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75683431/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com