一尘不染

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

jenkins

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

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

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

为了进行测试,我在詹金斯工作中执行了以下命令。

aws sts get-caller-identity --debug

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

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

我尝试了以下

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

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

它不起作用。

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


阅读 370

收藏
2020-07-25

共1个答案

一尘不染

问题是与运行jenkins的USERPROFILE有关。

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

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

2020-07-25