【问题标题】:AWS-CLI acccess to S3 on Linux MachineAWS-CLI 访问 Linux 机器上的 S3
【发布时间】:2019-08-27 20:21:49
【问题描述】:

我想设置从 Linux 机器 (Fedora) 到 AWS S3 存储桶的递归同步。我以 root 身份登录 Linux,并拥有与特定 AWS 用户“Lisa”关联的 AWS Key 和 Secret。

我已安装 aws-cli、s3cmd,并尝试配置两者。我已经验证了 aws/configure 和 aws/credentials 文件都有一个默认用户和一个具有访问密钥和秘密对的“Lisa”用户。我收到错误消息,指出访问被拒绝,未找到访问密钥和密钥对。我在网上对此进行了研究,并验证没有环境变量可以覆盖配置和凭据文件。我还向所有登录用户授予了对通过 AWS 控制台创建的存储桶的完全访问权限。我没有轮换密钥,因为它们是在一周前首次创建的,并且我能够使用相同的密钥对登录和设置 AWS 控制台。

在旋转按键之前我还应该做什么?

【问题讨论】:

  • 确切的错误信息是什么?
  • 更新:我轮换了 AWS 密钥(访问和秘密),但仍然收到错误消息。当我输入“aws s3 ls”时,我收到错误调用 ListBuckets 操作时发生错误 (InvalidAccessKeyId):您提供的 AWS 访问密钥 ID 在我们的记录中不存在。 我得到了相同的结果当我使用“aws s3 ls --profile Lisa”时出错。我确认键中没有前导或滞后的空格。
  • 访问密钥是否以AKIA 开头?密钥应该是一长串的字符。
  • 是的,没错。 Access Key 以 AKIA 开头,Secret Key 是乱码。
  • 我什至无法确定 AWS 尝试使用哪个帐户进行访问。我尝试了命令“aws s3api list-buckets --query Owner.ID”并收到相同的 InvalidAccessKeyId 错误。我担心有几个部分(1)是否存在作为计算机上的 root 用户并使用 Lisa 访问密钥/秘密的问题,以及(2)存储桶是使用 AWS 控制台创建的,并且授予所有用户完全访问权限但是,我尝试通过 AWS-CLI 或 s3cmd 访问存储桶。

标签: amazon-web-services amazon-s3


【解决方案1】:

您似乎没有正确配置 AWS 凭证。确保您的凭据文件中有正确的访问密钥。如果您未指定任何配置文件,awscli 将使用默认配置文件。

~/.aws/凭据

[default]
aws_access_key_id=AKIAIDEFAULTKEY
aws_secret_access_key=Mo9T7WNO….

[Lisa]
aws_access_key_id=AKIAILISASKEY
aws_secret_access_key=H0XevhnC….

此命令使用默认配置文件:

aws s3 ls

此命令使用 Lisa 配置文件:

aws s3 ls --profile 丽莎

您可以设置一个环境变量来覆盖默认配置文件。

导出 AWS_DEFAULT_PROFILE=丽莎

现在此命令使用配置文件 Lisa:

aws s3 ls

如果您不知道哪个配置文件处于活动状态,您可以调用以下命令:

aws sts 获取调用者身份

【讨论】:

  • 嗨 - 当我打开 ~/.aws/credentials 文件时,我看到了默认配置文件和 Lisa 配置文件,类似于您上面列出的内容。然后,当我尝试“aws s3 ls”时,我收到一条错误消息:“调用 List Buckets 操作时发生错误(InvalidAccessKey):您提供的 AWS 访问密钥与我们的记录不匹配”。尝试“aws s3 ls --profile Lisa”时出现类似错误,然后使用“aws sts get-caller-identity”命令,我收到一条消息,指出存在 InvalidClientIDToken。
  • 您的配置似乎包含无效密钥。在这种情况下轮换您的凭据(生成新的一对)并确保您存储了正确的值。
  • 谢谢你,vikyol。不幸的是,这并没有解决问题。欢迎任何其他建议!
【解决方案2】:

您似乎混合了几个术语,因此值得了解它们的区别:

  • 用户名和密码用于登录基于 Web 的管理控制台。它们很短,易于阅读且易于记忆。
  • Access Key(以AKIA开头)和Secret Key用于进行API调用。 AWS CLI(代表您进行 API 调用)也使用它
  • 密钥对由公钥和私钥组成,用于验证 SSH 连接。这是一段很长的文本。

您提到未找到访问密钥。这可能是因为提供的凭据类型错误。

【讨论】:

  • 谢谢你,约翰。关于如何确定向 AWS 提供哪些凭证的任何提示?我在想,由于我以 root 身份登录机器,并且默认配置文件使用与 Lisa 配置文件相同的访问密钥和秘密密钥,因此 AWS 接收的内容可能不匹配。但是,当我将配置文件指定为任何 aws 命令的 Lisa 时,我收到与未指定配置文件时相同的错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-09-13
  • 1970-01-01
  • 2018-09-14
  • 1970-01-01
  • 1970-01-01
  • 2016-06-07
相关资源
最近更新 更多