Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 如何使用IAM角色通过aws CLI运行aws nuke_Amazon Web Services - Fatal编程技术网

Amazon web services 如何使用IAM角色通过aws CLI运行aws nuke

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 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:
    - "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别名解决了问题?此问题似乎已解决。您的问题已解决。