Получение отказа в доступе к объекту aws s3 put для политики шифрования - PullRequest
0 голосов
/ 24 мая 2018

Я пытаюсь загрузить файл с помощью 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для достижения этой цели?

Если да, то какие модификации требуются.Если нет, то я должен использовать шифрование на стороне клиента?

Пожалуйста, предложите.

...