承担 IAM 用户从 Jenkins CI 进行 s3 上传的角色

问题描述 投票:0回答:1

我正在尝试使用 Jenkins CI 中的 s3upload,我已在 Jenkins 控制台中添加了 IAM 用户 S3_User 凭证并使用 withAWS(region: s3Region ,credentials: s3User)。但是我的 IAM 用户 S3_User 没有 S3 RW 策略,IAM 用户必须承担角色 S3_UserRoleWithRWpolicy 。我该怎么做?

在 Jenkins IAM 凭证中提供了 S3_User 访问权限和密钥,并在 IAM 角色中添加了 S3_UserRoleWithRWpolicy 以在 IAM 角色支持下使用。但仍然无法从 Jenkins 进行 S3 上传。我如何在 Jenkins 文件中配置以使用角色?

amazon-s3 jenkins-pipeline credentials
1个回答
0
投票

终于找到解决办法了:

我在 Jenkins CI 文件中使用了这个:

withAWS(region: 's3Region', credentials: 'iamUser')
{
    s3Upload( file:'jar', bucket:s3Bucket, path: s3Path)
}

当 iamUser 可以直接访问 S3 时,它工作正常,但当 iamUser 必须承担角色才能访问 S3 时,它会失败(在凭证中将 IAM 角色添加到 Assume 之后)

但是以下方法有效:

withCredentials([[$class: 'AmazonWebServicesCredentialsBinding', credentialsId: 'iamUser']]) {
    withAWS(region: 's3Region')
    {
        s3Upload( file:'jar', bucket:s3Bucket, path: s3Path)
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.