【问题标题】:EC2 upload failed to S3EC2 上传到 S3 失败
【发布时间】:2017-07-11 15:51:34
【问题描述】:

我正在尝试将文件从 EC2 实例上传到 S3 存储桶并收到此错误:

[ec2-user@zzzzzzz parsers]$ aws s3 cp file.txt s3://bucket/output/file.txt

上传失败:./file.txt to s3://bucket/output/file.txt 调用 PutObject 操作时发生客户端错误 (InvalidAccessKeyId):您提供的 AWS 访问密钥 ID 不存在于我们的记录中。

我已经在EC2中配置了aws configure文件如下:

[ec2-user@zzzzz parsers]$ aws configure list
Name           Value                 Type           Location
----           -----                 ----           --------
profile        <not set>             None           None
access_key     ****************NTr6  config-file     
secret_key     ****************AFJQ  config-file     
region         us-west-2             config-file    ~/.aws/config

我还应该做些什么来完成这项工作?

【问题讨论】:

  • 检查访问密钥和密钥是否来自 ec2 实例 IAM 角色,该角色通常轮换并经常更改
  • 这发生在我停止/启动实例之后,然后磁盘空间不足。甚至创建我的实例的图像并从中启动一个新实例也无济于事。

标签: amazon-ec2 amazon-s3


【解决方案1】:

InvalidAccessKeyId表示Access Key和Secret Key无效。

访问密钥(及其对应的秘密密钥)可以与以下任一关联:

  • 主(或根)凭据,或
  • 身份和访问管理 (IAM) 用户

建议不要每天使用主凭据。 (见IAM Best Practices。)

如果您的凭证与 IAM 用户相关联,您可以生成一组新凭证

  • 转到身份和访问管理 (IAM)
  • 选择用户
  • 管理访问密钥
  • 创建访问密钥

将显示一个新的访问密钥和密钥。尝试在 CLI 配置中使用它们。

最多可以随时将两组访问密钥与用户关联。

【讨论】:

    【解决方案2】:

    对于 EC2 实例,建议使用 IAM 角色而不是 IAM 访问密钥。只需创建一个 IAM 角色来访问 S3 并将其链接到您的 EC2 实例,您就可以根据角色的策略在您的 S3 存储桶中列出、下载和上传文件。

    它更安全,您无需配置您的 aws 凭据。

    【讨论】:

      猜你喜欢
      • 2014-06-13
      • 2017-04-12
      • 2014-06-04
      • 2014-11-15
      • 2013-04-15
      • 1970-01-01
      • 2012-03-30
      • 2015-03-17
      • 1970-01-01
      相关资源
      最近更新 更多