

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Konvertiert CSE-KMS Tabellendaten in SSE-KMS
<a name="convert-csekms-table-ssekms"></a>

Wenn Ihre Workflows derzeit CSE-KMS die Verschlüsselung von Tabellendaten verwenden, fahren Sie SSE-KMS mit den folgenden Schritten fort.

## Voraussetzung
<a name="convert-csekms-table-ssekms-preq"></a>

Wenn Sie Daten immer noch mit einer CSE-KMS Arbeitsgruppe oder mit clientseitigen Einstellungen schreiben, folgen Sie den Schritten unter, [Migrieren Sie von zu CSE-KMS SSE-KMS](migrating-csekms-ssekms.md) um sie zu aktualisieren. SSE-KMS Dadurch wird verhindert, dass während des Migrationsprozesses neue CSE-KMS verschlüsselte Daten aus anderen Workflows hinzugefügt werden, die möglicherweise in die Tabellen schreiben.

## Datenmigrationen
<a name="convert-csekms-table-ssekms-migrat"></a>

1. Überprüfen Sie, ob für die Tabelle die `has_encrypted_data`-Eigenschaft auf `true` gesetzt ist. Diese Eigenschaft gibt an, dass die Tabelle möglicherweise CSE-KMS verschlüsselte Daten enthält. Es ist jedoch wichtig zu beachten, dass diese Eigenschaft auch in Tabellen ohne tatsächlich CSE-KMS verschlüsselte Daten vorhanden sein kann.

------
#### [ Console ]

   1. Öffnen Sie die Athena-Konsole unter [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/).

   1. Wählen Sie **Abfrage-Editor starten**.

   1. Wählen Sie auf der linken Seite des Editors unter **Datenbank** die Datenbank aus, die Sie abfragen möchten.

   1. Führen Sie im Abfrageeditor die folgende Abfrage aus, um den für die `has_encrypted_data table`-Eigenschaft festgelegten Wert zu sehen.

      ```
      SHOW TBLPROPERTIES {{<table_name>}}('has_encrypted_data');
      ```

------
#### [ CLI ]

   Starten Sie die Athena-Abfrage, die den Wert der `has_encrypted_data`-Eigenschaft in der Tabelle zeigt, wie im folgenden Beispiel gezeigt.

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

   Rufen Sie Abfrageergebnisse ab, um den Wert der `has_encrypted_data`-Tabelleneigenschaft für die Tabelle zu überprüfen, wie im folgenden Beispiel gezeigt.

   ```
   aws athena get-query-results --query-execution-id {{<query-execution-id-from-previous-step>}}
   ```

------

1. Für jedes CSE-KMS verschlüsselte Objekt in der Tabelle.

   1. Laden Sie das Objekt mit dem S3-Verschlüsselungsclient von S3 herunter und entschlüsseln Sie es. Hier ist ein Beispiel mit AWS Java SDK V2.

      **Importe**

      ```
      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;
      ```

      Code

      ```
      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);
      ```

   1. Laden Sie das Objekt mit demselben Namen und derselben SSE-KMS Verschlüsselung auf S3 hoch. Hier ist ein Beispiel mit AWS Java SDK V2.

      **Importe**

      ```
      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;
      ```

      **Code**

      ```
      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()));
      ```

## Nach der Migration
<a name="convert-csekms-table-ssekms-post-migrat"></a>

Führen Sie die folgenden Schritte aus, nachdem Sie alle CSE-KMS Dateien in der Tabelle erfolgreich erneut verschlüsselt haben. 

1. Entfernen Sie die `has_encrypted_data`-Eigenschaft aus der Tabelle.

------
#### [ Console ]

   1. Öffnen Sie die Athena-Konsole unter [https://console.aws.amazon.com/athena/](https://console.aws.amazon.com/athena/).

   1. Wählen Sie **Abfrage-Editor starten**.

   1. Wählen Sie auf der linken Seite des Editors unter **Datenbank** die Datenbank aus, die Sie abfragen möchten.

   1. Führen Sie im Abfrageeditor die folgende Abfrage für Ihre Tabelle aus.

      ```
      ALTER TABLE {{<database-name>}}.{{<table-name>}} UNSET TBLPROPERTIES ('has_encrypted_data')
      ```

------
#### [ CLI ]

   Führen Sie den folgenden `has_encrypted_data`-Befehl aus, um eine Ausgabe aus Ihrer Tabelle zu entfernen.

   ```
   aws athena start-query-execution \
       --query-string "ALTER TABLE {{<database-name>}}.{{<table-name>}} UNSET TBLPROPERTIES ('has_encrypted_data');" \
       --work-group "{{<my-workgroup>}}"
   ```

------

1. Aktualisieren Sie Ihre Workflows so, dass sie einen einfachen S3-Client anstelle eines S3-Verschlüsselungsclients verwenden, und geben Sie dann die SSE-KMS Verschlüsselung für Datenschreibvorgänge an. 