我有一个具有特定角色的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 / 中)
答案 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
的文件,并且该文件将包含实例角色信息。
编辑:我尝试使做产生您所看到的输出的唯一方法是将实例配置文件分配给实例。
在回答有关询问每台机器的不同令牌的评论时:这是实例配置文件的工作方式。每台计算机都会获得一组时间有限的凭据,可用于发出请求,并根据需要自动更新这些凭据。这是一件好事,因为这意味着这些凭据无法从计算机中获取,也无法用于未经授权地访问服务。