我有shell脚本,用途aws cli,我的脚本将被使用sudo执行(例如:sudo ./test.sh)
但我收到了消息: Unable to locate credentials. You can configure credentials by running "aws configure".
其实,我并配置了两个sudo aws configure和aws configure
我做错了什么?请帮忙。谢谢!
AWS CLI 在 中配置了您的凭证$HOME/.aws/credentials。通常,当您使用 时sudo,它不会更改$HOME环境变量的值,因此 AWS 凭证文件将在同一位置生成。您可以通过aws configure以普通用户身份运行,输入密钥,然后运行来检查这一点sudo aws configure,您将能够看到默认值将是您刚刚输入的密钥。
因此,此时,您应该能够运行sudo aws <facility> <some-command>并且它会正常工作 - AWS CLI 将使用您当前用户的 AWS 凭证。我刚刚测试了一下以确定。
我怀疑问题在于您要么以强制会话初始化的方式调用脚本,例如bash -l- 在这种情况下 AWS CLI 将尝试使用用户的凭证root;或者您从设置 AWS 凭证的用户以外的用户运行脚本,并且您希望这样做,因为您都使用sudo它而获得相同的凭证(这与我们演示的情况不同)。
您应该:
sudo -i通过运行然后aws configure在完全初始化的会话中为根用户配置 AWS 凭证root,然后确保所有脚本都使用完整的根会话(用作#!/bin/bash -lshebang)。| 归档时间: |
|
| 查看次数: |
6270 次 |
| 最近记录: |