기본 암호화 구성

기본 암호화 구성 (Configuring default encryption)

Amazon S3 버킷에는 기본적으로 버킷 암호화가 활성화되어 있고, 새 객체는 Amazon S3 관리 키(SSE-S3)를 사용한 서버 측 암호화로 자동 암호화돼요. 더 세밀한 키 제어가 필요하다면 SSE-KMS나 DSSE-KMS를 선택할 수 있어요.

출처: 문서

본문

중요 Amazon S3는 이제 Amazon S3 관리 키(SSE-S3)를 사용한 서버 측 암호화를 모든 버킷의 기본 암호화 수준으로 적용해요. 2023년 1월 5일부터 Amazon S3에 업로드되는 모든 새 객체는 추가 비용 없이 성능 영향 없이 자동으로 암호화돼요. S3 버킷 기본 암호화 구성과 새 객체 업로드에 대한 자동 암호화 상태는 CloudTrail 로그, S3 Inventory, S3 Storage Lens, Amazon S3 콘솔, 그리고 AWS CLI 및 AWS SDK의 추가 Amazon S3 API 응답 헤더에서 확인할 수 있어요. 자세한 내용은 기본 암호화 FAQ를 참고하세요.

Amazon S3 버킷에는 기본적으로 버킷 암호화가 활성화되어 있고, 새 객체는 Amazon S3 관리 키(SSE-S3)를 사용한 서버 측 암호화로 자동 암호화돼요. 이 암호화는 Amazon S3 버킷의 모든 새 객체에 적용되며 비용이 들지 않아요.

키 회전과 접근 정책 권한과 같은 암호화 키를 더 세밀하게 제어해야 한다면 AWS Key Management Service(AWS KMS) 키를 사용한 서버 측 암호화(SSE-KMS)나 AWS KMS 키를 사용한 이중 계층 서버 측 암호화(DSSE-KMS)를 선택할 수 있어요. SSE-KMS에 대한 자세한 내용은 AWS KMS를 사용한 서버 측 암호화 지정하기(SSE-KMS)를 참고하고, DSSE-KMS에 대한 자세한 내용은 AWS KMS 키를 사용한 이중 계층 서버 측 암호화(DSSE-KMS)를 참고하세요.

다른 계정이 소유한 KMS 키를 사용하려면 해당 키를 사용할 권한이 있어야 해요. KMS 키의 교차 계정 권한에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 다른 계정이 사용할 수 있는 KMS 키 만들기를 참고하세요.

버킷 기본 암호화를 SSE-KMS로 설정할 때 S3 Bucket Key를 구성하면 AWS KMS 요청 비용을 줄일 수 있어요. 자세한 내용은 Amazon S3 Bucket Keys로 SSE-KMS 비용 절감하기를 참고하세요.

참고 PutBucketEncryption으로 기본 버킷 암호화를 SSE-KMS로 설정할 때는 KMS 키 ID가 올바른지 확인하세요. Amazon S3는 PutBucketEncryption 요청에 제공된 KMS 키 ID를 검증하지 않아요.

S3 버킷에 대한 기본 암호화 사용에는 추가 요금이 없어요. 기본 암호화 동작을 구성하는 요청에는 표준 Amazon S3 요청 요금이 부과돼요. 요금에 대한 정보는 Amazon S3 요금을 참고하세요. SSE-KMS와 DSSE-KMS의 경우 AWS KMS 요금이 적용되며 AWS KMS 요금에 나와 있어요.

고객 제공 키를 사용한 서버 측 암호화(SSE-C)는 기본 암호화에서 지원되지 않아요.

Amazon S3 콘솔, AWS SDK, Amazon S3 REST API, AWS Command Line Interface(AWS CLI)를 사용해 S3 버킷의 Amazon S3 기본 암호화를 구성할 수 있어요.

기본 암호화 활성화 전에 확인할 변경 사항

버킷에 기본 암호화를 활성화한 후에는 다음과 같은 암호화 동작이 적용돼요.

  • 기본 암호화가 활성화되기 전에 버킷에 존재했던 객체의 암호화에는 변경이 없어요.
  • 기본 암호화를 활성화한 후 객체를 업로드할 때: PUT 요청 헤더에 암호화 정보가 포함되지 않으면 Amazon S3가 버킷의 기본 암호화 설정을 사용해 객체를 암호화해요. PUT 요청 헤더에 암호화 정보가 포함되면 Amazon S3가 Amazon S3에 저장하기 전에 PUT 요청의 암호화 정보를 사용해 객체를 암호화해요.
  • 기본 암호화 구성에 SSE-KMS 또는 DSSE-KMS 옵션을 사용하면 AWS KMS의 초당 요청 수(RPS) 할당량이 적용돼요. AWS KMS 할당량과 할당량 증가 요청 방법에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 할당량을 참고하세요.
  • 이 버킷이 서버 액세스 로깅의 대상으로 사용되는 경우 대상 버킷은 Amazon S3 관리 키(SSE-S3)를 사용해야 해요. 대상 버킷이 SSE-KMS 기본 암호화를 사용하면 Amazon S3가 접근할 수 없는 키로 암호화된 로그 객체를 전달할 수 있어요. 이 문제를 해결하려면 대상 버킷의 기본 암호화를 SSE-S3로 변경하세요. 서버 액세스 로깅에 대한 자세한 내용은 서버 액세스 로깅으로 요청 기록하기를 참고하세요.

참고 기본 암호화 활성화 전에 업로드된 객체는 암호화되지 않아요. 기존 객체 암호화에 대한 정보는 Amazon S3 버킷의 기본 서버 측 암호화 동작 설정하기를 참고하세요.

Amazon S3 버킷에 기본 암호화를 구성하려면

  1. AWS Management Console에 로그인하고 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 열어요.
  2. 왼쪽 탐색 창에서 **버킷(Buckets)**을 선택해요.
  3. 버킷(Buckets) 목록에서 원하는 버킷의 이름을 선택해요.
  4. 속성(Properties) 탭을 선택해요.
  5. 기본 암호화(Default encryption) 아래에서 **편집(Edit)**을 선택해요.
  6. 암호화를 구성하려면 암호화 유형(Encryption type) 아래에서 다음 중 하나를 선택해요: Amazon S3 관리 키를 사용한 서버 측 암호화(SSE-S3), AWS Key Management Service 키를 사용한 서버 측 암호화(SSE-KMS), AWS Key Management Service 키를 사용한 이중 계층 서버 측 암호화(DSSE-KMS). > 중요 기본 암호화 구성에 SSE-KMS 또는 DSSE-KMS 옵션을 사용하면 AWS KMS의 초당 요청 수(RPS) 할당량이 적용돼요. AWS KMS 할당량과 할당량 증가 요청 방법에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 할당량을 참고하세요. 버킷에 다른 기본 암호화 유형을 지정하지 않으면 버킷과 새 객체는 기본적으로 SSE-S3로 암호화돼요. 기본 암호화에 대한 자세한 내용은 Amazon S3 버킷의 기본 서버 측 암호화 동작 설정하기를 참고하세요. Amazon S3 서버 측 암호화로 데이터를 암호화하는 방법에 대한 자세한 내용은 Amazon S3 관리 키를 사용한 서버 측 암호화(SSE-S3)를 참고하세요.
  7. AWS Key Management Service 키를 사용한 서버 측 암호화(SSE-KMS) 또는 **AWS Key Management Service 키를 사용한 이중 계층 서버 측 암호화(DSSE-KMS)**를 선택했다면 다음을 수행해요. AWS KMS key 아래에서 다음 방법 중 하나로 KMS 키를 지정해요. 사용 가능한 KMS 키 목록에서 선택하려면 **내 AWS KMS 키에서 선택(Choose from your AWS KMS keys)**을 선택하고 사용 가능한 키 목록에서 KMS 키를 선택해요. AWS 관리 키(aws/s3)와 고객 관리 키 모두 이 목록에 나타나요. 고객 관리 키에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 고객 키와 AWS 키를 참고하세요. KMS 키 ARN을 입력하려면 **AWS KMS 키 ARN 입력(Enter AWS KMS key ARN)**을 선택하고 나타나는 필드에 KMS 키 ARN을 입력해요. AWS KMS 콘솔에서 새 고객 관리 키를 만들려면 **KMS 키 만들기(Create a KMS key)**를 선택해요. AWS KMS 키 생성에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 키 생성을 참고하세요. > 중요 버킷과 같은 AWS 리전에서 활성화된 KMS 키만 사용할 수 있어요. **내 KMS 키에서 선택(Choose from your KMS keys)**을 선택하면 S3 콘솔은 리전당 100개의 KMS 키만 나열해요. 같은 리전에 100개가 넘는 KMS 키가 있다면 S3 콘솔에서 처음 100개의 KMS 키만 볼 수 있어요. 콘솔에 나열되지 않은 KMS 키를 사용하려면 **AWS KMS 키 ARN 입력(Enter AWS KMS key ARN)**을 선택하고 KMS 키 ARN을 입력해요. Amazon S3에서 서버 측 암호화에 AWS KMS 키를 사용할 때는 대칭 암호화 KMS 키를 선택해야 해요. Amazon S3는 대칭 암호화 KMS 키만 지원해요. 이러한 키에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 대칭 암호화 KMS 키를 참고하세요. Amazon S3에서 SSE-KMS 사용에 대한 자세한 내용은 AWS KMS 키를 사용한 서버 측 암호화(SSE-KMS)를 참고하고, DSSE-KMS 사용에 대한 자세한 내용은 AWS KMS 키를 사용한 이중 계층 서버 측 암호화(DSSE-KMS)를 참고하세요. 버킷을 SSE-KMS를 사용한 기본 암호화로 구성할 때 S3 Bucket Key도 활성화할 수 있어요. S3 Bucket Keys는 Amazon S3에서 AWS KMS로 가는 요청 트래픽을 줄여 암호화 비용을 낮춰요. 자세한 내용은 Amazon S3 Bucket Keys로 SSE-KMS 비용 절감하기를 참고하세요. S3 Bucket Keys를 사용하려면 Bucket Key 아래에서 **활성화(Enable)**를 선택해요. > 참고 S3 Bucket Keys는 DSSE-KMS에서 지원되지 않아요.
  8. **변경 사항 저장(Save changes)**을 선택해요.

다음 예제는 SSE-S3를 사용하거나 S3 Bucket Key와 함께 SSE-KMS를 사용해 기본 암호화를 구성하는 방법을 보여줘요.

기본 암호화에 대한 자세한 내용은 Amazon S3 버킷의 기본 서버 측 암호화 동작 설정하기를 참고하세요. AWS CLI로 기본 암호화를 구성하는 방법에 대한 자세한 내용은 put-bucket-encryption을 참고하세요.

예제 – SSE-S3를 사용한 기본 암호화

이 예제는 Amazon S3 관리 키를 사용해 기본 버킷 암호화를 구성해요.

aws s3api put-bucket-encryption --bucket amzn-s3-demo-bucket --server-side-encryption-configuration '{
    "Rules": [
        {
            "ApplyServerSideEncryptionByDefault": {
                "SSEAlgorithm": "AES256"
            }
        }
    ]
}'

예제 – S3 Bucket Key를 사용한 SSE-KMS 기본 암호화

이 예제는 S3 Bucket Key를 사용해 SSE-KMS로 기본 버킷 암호화를 구성해요.

aws s3api put-bucket-encryption --bucket amzn-s3-demo-bucket --server-side-encryption-configuration '{
    "Rules": [
        {
            "ApplyServerSideEncryptionByDefault": {
                "SSEAlgorithm": "aws:kms",
                "KMSMasterKeyID": "KMS-Key-ARN"
            },
            "BucketKeyEnabled": true
        }
    ]
}'

REST API PutBucketEncryption 작업을 사용해 기본 암호화를 활성화하고 사용할 서버 측 암호화 유형(SSE-S3, SSE-KMS 또는 DSSE-KMS)을 설정할 수 있어요.

자세한 내용은 Amazon Simple Storage Service API 참조의 PutBucketEncryption을 참고하세요.

더 알아보기 (Learn more)