새 객체에 SSE-KMS와 함께 S3 버킷 키를 사용하도록 버킷 구성 - Amazon Simple Storage Service

새 객체에 SSE-KMS와 함께 S3 버킷 키를 사용하도록 버킷 구성

AWS Key Management Service(AWS KMS) 키(SSE-KMS)를 통해 서버 측 암호화를 구성할 때 새 객체에서 SSE-KMS용 S3 버킷 키를 사용하도록 버킷을 구성할 수 있습니다. S3 버킷 키는 Amazon S3에서 AWS KMS로 가는 요청 트래픽을 줄이고 SSE-KMS 비용을 절감합니다. 자세한 내용은 Amazon S3 버킷 키를 사용하여 SSE-KMS 비용 절감 단원을 참조하십시오.

Amazon S3 콘솔, REST API, AWS SDK, AWS Command Line Interface(AWS CLI) 또는 AWS CloudFormation을 사용하여 새 객체에 SSE-KMS용 S3 버킷 키를 사용하도록 버킷을 구성할 수 있습니다. 기존 객체에 대해 S3 버킷 키를 사용하거나 사용 중지하려는 경우 CopyObject 작업을 사용할 수 있습니다. 자세한 내용은 객체 수준에서 S3 버킷 키 구성 Batch Operations를 사용하여 SSE-KMS용 S3 버킷 키 활성화 섹션을 참조하십시오.

원본 또는 대상 버킷에 대해 S3 버킷 키가 사용 설정되면 암호화 컨텍스트는 객체 ARN이 아니라 버킷 Amazon 리소스 이름(ARN)이 됩니다. 예: arn:aws:s3:::bucket_ARN. 암호화 컨텍스트에 버킷 ARN을 사용하려면 IAM 정책을 업데이트해야 합니다. 자세한 내용은 S3 버킷 키 및 복제 단원을 참조하십시오.

다음 예에서는 S3 버킷 키가 복제와 함께 작동하는 방식을 보여 줍니다. 자세한 내용은 암호화(SSE-S3, SSE-KMS, DSSE-KMS, SSE-C)된 객체 복제 단원을 참조하십시오. 

사전 조건

S3 버킷 키를 사용하도록 버킷을 구성하기 전에 S3 버킷 키를 사용 설정하기 전에 유의할 변경 사항을(를) 검토하십시오.

주제

    S3 콘솔에서 새 버킷 또는 기존 버킷에 대해 S3 버킷 키를 사용 설정하거나 사용 중지할 수 있습니다. S3 콘솔의 객체는 버킷 구성에서 S3 버킷 키 설정을 상속합니다. 버킷에 대해 S3 버킷 키를 활성화하면 버킷에 업로드하는 새 객체는 SSE-KMS용 S3 버킷 키를 사용합니다.

    S3 버킷 키가 사용 설정된 버킷의 객체 업로드, 복사 또는 수정

    S3 버킷 키가 활성화된 버킷의 객체를 업로드, 수정 또는 복사하는 경우 해당 객체에 대한 S3 버킷 키 설정이 버킷 구성에 맞게 업데이트될 수 있습니다.

    객체에 이미 S3 버킷 키가 사용 설정되어 있으면 객체를 복사하거나 수정할 때 해당 객체에 대한 S3 버킷 키 설정이 변경되지 않습니다. 그러나 S3 버킷 키가 사용 설정되지 않은 객체를 수정하거나 복사하고 대상 버킷에 S3 버킷 키 구성이 있으면 객체는 대상 버킷의 S3 버킷 키 설정을 상속합니다. 예를 들어, 소스 객체에 S3 버킷 키가 활성화되어 있지 않지만 대상 버킷에 S3 버킷 키가 활성화되어 있으면 객체에 대해 S3 버킷 키가 활성화됩니다.

    새 버킷을 생성할 때 S3 버킷 키 사용 설정
    1. AWS Management Console에 로그인한 후 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

    2. 왼쪽 탐색 창에서 버킷(Buckets)을 선택합니다.

    3. 버킷 만들기를 선택합니다.

    4. 버킷 이름을 입력하고 AWS 리전을 선택합니다.

    5. 기본 암호화암호화 키 유형에서 AWS Key Management Service 키(SSE-KMS)를 선택합니다.

    6. AWS KMS 키에서 다음 중 하나를 수행하여 KMS 키를 선택합니다.

      • 사용 가능한 KMS 키 목록에서 AWS KMS keys 중에서 선택을 선택한 다음, 사용 가능한 키 목록에서 KMS 키를 선택합니다.

        AWS 관리형 키(aws/s3)와 고객 관리형 키가 모두 목록에 표시됩니다. 고객 관리형 키에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 고객 키 및 AWS 키를 참조하십시오.

      • KMS 키 ARN을 입력하려면 AWS KMS key ARN 입력을 선택하고 나타나는 필드에 KMS 키 ARN을 입력합니다.

      • AWS KMS 콘솔에서 고객 관리형 키를 생성하려면 KMS 키 생성을 선택합니다.

        AWS KMS key 생성에 대한 자세한 내용은 AWS Key Management Service 개발자 가이드키 생성을 참조하십시오.

    7. 버킷 키(Bucket Key)에서 사용(Enable)을 선택합니다.

    8. 버킷 만들기를 선택합니다.

      Amazon S3는 S3 버킷 키가 사용 설정된 버킷을 생성합니다. 버킷에 업로드하는 새 객체는 S3 버킷 키를 사용합니다. 

      S3 버킷 키를 사용 중지하려면 이전 단계를 따르고 사용 중지(Disable)를 선택합니다.

    기존 버킷에 대해 S3 버킷 키 사용 설정
    1. https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

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

    3. 버킷(Buckets) 목록에서 S3 버킷 키를 사용 설정할 버킷을 선택합니다.

    4. 속성(Properties) 탭을 선택합니다.

    5. 기본 암호화에서 편집을 선택합니다.

    6. 기본 암호화암호화 키 유형에서 AWS Key Management Service 키(SSE-KMS)를 선택합니다.

    7. AWS KMS 키에서 다음 중 하나를 수행하여 KMS 키를 선택합니다.

      • 사용 가능한 KMS 키 목록에서 AWS KMS keys 중에서 선택을 선택한 다음, 사용 가능한 키 목록에서 KMS 키를 선택합니다.

        AWS 관리형 키(aws/s3)와 고객 관리형 키가 모두 목록에 표시됩니다. 고객 관리형 키에 대한 자세한 내용은 AWS Key Management Service 개발자 안내서의 고객 키 및 AWS 키를 참조하십시오.

      • KMS 키 ARN을 입력하려면 AWS KMS key ARN 입력을 선택하고 나타나는 필드에 KMS 키 ARN을 입력합니다.

      • AWS KMS 콘솔에서 고객 관리형 키를 생성하려면 KMS 키 생성을 선택합니다.

        AWS KMS key 생성에 대한 자세한 내용은 AWS Key Management Service 개발자 가이드키 생성을 참조하십시오.

    8. 버킷 키(Bucket Key)에서 사용(Enable)을 선택합니다.

    9. [변경 사항 저장(Save changes)]을 선택합니다.

      Amazon S3는 버킷에 추가된 새 객체에 대해 S3 버킷 키를 사용 설정합니다. 기존 객체는 S3 버킷 키를 사용하지 않습니다. 기존 객체에 대해 S3 버킷 키를 구성하려면 CopyObject 작업을 사용하면 됩니다. 자세한 내용은 객체 수준에서 S3 버킷 키 구성 단원을 참조하십시오.

      S3 버킷 키를 사용 중지하려면 이전 단계를 따르고 사용 중지(Disable)를 선택합니다.

    PutBucketEncryption을 선택하여 버킷에 대한 S3 버킷 키를 사용하거나 사용 중지할 수 있습니다. PutBucketEncryption에서 S3 버킷 키를 구성하려면 ServerSideEncryptionRule 데이터 유형을 사용합니다. 여기에는 SSE-KMS를 사용하는 기본 암호화가 포함되어 있습니다. 원하면 고객 관리형 키에 대한 KMS 키 ID를 지정하여 고객 관리형 키를 사용할 수도 있습니다. 

    자세한 내용과 예제 구문에 대해서는 PutBucketEncryption을 참조하십시오.

    다음 예시에서는 AWS SDK for Java를 사용하여 SSE-KMS 및 S3 버킷 키로 기본 버킷 암호화를 사용합니다.

    Java
    AmazonS3 s3client = AmazonS3ClientBuilder.standard()     .withRegion(Regions.DEFAULT_REGION)     .build();     ServerSideEncryptionByDefault serverSideEncryptionByDefault = new ServerSideEncryptionByDefault()     .withSSEAlgorithm(SSEAlgorithm.KMS); ServerSideEncryptionRule rule = new ServerSideEncryptionRule()     .withApplyServerSideEncryptionByDefault(serverSideEncryptionByDefault)     .withBucketKeyEnabled(true); ServerSideEncryptionConfiguration serverSideEncryptionConfiguration =     new ServerSideEncryptionConfiguration().withRules(Collections.singleton(rule)); SetBucketEncryptionRequest setBucketEncryptionRequest = new SetBucketEncryptionRequest()     .withServerSideEncryptionConfiguration(serverSideEncryptionConfiguration)     .withBucketName(bucketName);              s3client.setBucketEncryption(setBucketEncryptionRequest);

    다음 예시에서는 AWS CLI를 사용하여 SSE-KMS 및 S3 버킷 키로 기본 버킷 암호화를 사용합니다. user input placeholders를 사용자의 정보로 대체합니다.

    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             }         ]     }'

    AWS CloudFormation을 통해 S3 버킷 키를 구성하는 방법에 대한 자세한 내용은 AWS CloudFormation 사용 설명서의 AWS::S3::Bucket ServerSideEncryptionRule을 참조하십시오.