由于“无法找到凭证”错误,无法在 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. /var/lib/jenkins其中创建名为 .aws 的目录(或者,如果您已通过“aws configure”命令配置了 aws 凭证,则从主目录复制 .aws 文件夹)
  2. 然后转到/var/lib/jenkins/.aws并写入sudo 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

如果您在使用实例角色时在公司网络中看到此问题,请确保代理设置正确。

相关内容