쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

CSE-KMS 테이블 데이터를 SSE-KMS로 변환

포커스 모드
CSE-KMS 테이블 데이터를 SSE-KMS로 변환 - Amazon Athena

현재 워크플로가 테이블 데이터 암호화에 CSE-KMS를 사용하는 경우 다음 단계를 통해 SSE-KMS로 전환합니다.

전제 조건

CSE-KMS 작업 그룹 또는 클라이언트 측 설정을 사용하여 여전히 데이터를 쓰는 경우 CSE-KMS에서 SSE-KMS로 마이그레이션의 단계에 따라 SSE-KMS로 업데이트하세요. 이렇게 하면 마이그레이션 프로세스 중에 테이블에 쓸 수 있는 다른 워크플로에서 새 CSE-KMS 암호화된 데이터가 추가되지 않습니다.

데이터 마이그레이션

  1. 테이블에 has_encrypted_data 속성이 true로 설정되어 있는지 확인합니다. 이 속성은 테이블에 CSE-KMS 암호화 데이터가 포함될 수 있도록 지정합니다. 그러나 이 속성은 CSE-KMS 암호화 데이터가 실제로는 없는 테이블에도 존재할 수 있다는 점에 유의해야 합니다.

    Console
    1. https://console.aws.amazon.com/athena/에서 Athena 콘솔을 엽니다.

    2. 쿼리 편집기 시작을 선택합니다.

    3. 편집기 왼쪽의 데이터베이스에서 쿼리할 데이터베이스를 선택합니다.

    4. 쿼리 편집기에서 다음 쿼리를 실행하여 has_encrypted_data table 속성으로 설정된 값을 확인합니다.

      SHOW TBLPROPERTIES <table_name>('has_encrypted_data');
    CLI

    다음 예제와 같이 테이블에 has_encrypted_data 속성 값을 표시하는 Athena 쿼리를 시작합니다.

    aws athena start-query-execution \ --query-string "SHOW TBLPROPERTIES <table-name>('has_encrypted_data');" \ --work-group "<my-workgroup>"

    다음 예제와 같이 쿼리 결과를 가져와서 테이블의 has_encrypted_data 테이블 속성 값을 확인합니다.

    aws athena get-query-results --query-execution-id <query-execution-id-from-previous-step>
    1. https://console.aws.amazon.com/athena/에서 Athena 콘솔을 엽니다.

    2. 쿼리 편집기 시작을 선택합니다.

    3. 편집기 왼쪽의 데이터베이스에서 쿼리할 데이터베이스를 선택합니다.

    4. 쿼리 편집기에서 다음 쿼리를 실행하여 has_encrypted_data table 속성으로 설정된 값을 확인합니다.

      SHOW TBLPROPERTIES <table_name>('has_encrypted_data');
  2. 테이블의 각 CSE-KMS 암호화 객체의 경우.

    1. S3 암호화 클라이언트를 사용하여 S3에서 객체를 다운로드하고 복호화합니다. 다음은 AWS Java SDK V2의 예제입니다.

      가져오기

      import software.amazon.awssdk.core.ResponseInputStream; import software.amazon.awssdk.services.s3.model.GetObjectRequest; import software.amazon.awssdk.services.s3.model.GetObjectResponse; import software.amazon.encryption.s3.S3EncryptionClient; import software.amazon.encryption.s3.materials.Keyring; import software.amazon.encryption.s3.materials.KmsDiscoveryKeyring;

      코드

      final Keyring kmsDiscoveryKeyRing = KmsDiscoveryKeyring.builder() .enableLegacyWrappingAlgorithms(true) .build(); final S3EncryptionClient s3EncryptionClient = S3EncryptionClient.builder() .enableLegacyUnauthenticatedModes(true) .keyring(kmsDiscoveryKeyRing) .build(); GetObjectRequest getObjectRequest = GetObjectRequest.builder() .bucket("amzn-s3-demo-bucket") .key("<my-key>") .build(); ResponseInputStream<GetObjectResponse> s3Object = s3EncryptionClient.getObject(getObjectRequest);
    2. 동일한 이름과 SSE-KMS 암호화를 사용하여 객체를 S3에 업로드합니다. 다음은 AWS Java SDK V2의 예제입니다.

      가져오기

      import software.amazon.awssdk.core.ResponseInputStream; import software.amazon.awssdk.core.sync.RequestBody; import software.amazon.awssdk.services.s3.S3Client; import software.amazon.awssdk.services.s3.model.PutObjectRequest; import software.amazon.awssdk.services.s3.model.ServerSideEncryption;

      코드

      final S3Client s3Client = S3Client.builder() .build(); PutObjectRequest putObjectRequest = PutObjectRequest.builder() .bucket("amzn-s3-demo-bucket") .key("<my-key>") .serverSideEncryption(ServerSideEncryption.AWS_KMS) .ssekmsKeyId("<my-kms-key>") .build(); s3Client.putObject(putObjectRequest, RequestBody.fromBytes(s3Object.readAllBytes()));

마이그레이션 후

테이블의 모든 CSE-KMS 파일에 대한 재암호화를 만료한 후 다음 단계를 수행합니다.

  1. 테이블에서 has_encrypted_data 속성을 제거합니다.

    Console
    1. https://console.aws.amazon.com/athena/에서 Athena 콘솔을 엽니다.

    2. 쿼리 편집기 시작을 선택합니다.

    3. 편집기 왼쪽의 데이터베이스에서 쿼리할 데이터베이스를 선택합니다.

    4. 쿼리 편집기에서 테이블에 대해 다음 쿼리를 실행합니다.

      ALTER TABLE <database-name>.<table-name> UNSET TBLPROPERTIES ('has_encrypted_data')
    CLI

    다음 명령을 실행하여 테이블에서 has_encrypted_data 속성을 제거합니다.

    aws athena start-query-execution \ --query-string "ALTER TABLE <database-name>.<table-name> UNSET TBLPROPERTIES ('has_encrypted_data');" \ --work-group "<my-workgroup>"
    1. https://console.aws.amazon.com/athena/에서 Athena 콘솔을 엽니다.

    2. 쿼리 편집기 시작을 선택합니다.

    3. 편집기 왼쪽의 데이터베이스에서 쿼리할 데이터베이스를 선택합니다.

    4. 쿼리 편집기에서 테이블에 대해 다음 쿼리를 실행합니다.

      ALTER TABLE <database-name>.<table-name> UNSET TBLPROPERTIES ('has_encrypted_data')
  2. S3 암호화 클라이언트 대신 기본 S3 클라이언트를 사용하도록 워크플로를 업데이트한 다음 데이터 쓰기에 SSE-KMS 암호화를 지정합니다.

이 페이지에서

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.