我正在尝试使用 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 文件中配置以使用角色?
终于找到解决办法了:
我在 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)
}
}