首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用IAM角色假设通过AWS CLI运行AWS

如何使用IAM角色假设通过AWS CLI运行AWS
EN

Stack Overflow用户
提问于 2020-12-18 01:28:25
回答 3查看 866关注 0票数 2

我可以使用AWS在一个帐户上运行AWS。现在,我尝试运行aws-nuke来删除所有资源,使用IAM角色假设

我在试着运行命令

代码语言:javascript
复制
 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":

得到了这个错误:

错误:指定的帐户没有别名。出于安全考虑,您需要指定一个帐户别名。你们的生产帐户应该包含“prod”这个词。

您可以在下面的屏幕截图中看到错误消息。

我也运行aws在另一个帐户,它能够识别IAM别名,没有任何问题。这里少了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-12-18 05:39:08

若要检查帐户别名是否为空,请运行此AWS:

aws列表-帐户-别名

如果是空列表,就意味着IAM别名丢失了。

然后,您需要将IAM分配给需要核弹的AWS帐户。您可以使用此AWS CLI:

aws sts获取呼叫者身份

这将使您知道您已登录到使用CLI的哪个帐户。

一旦将IAM别名分配给AWS帐户,这将解决您看到的aws-nuke错误。

错误:指定的帐户没有别名。出于安全考虑,您需要指定一个帐户别名。你们的生产帐户应该包含“prod”这个词。

票数 2
EN

Stack Overflow用户

发布于 2020-12-18 05:13:18

我能够查看错误的来源,这在代码行100上显示了错误。

然后,我将查看对ValidateAccount()的调用。相关电话在第43行上。

一旦缩小了问题和错误消息的范围,我就会知道为什么Account.Aliases()是空的。看起来“帐户”是AWS中的一种资源类型。因此,我将复制调用以获取帐户资源,例如使用boto3或AWS。然后我会确认那里也是空的。然后我就会想出如何设置别名

票数 2
EN

Stack Overflow用户

发布于 2020-12-18 16:11:24

我在讨论这里和另一个帖子中找到了aws的作者。

免责声明:,这是aws作者所说的话:

这不是YAML文件的配置问题,但它是AWS帐户中缺少的设置。

AWS IAM别名是AWS帐户的全局唯一名称。aws要求这作为一个安全警卫,这样就不会意外地破坏生产帐户.其想法是每个生产帐户至少包含子字符串prod

按照AWS文档通过web控制台指定别名,或使用AWS:

代码语言:javascript
复制
aws iam create-account-alias --profile demo --account-alias aws-nuke-test-account-8gmst3`
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65350595

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档