ec2服务器上的awscli默认配置凭据

时间:2019-05-22 13:14:09

标签: amazon-web-services amazon-ec2 aws-cli

我有一个具有特定角色的ec2实例, 键入awscli命令时:

[TEST@JenkinsSlave ~]$ aws configure list
      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                <not set>             None    None
access_key     ****************E25I         iam-role
secret_key     ****************Yl4d         iam-role
    region                <not set>             None    None

我看到我有一个未创建的访问密钥和秘密密钥, 这是一个没有配置的干净的Amazon Linux AMI。

我以为这是角色键,但是没有为角色分配键的事情,每次创建新服务器时,我都会得到不同的键,因此看起来像随机键。 有谁知道我是如何获得这些证书的?

以及如何从配置中删除它们(如 Location = None 所示,它们未存储在〜/ .aws / 中)

1 个答案:

答案 0 :(得分:1)

即使您没有分配实例角色,您的EC2实例也确实具有基于实例的凭据。您可以通过curl http://169.254.169.254/latest/meta-data/identity-credentials/ec2/security-credentials/ec2-instance查看这些内容。

但是,当我运行aws configure list时,这些凭据不会显示。您运行的版本可能比我的版本早(aws-cli / 1.16.153),并且行为已更改。您可以比较该curl请求中的凭据,以查看它们是否相同。

您应该确认实际上没有设置实例角色。检查控制台或使用实例中的curl http://169.254.169.254/latest/meta-data/iam/。如果您没有角色集,则会得到404。如果您有角色集,则此命令将显示一个名为info的文件,并且该文件将包含实例角色信息。


编辑:我尝试使产生您所看到的输出的唯一方法是将实例配置文件分配给实例。


在回答有关询问每台机器的不同令牌的评论时:这是实例配置文件的工作方式。每台计算机都会获得一组时间有限的凭据,可用于发出请求,并根据需要自动更新这些凭据。这是一件好事,因为这意味着这些凭据无法从计算机中获取,也无法用于未经授权地访问服务。