S3 上传可以从 aws cli 正常工作,但从 aws s3api 访问被拒绝

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

我在 s3 上传方面面临一个奇怪的问题(可能与存储桶策略有关)。 当我尝试使用 aws cli 和 sse-kms 上传文件时,它的上传没有任何问题。但是,当我尝试使用 aws-java-sdk (1.9.5) 上传相同的文件时,它显示 AceessDenied。

这可能与存储桶策略有关,但我想知道文件如何可以通过 aws cli 上传,但不能通过 aws-java-sdk 上传。

以下是用于上传的 aws cli [这工作正常]:

aws s3 cp file.zip s3://my-bucket --sse aws:kms --sse-kms-key-id arn:aws:kms:eu-west-1:my_account_id:key/kms_key

这里是 aws-java-sdk api 代码片段 [这表示 Accessdenied]:

val bucket = "my-bucket"
val AWS_ACCESS_KEY = "access_key"
val AWS_SECRET_KEY = "secret_key"
val awsCredentials = new BasicAWSCredentials(AWS_ACCESS_KEY, AWS_SECRET_KEY)
val clientConfiguration = new ClientConfiguration
clientConfiguration.setSignerOverride("AWSS3V4SignerType")
clientConfiguration.withSignerOverride("AWSS3V4SignerType")
val amazonS3Client = new AmazonS3Client(awsCredentials, clientConfiguration)
amazonS3Client.setRegion(com.amazonaws.regions.Region.getRegion(Regions.EU_WEST_1))
val KMS_ID = "arn:aws:kms:eu-west-1:my_account_id:key/kms_key"
val kmsKey = new SSEAwsKeyManagementParams(KMS_ID)
val file = new File("/home/vikash/file.zip")
val putRequest = new PutObjectRequest(bucket, "file.zip", file).withSSEAwsKeyManagementParams(kmsKey)
val response = amazonS3Client.putObject(putRequest)

有人可以建议我在这里缺少什么吗? 非常感谢您的建议。

致以诚挚的问候,

维卡什·帕里克

amazon-web-services amazon-s3 aws-java-sdk
1个回答
0
投票

{ "版本": "2012-10-17", “陈述”: [ { "效果": "允许", "校长": "", “行动”: [ “s3:放置对象”, “s3:PutObjectAcl”, “s3:获取对象”, “s3:获取对象Acl” ], “资源”:“arn:aws:s3:::tajerimages/images/” } ] }

© www.soinside.com 2019 - 2024. All rights reserved.