在aws上获取访问权限s3将对象置于加密策略中

时间:2018-05-24 08:41:44

标签: amazon-web-services amazon-s3 amazon-iam

我正在尝试使用Java将文件上传到AWS S3存储桶。

我有以下政策,应该限制未加密的文件。

{
    "Version": "2012-10-17",
    "Id": "PutObjPolicy",
    "Statement": [
        {
            "Sid": "DenyUnEncryptedObjectUploads",
            "Effect": "Deny",
            "Principal": "*",
            "Action": "s3:PutObject",
            "Resource": "arn:aws:s3:::file-upload-test/*",
            "Condition": {
                "StringNotEquals": {
                    "s3:x-amz-server-side-encryption": "AES256"
                }
            }
        }
    ]
}

现在,当我尝试使用下面的代码时,我得到了Access Denied异常。

com.amazonaws.services.s3.model.AmazonS3Exception: Access Denied (Service: Amazon S3; Status Code: 403; Error Code: AccessDenied; Request ID: F287836ABBF2B486)

我使用的java代码是:

    ObjectMetadata objectMetadata = new ObjectMetadata();
    objectMetadata.setContentLength(fileSize);   
        objectMetadata.setSSEAlgorithm(ObjectMetadata.AES_256_SERVER_SIDE_ENCRYPTION);
    objectMetadata.setContentType(contentType);
    putObjectRequest = new PutObjectRequest(bucketName, fileName, inputStream, objectMetadata);
    s3client.putObject(putObjectRequest);

我是否应该使用此Java代码来实现此目的?

如果是,那么需要进行哪些修改。 如果不是,那么我应该在客户端使用加密吗?

请建议。

0 个答案:

没有答案