Amazon web services 如何使用IAM角色通过aws CLI运行aws nuke
我能够使用aws CLI在一个帐户上运行aws nuke。现在,我正在尝试使用IAM角色删除所有资源 我正在尝试运行命令Amazon web services 如何使用IAM角色通过aws CLI运行aws nuke,amazon-web-services,Amazon Web Services,我能够使用aws CLI在一个帐户上运行aws nuke。现在,我正在尝试使用IAM角色删除所有资源 我正在尝试运行命令 aws-nuke -c config/nuke-config.yaml config/nuke-config.yaml --- regions: - "global" # This is for all global resource types e.g. IAM account-blacklist
aws-nuke -c config/nuke-config.yaml
config/nuke-config.yaml
---
regions:
- "global" # This is for all global resource types e.g. IAM
account-blacklist:
- "999999999999" # production
# optional: restrict nuking to these resources
resource-types:
targets:
- S3Bucket
- S3Object
- EC2Instance
- CloudFormationStack
accounts:
"555133742123" #IAM alias is "test-account":
出现以下错误:
错误:指定的帐户没有别名。出于安全原因,您需要指定帐户别名。您的生产账户应包含术语“产品”
您可以在下面的屏幕截图中看到错误消息
我还在另一个帐户上运行aws nuke,它能够识别IAM别名,没有任何问题。这里缺少了什么?我可以查看错误的来源,它显示了错误 从这里我将看到对ValidateAccount()的调用。相关电话正在接通
一旦缩小问题和错误消息的范围,我就会找出Account.Aliases()为空的原因。在AWS中,“帐户”似乎是一种资源类型。因此,我将重现调用以获取帐户资源,例如,使用boto3或AWS CLI。然后我会确认那里也是空的。然后我想知道如何设置别名来检查帐户别名是否为空: 您可以运行此AWS CLI: aws iam列出帐户别名 如果为空列表,则表示缺少IAM别名 然后,您需要将IAM别名分配给需要核发的AWS帐户。 使用您可以使用此AWS CLI: aws sts获取呼叫者身份 这将让您知道使用CLI登录到哪个帐户 将IAM别名分配给AWS帐户后,应该可以解决您看到的错误 错误:指定的帐户没有别名。出于安全原因,您需要指定帐户别名。您的生产帐户应该包含术语“prod”。我在讨论中找到了aws nuke的作者,还有另一个 免责声明:以下是aws nuke作者所说的: 这不是YAML文件的配置问题,而是AWS帐户中缺少的设置 AWS是AWS帐户的全局唯一名称。aws nuke要求将其作为安全防护,因此不会意外破坏生产帐户。其思想是每个生产帐户至少包含子字符串
prod
按照以下步骤通过web控制台指定别名,或使用AWS CLI:
aws iam create-account-alias --profile demo --account-alias aws-nuke-test-account-8gmst3`
我看到你的评论部分有一个IAM别名。因此,当您在AWS CLI上运行AWS Nuke时,它应该会提示一个IAM别名。您是否联系过AWS Nuke的作者,了解错误的含义?是的。我也在GitHub Hi上的aws nuke上发表了一篇文章。我从aws nuke的作者那里找到了这篇类似的文章,但这似乎可以通过输入IAM别名来解决。但我只是想让你知道你可以试试这个:很高兴看到你的问题得到了解决。如果帐户别名为空。这意味着IAM帐户别名丢失。很好的发现!图:这是帐户IAM别名的问题。您是否使用IAM别名解决了问题?此问题似乎已解决。您的问题已解决。