【问题标题】:awscli default configuration credentials on ec2 serverec2 服务器上的 awscli 默认配置凭据
【发布时间】:2019-05-22 13:14:08
【问题描述】:

我有一个具有特定角色的 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/ 中)

【问题讨论】:

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


    【解决方案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 的文件,该文件将包含实例角色信息.


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


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

    【讨论】:

    • 你使用的那个IP地址是什么?
    • @ShacharHamuzimRajuan - 这是实例元数据地址。见docs.aws.amazon.com/AWSEC2/latest/UserGuide/…
    • 但是,如果我分配了一个实例配置文件,我怎么会为每个以相同方式部署的实例获得不同的密钥?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-19
    • 1970-01-01
    • 1970-01-01
    • 2014-10-12
    • 2011-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多