diff --git a/services/s3/src/it/java/software/amazon/awssdk/services/s3/ServerSideEncryptionIntegrationTestBase.java b/services/s3/src/it/java/software/amazon/awssdk/services/s3/ServerSideEncryptionIntegrationTestBase.java index 32d7ba225af4..bb41b56bc020 100644 --- a/services/s3/src/it/java/software/amazon/awssdk/services/s3/ServerSideEncryptionIntegrationTestBase.java +++ b/services/s3/src/it/java/software/amazon/awssdk/services/s3/ServerSideEncryptionIntegrationTestBase.java @@ -16,6 +16,7 @@ import static org.assertj.core.api.Fail.fail; import static software.amazon.awssdk.services.s3.S3IntegrationTestBase.createBucket; +import static software.amazon.awssdk.services.s3.model.ServerSideEncryption.AES256; import static software.amazon.awssdk.testutils.service.S3BucketUtils.temporaryBucketName; import java.io.File; @@ -25,6 +26,7 @@ import org.junit.AfterClass; import org.junit.BeforeClass; import software.amazon.awssdk.services.kms.KmsClient; +import software.amazon.awssdk.services.s3.model.EncryptionType; import software.amazon.awssdk.services.s3.model.ServerSideEncryption; import software.amazon.awssdk.testutils.RandomTempFile; @@ -48,6 +50,14 @@ public static void setupFixture() throws IOException { createBucket(BUCKET_WITH_SSE); keyId = KMS.createKey().keyMetadata().keyId(); + // Since April 2026, new S3 buckets block SSE-C by default. Unblock it for SSE-C tests. + s3.putBucketEncryption(r -> r + .bucket(BUCKET) + .serverSideEncryptionConfiguration(ssec -> ssec + .rules(rule -> rule + .applyServerSideEncryptionByDefault(d -> d.sseAlgorithm(AES256)) + .blockedEncryptionTypes(b -> b.encryptionType(EncryptionType.NONE))))); + s3.putBucketEncryption(r -> r .bucket(BUCKET_WITH_SSE) .serverSideEncryptionConfiguration(ssec -> ssec diff --git a/services/s3/src/it/java/software/amazon/awssdk/services/s3/multipart/S3ClientMultiPartCopyIntegrationTest.java b/services/s3/src/it/java/software/amazon/awssdk/services/s3/multipart/S3ClientMultiPartCopyIntegrationTest.java index 4d942d942e7f..51e467979f3e 100644 --- a/services/s3/src/it/java/software/amazon/awssdk/services/s3/multipart/S3ClientMultiPartCopyIntegrationTest.java +++ b/services/s3/src/it/java/software/amazon/awssdk/services/s3/multipart/S3ClientMultiPartCopyIntegrationTest.java @@ -50,6 +50,7 @@ import software.amazon.awssdk.services.s3.internal.multipart.MultipartS3AsyncClient; import software.amazon.awssdk.services.s3.model.ChecksumAlgorithm; import software.amazon.awssdk.services.s3.model.CopyObjectResponse; +import software.amazon.awssdk.services.s3.model.EncryptionType; import software.amazon.awssdk.services.s3.model.GetObjectResponse; import software.amazon.awssdk.services.s3.model.MetadataDirective; import software.amazon.awssdk.utils.Md5Utils; @@ -71,6 +72,14 @@ public class S3ClientMultiPartCopyIntegrationTest extends S3IntegrationTestBase public static void setUp() throws Exception { S3IntegrationTestBase.setUp(); createBucket(BUCKET); + + s3.putBucketEncryption(r -> r.bucket(BUCKET) + .serverSideEncryptionConfiguration(c -> c.rules( + rule -> rule.applyServerSideEncryptionByDefault( + d -> d.sseAlgorithm(AES256)) + .blockedEncryptionTypes( + b -> b.encryptionType(EncryptionType.NONE))))); + s3CrtAsyncClient = S3CrtAsyncClient.builder() .credentialsProvider(CREDENTIALS_PROVIDER_CHAIN) .region(DEFAULT_REGION) diff --git a/services/s3/src/it/java/software/amazon/awssdk/services/s3/multipart/S3MultipartClientPutObjectIntegrationTest.java b/services/s3/src/it/java/software/amazon/awssdk/services/s3/multipart/S3MultipartClientPutObjectIntegrationTest.java index aed75193c0ea..8967cb540e2c 100644 --- a/services/s3/src/it/java/software/amazon/awssdk/services/s3/multipart/S3MultipartClientPutObjectIntegrationTest.java +++ b/services/s3/src/it/java/software/amazon/awssdk/services/s3/multipart/S3MultipartClientPutObjectIntegrationTest.java @@ -78,6 +78,7 @@ import software.amazon.awssdk.services.s3.model.ChecksumMode; import software.amazon.awssdk.services.s3.model.CompleteMultipartUploadRequest; import software.amazon.awssdk.services.s3.model.CreateMultipartUploadRequest; +import software.amazon.awssdk.services.s3.model.EncryptionType; import software.amazon.awssdk.services.s3.model.GetObjectRequest; import software.amazon.awssdk.services.s3.model.GetObjectResponse; import software.amazon.awssdk.services.s3.model.PutObjectRequest; @@ -110,6 +111,13 @@ public static void setup() throws Exception { setUp(); createBucket(TEST_BUCKET); + s3.putBucketEncryption(r -> r.bucket(TEST_BUCKET) + .serverSideEncryptionConfiguration(c -> c.rules( + rule -> rule.applyServerSideEncryptionByDefault( + d -> d.sseAlgorithm(AES256)) + .blockedEncryptionTypes( + b -> b.encryptionType(EncryptionType.NONE))))); + testFile = new RandomTempFile(OBJ_SIZE); bytes = Files.readAllBytes(testFile.toPath()); expectedChecksum = ChecksumUtils.computeCheckSum(Files.newInputStream(testFile.toPath()));