使用 AWS CLI 进行 Bash - 无法找到凭证

新手上路,请多包涵

我有一个 shell 脚本,它应该从 S3 下载一些文件并安装一个 ebs 驱动器。但是,我总是以“无法找到凭据”告终。

我已经使用 aws configure 命令指定了我的凭据,并且这些命令在 shell 脚本之外工作。有人可以告诉我(最好是详细的)如何使它工作吗?

这是我的脚本

#!/bin/bash

AWS_CONFIG_FILE="~/.aws/config"

echo $1

sudo mkfs -t ext4 $1
sudo mkdir /s3-backup-test
sudo chmod -R ugo+rw /s3-backup-test
sudo mount $1 /s3-backup-test

sudo aws s3 sync s3://backup-test-s3 /s3-backup/test

du -h /s3-backup-test
ipt (short version):

谢谢你的帮助!

原文由 Smajl 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 423
2 个回答

sudo 会将 $HOME 目录(因此 ~ )更改为 /root,并从环境中删除大多数 bash 变量,如 AWS_CONFIG_FILE。确保您以 root 或您的用户身份使用 aws 执行所有操作,不要混用。

确保你做了 sudo aws configure 例如。并尝试

sudo bash -c 'AWS_CONFIG_FILE=/root/.aws/config aws s3 sync s3://backup-test-s3 /s3-backup/test'

您可能更愿意从脚本中删除所有 sudo,而只 sudo 脚本本身。

原文由 meuh 发布,翻译遵循 CC BY-SA 3.0 许可协议

虽然您的凭据和配置文件可能正确位于 ~/.aws 中,但您的用户帐户可能无法获取它。

运行此命令以查看您的凭据是否已设置: aws configure list

要设置凭据,请运行以下命令: aws configure 然后输入在 ~/.aws/credentials 文件中指定的凭据。

原文由 Himanshu Gupta 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题