由於「無法找到憑證」錯誤,無法在 Jenkins 中使用 AWS CLI

由於「無法找到憑證」錯誤,無法在 Jenkins 中使用 AWS CLI

我正在使用 Jenkins 進行 CI。我需要能夠從 S3 儲存桶中提取檔案。在 jenkins 工作中,我會從 jenkins shell 執行以下診斷:

cd ~

這將我帶到 /var/lib/jenkins

whoami

這將返回用戶 jenkins

在 /var/lib/jenkins 內,我有 .aws 資料夾,其中包含配置和憑證文件,但是當我運行時

aws configure list

我明白了:

      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                <not set>             None    None
access_key                <not set>             None    None
secret_key                <not set>             None    None
    region                <not set>             None    None

儘管我有 .aws 資料夾並且這兩個文件中有正確的信息,但那裡什麼也沒有。我最初嘗試將 .aws 資料夾放在 /home/jenkins 中,但這也不起作用。

那麼,如何讓 jenkins 真正使用 aws cli 呢?

答案1

您可以將憑證匯出為環境變數:

$ export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
$ export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
$ export AWS_DEFAULT_REGION=us-west-2

http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html了解更多。根據您使用 Jenkins 的方式,您可能需要使用EvnInject 插件

答案2

這個方法對我有用:

  1. 在名為 .aws 的目錄中建立目錄/var/lib/jenkins(如果您已透過「aws configure」命令設定了 aws 憑證,則從主目錄複製 .aws 資料夾)
  2. 然後向下寫入/var/lib/jenkins/.awssudo shown -R jenkins ./更改 .aws 目錄中檔案的擁有者。

答案3

請在 jenkins 伺服器的 bash 中更新您的 aws 憑證。運行以下命令:

# sudo -su jenkins
# aws configure

參考連結:http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-ami-jenkins.html

答案4

如果您在使用實例角色時在公司網路中看到此問題,請確保代理程式設定正確。

相關內容