View a markdown version of this page

범용 버킷에 대한 SSE-C 차단 또는 차단 해제 - Amazon Simple Storage Service

범용 버킷에 대한 SSE-C 차단 또는 차단 해제

2026년 4월부터 Amazon S3는 모든 새 범용 버킷에 대해 고객 제공 키를 사용한 서버 측 암호화(SSE-C)를 자동으로 비활성화합니다. 또한 Amazon S3는 SSE-C 암호화 객체가 없는 계정의 기존 버킷에 대해서도 SSE-C를 비활성화했습니다. 즉, 기본적으로 SSE-C를 사용한 객체 업로드 요청은 HTTP 403 AccessDenied 오류와 함께 거부됩니다.

SSE-C를 사용하려면 암호화된 객체를 읽거나 쓰려는 모든 요청에 ​​암호화 키를 제공해야 합니다. 따라서 데이터로 작업하는 다른 사용자, 역할 또는 AWS 서비스와 액세스 권한을 공유하기가 어렵습니다. 대부분의 워크로드는 대신 Amazon S3 관리형 키(SSE-S3) 또는 AWS KMS 키(SSE-KMS)를 사용한 서버 측 암호화를 사용합니다.

워크로드에 SSE-C가 필요한 경우 버킷의 기본 암호화 구성을 업데이트하여 명시적으로 활성화할 수 있습니다. 반대로 기존 버킷에서 SSE-C가 여전히 허용되는 경우 이를 차단하여 새 SSE-C 업로드를 방지할 수 있습니다.

버킷에 대해 SSE-C가 차단되면 SSE-C 암호화를 지정하는 모든 PutObject, CopyObject, PostObject 또는 멀티파트 업로드 또는 복제 요청이 HTTP 403 AccessDenied 오류와 함께 거부됩니다. 버킷의 기존 SSE-C 암호화 객체는 영향을 받지 않으며, 필요한 SSE-C 헤더를 제공하여 GetObject 또는 HeadObject를 통해 객체를 읽을 수 있습니다.

이 설정은 PutBucketEncryption API의 파라미터이며 S3 콘솔, AWS CLI 또는 AWS SDK를 사용하여 업데이트할 수도 있습니다. s3:PutEncryptionConfiguration 권한이 있어야 합니다.

중요

Amazon Simple Storage Service는 이제 모든 새로운 범용 버킷에 대해 고객 제공 키(SSE-C)를 사용한 서버 측 암호화를 자동으로 비활성화하는 새로운 기본 버킷 보안 설정을 적용합니다. 2026년 4월에 Amazon S3는 모든 새로운 범용 버킷에서 모든 새 쓰기 요청에 대해 SSE-C 암호화를 비활성화하는 업데이트를 배포했습니다. SSE-C 암호화 객체가 없는 AWS 계정의 기존 버킷인 경우 Amazon S3는 모든 새 쓰기 요청에 대해 SSE-C도 비활성화합니다. 이 변경 사항에 따라 SSE-C 암호화가 필요한 애플리케이션은 새 버킷을 생성한 후 PutBucketEncryption API 작업을 사용하여 SSE-C를 의도적으로 활성화해야 합니다. 이 변경에 대한 자세한 내용은 새 버킷의 기본 SSE-C 설정 FAQ 섹션을 참조하세요.

권한

PutBucketEncryption API 또는 S3 콘솔, AWS SDK 또는 AWS CLI를 사용하여 범용 버킷의 암호화 유형을 차단하거나 차단 해제합니다. 이 경우 다음 권한이 있어야 합니다.

  • s3:PutEncryptionConfiguration

GetBucketEncryption API 또는 S3 콘솔, AWS SDK 또는 AWS CLI를 사용하여 범용 버킷에 대해 차단된 암호화 유형을 봅니다. 이 경우 다음 권한이 있어야 합니다.

  • s3:GetEncryptionConfiguration

SSE-C 암호화 차단 전 고려 사항

버킷에 대해 SSE-C를 차단하면 다음 암호화 동작이 적용됩니다.

  • 차단된 SSE-C 암호화 전에 버킷에 있었던 객체의 암호화는 변경되지 않습니다.

  • SSE-C 암호화를 차단한 후에는 요청에 필요한 SSE-C 헤더를 제공하는 한 SSE-C로 암호화된 기존 객체에 대해 GetObject 및 HeadObject 요청을 계속 수행할 수 있습니다.

  • 버킷에 대해 SSE-C가 차단되면 SSE-C 암호화를 지정하는 모든 PutObject, CopyObject, PostObject 또는 멀티파트 업로드 요청이 HTTP 403 AccessDenied 오류와 함께 거부됩니다.

  • 복제 대상 버킷에 SSE-C가 차단되어 있고 복제되는 소스 객체가 SSE-C로 암호화된 경우 HTTP 403 AccessDenied 오류와 함께 복제가 실패합니다.

이 암호화 유형을 차단하기 전에 버킷에서 SSE-C 암호화를 사용하는지 검토하려면 AWS CloudTrail과 같은 도구를 사용하여 데이터에 대한 액세스를 모니터링할 수 있습니다. 이 블로그 게시물은 객체 업로드에 대한 암호화 방법을 실시간으로 감사하는 방법을 보여줍니다. 또한 이 re:Post 문서를 참조하여 S3 인벤토리 보고서 쿼리를 통해 SSE-C 암호화 객체가 있는지 확인할 수 있습니다.

단계

Amazon S3 콘솔, AWS Command Line Interface(AWS CLI), Amazon S3 REST API 및 AWS SDK를 사용하여 범용 버킷에 대해 고객 제공 키를 사용한 서버 측 암호화(SSE-C)를 차단하거나 차단 해제할 수 있습니다.

Amazon S3 콘솔을 사용하여 버킷에 대한 SSE-C 암호화를 차단하거나 차단 해제하려면 다음을 수행합니다.

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/s3/ 페이지에서 Amazon S3 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 범용 버킷을 선택합니다.

  3. SSE-C 암호화를 차단하려는 버킷을 선택합니다.

  4. 버킷의 속성 탭을 선택합니다.

  5. 버킷의 기본 암호화 속성 패널로 이동하여 편집을 선택합니다.

  6. 차단된 암호화 유형 섹션에서 고객 제공 키를 사용한 서버 측 암호화(SSE-C) 옆의 확인란을 선택하여 SSE-C 암호화를 차단하거나 이 확인란을 선택 취소하여 SSE-C를 허용합니다.

  7. 변경 사항 저장을 선택합니다.

AWS CLI를 설치하려면 AWS Command Line Interface 사용 설명서에서 AWS 설치를 참조하세요.

다음 CLI 예제에서는 AWS CLI를 사용하여 범용 버킷에 대한 SSE-C 암호화를 차단하거나 차단 해제하는 방법을 보여줍니다. 명령을 사용하려면 사용자 입력 자리 표시자를 사용자의 정보로 대체합니다.

범용 버킷에 대한 SSE-C 암호화 차단 요청:

aws s3api put-bucket-encryption \ --bucket amzn-s3-demo-bucket \ --server-side-encryption-configuration '{ "Rules": [{ "BlockEncryptionTypes": { "EncryptionType": "SSE-C" } }] }'

범용 버킷에서 SSE-C 암호화 사용 활성화 요청:

aws s3api put-bucket-encryption \ --bucket amzn-s3-demo-bucket \ --server-side-encryption-configuration '{ "Rules": [{ "BlockEncryptionTypes": { "EncryptionType": "NONE" } }] }'
SDK for Java 2.x

다음 CLI 예제에서는 AWS SDK를 사용하여 범용 버킷에 대한 SSE-C 암호화 쓰기를 차단하거나 차단 해제하는 방법을 보여줍니다.

예 - 기본 암호화 구성을 SSE-S3로 설정하고 SSE-C를 차단하는 PutBucketEncryption 요청

S3Client s3Client = ...; ServerSideEncryptionByDefault defaultSse = ServerSideEncryptionByDefault .builder() .sseAlgorithm(ServerSideEncryption.AES256) .build(); BlockedEncryptionTypes blockedEncryptionTypes = BlockedEncryptionTypes .builder() .encryptionType(EncryptionType.SSE_C) .build(); ServerSideEncryptionRule rule = ServerSideEncryptionRule.builder() .applyServerSideEncryptionByDefault(defaultSse) .blockedEncryptionTypes(blockedEncryptionTypes) .build(); s3Client.putBucketEncryption(be -> be .bucket(bucketName) .serverSideEncryptionConfiguration(c -> c.rules(rule)));

예 - 기본 암호화 구성을 SSE-S3로 설정하고 SSE-C를 차단 해제하는 PutBucketEncryption 요청

S3Client s3Client = ...; ServerSideEncryptionByDefault defaultSse = ServerSideEncryptionByDefault .builder() .sseAlgorithm(ServerSideEncryption.AES256) .build(); BlockedEncryptionTypes blockedEncryptionTypes = BlockedEncryptionTypes .builder() .encryptionType(EncryptionType.NONE) .build(); ServerSideEncryptionRule rule = ServerSideEncryptionRule.builder() .applyServerSideEncryptionByDefault(defaultSse) .blockedEncryptionTypes(blockedEncryptionTypes) .build(); s3Client.putBucketEncryption(be -> be .bucket(bucketName) .serverSideEncryptionConfiguration(c -> c.rules(rule)));
SDK for Python Boto3

예 - 기본 암호화 구성을 SSE-S3로 설정하고 SSE-C를 차단하는 PutBucketEncryption 요청

s3 = boto3.client("s3") s3.put_bucket_encryption( Bucket="amzn-s3-demo-bucket", ServerSideEncryptionConfiguration={ "Rules":[{ "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "AES256" }, "BlockedEncryptionTypes": { "EncryptionType": ["SSE-C"] } }] } )

예 - 기본 암호화 구성을 SSE-S3로 설정하고 SSE-C를 차단 해제하는 PutBucketEncryption 요청

s3 = boto3.client("s3") s3.put_bucket_encryption( Bucket="amzn-s3-demo-bucket", ServerSideEncryptionConfiguration={ "Rules":[{ "ApplyServerSideEncryptionByDefault": { "SSEAlgorithm": "AES256" }, "BlockedEncryptionTypes": { "EncryptionType": ["NONE"] } }] } )

범용 버킷에 대한 SSE-C 암호화를 차단 또는 차단 해제하기 위한 Amazon S3 REST API 지원과 관련된 자세한 내용은 Amazon Simple Storage Service API 참조의 다음 섹션을 참조하세요.