Cookie の設定を選択する

当社は、当社のサイトおよびサービスを提供するために必要な必須 Cookie および類似のツールを使用しています。当社は、パフォーマンス Cookie を使用して匿名の統計情報を収集することで、お客様が当社のサイトをどのように利用しているかを把握し、改善に役立てています。必須 Cookie は無効化できませんが、[カスタマイズ] または [拒否] をクリックしてパフォーマンス Cookie を拒否することはできます。

お客様が同意した場合、AWS および承認された第三者は、Cookie を使用して便利なサイト機能を提供したり、お客様の選択を記憶したり、関連する広告を含む関連コンテンツを表示したりします。すべての必須ではない Cookie を受け入れるか拒否するには、[受け入れる] または [拒否] をクリックしてください。より詳細な選択を行うには、[カスタマイズ] をクリックしてください。

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 暗号化を指定します。

このページの内容

プライバシーサイト規約Cookie の設定
© 2025, Amazon Web Services, Inc. or its affiliates.All rights reserved.