gpt4 book ai didi

amazon-iam - 如何在命令行中一条命令删除多个版本的iam policy?

转载 作者:行者123 更新时间:2023-12-05 02:06:40 27 4
gpt4 key购买 nike

我正在尝试使用多个版本的命令行删除策略,如下所示:

function iam-list-versions () {
aws iam list-policy-versions --query "Versions[].VersionId" --policy-arn $1 --output text
}

function iam-delete-policy-versions () {
iam-list-versions $1 | xargs -n 1 -I{} aws iam delete-policy-version --policy-arn $1 --version-id {}
}

function iam-delete-policy () {
iam-delete-policy-versions $1
aws iam delete-policy --policy-arn $1
}

然后运行 ​​iam-delete-policy arn:aws:iam::123456789012:policy/...但我不断收到错误:

An error occurred (DeleteConflict) when calling the DeletePolicyVersion operation: Cannot delete the default version of a policy.

An error occurred (DeleteConflict) when calling the DeletePolicy operation: This policy has more than one version. Before you delete a policy, you must delete the policy's versions. The default version is deleted with the policy.

看起来我的 iam-delete-policy-versions 功能不起作用。希望他们只是添加一个 --force 标志。

最佳答案

错误消息提示:

  • 您不能删除策略的默认版本。相反,删除策略本身。
  • 当存在多个版本时,您无法删除政策。

我还注意到 list-policy-versions 返回一个名为 IsDefaultVersion 的字段,指示策略是否为默认版本。

因此,您需要执行以下操作:

  • 调用 list-policy-versions
  • 对于 IsDefaultVersion = False 的每个响应,调用 delete-policy-version
  • 删除所有版本后,为每个策略调用delete-policy(或者,为每个IsDefaultVersion = True)

这在 Python 脚本中可能会更容易。

关于amazon-iam - 如何在命令行中一条命令删除多个版本的iam policy?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62593317/

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