【发布时间】:2020-12-21 15:12:55
【问题描述】:
背景
我正在尝试将文件上传到 Jenkins 中的 AWS S3 存储桶。我正在使用AWS Steps 插件提供的步骤/闭包。我正在使用 Access Key ID 和 Access Key Secret 并将其分别作为用户名和密码存储在 Credential Manager 中。 p>
代码
下面是我在声明性管道脚本中使用的代码
sh('echo "test" > someFile')
withAWS(credentials:'AwsS3', region:'us-east-1') {
s3Upload(file:'someFile', bucket:'ec-sis-integration-test', acl:'BucketOwnerFullControl')
}
sh('rm -f someFile')
这是凭据的屏幕截图,因为它们全局存储在凭据管理器中。
问题
每当我运行管道时,我都会收到以下错误
com.amazonaws.services.s3.model.AmazonS3Exception:访问被拒绝(服务:Amazon S3;状态代码:403;错误代码:AccessDenied;请求 ID:5N9VEJBY5MDZ2K0W;S3 扩展请求 ID:AJmuP635cME8m035nA6rQVltCCJqHDPXsjVk+sLziTyuAiSN23Q1j5Rto=QwfHCAOex 代理:PVVAec null),S3 扩展请求 ID:AJmuP635cME8m035nA6rQVltCCJqHDPXsjVk+sLziTyuAiSN23Q1j5RtoQwfHCDXAOexPVVecA4=
有人知道为什么这不起作用吗?
疑难解答
我通过我编写的一个小型 Java 应用程序对其进行了测试,验证了 Access Key ID 和 Access Key Secret 组合的工作原理。此外,我通过 Java 系统属性(通过脚本控制台)设置了 id/secret,但仍然得到相同的错误。
System.setProperty("aws.accessKeyId", "<KEY_ID>")
System.setProperty("aws.secretKey", "<KEY_SECRET>")
我还尝试将凭据管理器类型从用户名/密码更改为 aws 凭据,如下所示。没区别
【问题讨论】:
标签: amazon-web-services jenkins amazon-s3 jenkins-plugins aws-steps