【问题标题】:Reconfigure EC2 instance with AWS credentials使用 AWS 凭证重新配置 EC2 实例
【发布时间】:2020-01-02 09:09:09
【问题描述】:

我有 EC2 实例。

我正在尝试从中调用aws s3,但出现错误

Unable to locate credentials

我尝试了aws configure,它确实将所有内容都显示为空。

我看到分配给此实例的 S3 完全权限的 IAM 角色。

我需要任何额外的配置吗?

【问题讨论】:

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


    【解决方案1】:

    如果您在分配有角色的 Amazon EC2 实例上运行 aws,那么它应该会自动找到凭证。

    您还可以使用它来查看实例中的凭据:

    curl http://169.254.169.254/latest/meta-data/iam/security-credentials/
    

    应该列出角色名称。然后将其附加到命令中:

    curl http://169.254.169.254/latest/meta-data/iam/security-credentials/ROLE-NAME/
    

    然后您应该看到AccessKeyIdSecretAccessKey 等。

    如果未显示该信息,则表明您的角色未正确附加到实例。尝试取消分配角色,然后再次将其分配给实例。

    【讨论】:

    • John - 如果您同意,请将我的答案合并到您的答案中。然后我将删除我的答案。这样就有了一个更好的答案,而不是两种可能的解决方案。
    • @JohnHanley Nah,把他们俩都留下。答案越多,正确的机会就越大!
    • 这很奇怪,但是 169.254.169.254 无法访问(ps 我在 Windows 上)
    • 太棒了,这就是进步!如果您的 Web 浏览器无法访问 http://169.254.169.254/latest/meta-data/,则说明您的实例有问题,它解释了您收到的凭据错误。可能是 Windows 防火墙阻止了您(将其关闭!)。这是一个新的 Windows 实例(例如,你愿意把它扔掉并创建一个新实例吗?)还是它已经安装了你想保留的软件?
    【解决方案2】:

    首先阅读并遵循 John Rotenstein 的建议。

    SDK(从中构建 CLI)按以下顺序搜索凭据:

    1. 环境变量 (AWS_ACCESS_KEY_ID ....)
    2. 默认配置文件(凭据文件)
    3. ECS 容器凭据(如果在 ECS 上运行)
    4. 实例配置文件

    验证您的 EC2 实例在元数据中具有凭据后,请仔细检查 1 和 2 以确保即使为空也没有其他凭据。

    注意:此链接与我的最后一点(空凭据文件)存在争议。我从不在 EC2 实例上创建(存储)凭证,我只使用 IAM 角色。

    Instance Metadata

    【讨论】:

      猜你喜欢
      • 2016-12-07
      • 1970-01-01
      • 1970-01-01
      • 2017-02-11
      • 1970-01-01
      • 1970-01-01
      • 2017-10-03
      • 2019-01-19
      • 2018-09-04
      相关资源
      最近更新 更多