簡體   English   中英

我的 AWS CLI 不適用於 sudo

[英]My AWS CLI didn't work with sudo

我有使用aws cli的 shell 腳本,我的腳本將使用 sudo 執行(例如: sudo./test.sh

但我收到消息: Unable to locate credentials. You can configure credentials by running "aws configure". Unable to locate credentials. You can configure credentials by running "aws configure".

實際上,我為sudo aws configureaws configure都做了配置

我做錯什么了? 請幫忙。 謝謝!

您可能必須使用-E運行sudo以保留由aws cli設置的環境變量。
sudo -E ./test.sh

AWS CLI在$HOME/.aws/credentials配置了$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 ,它將獲得相同的憑據(這不是我們演示的情況)。

你應該:

  1. 通過運行sudo -i為root用戶配置AWS憑據,然后使用完全初始化的root會話aws configure ,然后確保所有腳本都使用完全根會話(使用#!/bin/bash -l作為shebang )。
  2. 如果您的問題是第二個,並且您不想執行(1)中建議的復雜解決方案,則應為每個用戶配置AWS憑據。

您可以執行以下操作:

sudo cp -r /home/<username>/.aws /home/root

現在您可以對 root 使用相同的用戶憑據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM