【问题标题】:Jenkins AWS Steps authentication error accessing s3访问 s3 的 Jenkins AWS Steps 身份验证错误
【发布时间】:2020-12-21 15:12:55
【问题描述】:

背景

我正在尝试将文件上传到 Jenkins 中的 AWS S3 存储桶。我正在使用AWS Steps 插件提供的步骤/闭包。我正在使用 Access Key IDAccess 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


    【解决方案1】:

    这可能是存储桶和对象所有权问题。检查您使用的凭据是否允许您上传到存储桶 ec-sis-integration-test。

    【讨论】:

    • 我在一个示例 Java 应用程序中使用了这个确切存储桶上的密钥,这让我认为它不是密钥
    • 尝试通过 aws cli 上传以确保。在 jenkins 中,您不需要将 id 和密码编码为 base 64 密码。一旦我这样做了,它也会导致 403
    猜你喜欢
    • 1970-01-01
    • 2018-05-22
    • 2021-03-17
    • 2018-11-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-15
    • 1970-01-01
    • 2019-06-21
    相关资源
    最近更新 更多