AWS Key和Scret在AWS CLI上工作,但在Jenkins上不工作

时间:2019-06-17 12:40:47

标签: amazon-web-services jenkins amazon-s3 jenkins-pipeline

我正在尝试运行python脚本,该脚本具有使用boto3 sdk访问s3的代码。 我已经在Windows计算机中创建了默认配置文件。

  1. aws cli命令在window cmd中可以正常工作以访问s3存储桶。
  2. 在窗口cmd中手动启动时,
  3. python脚本也可以正常工作

我正在尝试通过詹金斯实现自动化。失败并抱怨令牌无效。

出于测试目的,我在jenkins作业中运行了以下命令。

aws sts get-caller-identity --debug

ClientError:调用GetCallerIdentity操作时发生错误(InvalidClientTokenId):请求中包含的安全令牌无效 2019-06-17 18:09:06,513-MainThread-awscli.clidriver-调试-使用rc 255退出

调用GetCallerIdentity操作时发生错误(InvalidClientTokenId):请求中包含的安全令牌无效 构建步骤“执行Windows批处理命令”将构建标记为失败

我尝试关注

  1. 注入AWS_SECRET_ACCESS_KEY,AWS_SESSION_TOKEN和AWS_ACCESS_KEY_ID,但没有成功。

  2. 在jenkins中添加了S3配置文件插件,并尝试了选项IAM角色以及提供访问令牌和密码的功能。

它不起作用。

我观察到jenkins正在系统用户上运行,但是我已经在窗口用户中创建了配置文件。这是问题吗?

1 个答案:

答案 0 :(得分:0)

问题出在与运行jenkins的USERPROFILE中。

未加载默认用户配置文件凭据,因为配置是针对本地用户而非系统用户完成的。

在SYSTEM USER Jenkins下添加.credentials效果很好。