Verschlüsselung auf Spaltenebene mit Cloud KMS
Sie können Cloud Key Management Service (Cloud KMS) verwenden, um die Schlüssel zu verschlüsseln, die wiederum die Werte in BigQuery-Tabellen verschlüsseln. Sie können die AEAD-Verschlüsselungsfunktionen mit Cloud KMS-Schlüsselsätzen oder verpackten Schlüsselsätzen verwenden, um eine zweite Schutzebene auf Spaltenebene bereitzustellen.
Einleitung
Als zusätzliche Schutzmaßnahme verschlüsselt Cloud KMS Ihren Datenverschlüsselungsschlüssel (Data Encryption Key, DEK) mit einem zweiten Schlüsselverschlüsselungsschlüssel (Key Encryption Key, KEK). In BigQuery reduziert der Verweis auf einen verschlüsselten Schlüsselsatz anstelle eines Klartextschlüsselsatzes das Risiko der Schlüsselfreigabe. Der KEK ist ein symmetrischer Verschlüsselungs-Schlüsselsatz, der sicher in Cloud KMS gespeichert und mit IAM-Rollen und -Berechtigungen (Identity and Access Management) verwaltet wird.
BigQuery unterstützt deterministische und nicht deterministische Verschlüsselungsfunktionen. Bei der deterministischen Verschlüsselung sind die Geheimtext identisch, wenn sowohl die gespeicherten Daten als auch die zusätzlichen authentifizierten Daten (optional) identisch sind. Dies ermöglicht die Unterstützung von Aggregationen und Joins auf Basis der verschlüsselten Spalte. Bei der nicht deterministischen Verschlüsselung ist der gespeicherte Geheimtext unabhängig von den verschlüsselten Daten eindeutig, wodurch Clustering, Aggregation und Joins verhindert werden.
Zum Zeitpunkt der Abfrageausführung geben Sie den Cloud KMS-Ressourcenpfad des KEK und den Geheimtext aus dem verpackten DEK an. BigQuery ruft Cloud KMS auf, um den DEK zu entpacken, und verwendet diesen Schlüssel dann zum Entschlüsseln der Daten in Ihrer Abfrage. Die entpackte Version des DEK wird nur für die Dauer der Abfrage im Arbeitsspeicher gespeichert und dann gelöscht.
Wenn Sie Cloud KMS in einer Region verwenden, in der der Cloud External Key Manager unterstützt wird, können Sie Cloud EKM-basierte Schlüssel in Cloud KMS verwenden.
Anwendungsfälle
Anwendungsfälle für die Verschlüsselung mit Cloud KMS-Schlüsseln umfassen Folgendes:
- Extern verschlüsselte Daten, die in BigQuery gespeichert werden müssen, ohne den Schlüsselsatz als Klartext zu speichern. Ihre Daten können dann aus der Tabelle exportiert oder mit einer SQL-Abfrage entschlüsselt werden.
- "Doppelte Zugriffssteuerung" für verschlüsselte Daten in BigQuery. Ein Nutzer muss Zugriff sowohl auf die Tabelle als auch auf den Verschlüsselungsschlüssel erhalten, um Daten als Klartext lesen zu können.
Nutzerberechtigungsmatrix | ||
---|---|---|
Berechtigung für Tabelle | Keine Berechtigung für Tabelle | |
Berechtigungen für Schlüssel | Verschlüsselte Daten lesen und entschlüsseln. | Kein Zugriff. |
Keine Berechtigungen für Schlüssel | Verschlüsselte Daten lesen. | Kein Zugriff. |
Wenn ein Nutzer Zugriff auf den KMS-Schlüssel und auf den verpackten Schlüsselsatz hat, können SQL-Funktionen den Schlüsselsatz entpacken und den Geheimtext entschlüsseln. Nutzer können auch die Cloud KMS REST API oder die Befehlszeile verwenden, um den Schlüsselsatz zu entpacken.
Im folgenden Abfragebeispiel werden KMS-SQL-Funktionen verwendet, um nicht deterministischen Geheimtext zu entschlüsseln:
SELECT AEAD.DECRYPT_STRING( KEYS.KEYSET_CHAIN(@kms_resource_name, @first_level_keyset), ciphertext, additional_authenticated_data) FROM ciphertext_table WHERE ...
Beispiel für einen Anwendungsfall
Gehen Sie von einer Implementierung aus, bei der Postleitzahlen als vertrauliche Informationen gelten. Postleitzahlsdaten können mithilfe der AEAD-Verschlüsselungsfunktion in die BigQuery-Tabelle eingefügt werden, wodurch die Spalte Zipcode
verschlüsselt wird. In diesem Beispiel verwenden wir die Funktion AEAD.ENCRYPT
mit der Verwaltungsfunktion für verpackte Schlüsselsätze. Die Funktion KEYS.KEYSET_CHAIN
verschlüsselt den digitalen Verschlüsselungsschlüssel mit dem KEK. Die Funktion AEAD.ENCRYPT
übergibt die Informationen dann an KMS.
Die Schlüsselsatzkette für die Verschlüsselung und Entschlüsselung sorgt dafür, dass der Datenverschlüsselungsschlüssel (Data Encryption Key, DEK) verschlüsselt oder mit einem KEK verpackt wird und mit diesem KEK übergeben wird. Der verpackte DEK wird innerhalb der SQL-Funktion entschlüsselt oder ausgepackt und dann zum Verschlüsseln oder Entschlüsseln von Daten verwendet.
Die nicht deterministische AEAD-Funktion kann Daten entschlüsseln, wenn sie mit der Funktion in der Abfrage aufgerufen werden, die in der Tabelle ausgeführt wird.
Die deterministische AEAD-Funktion kann Daten entschlüsseln, wenn auf sie mit der Funktion in der Abfrage zugegriffen wird, die auf der Tabelle ausgeführt wird. Außerdem wird die Aggregation und Joins mithilfe der verschlüsselten Daten unterstützt.
Nicht deterministische Funktionssyntax
Folgende Syntax wird für die Verwendung nicht deterministischer Funktionen unterstützt:
AEAD.ENCRYPT( KEYS.KEYSET_CHAIN(kms_resource_name, first_level_keyset), plaintext, additional_authenticated_data)
AEAD.DECRYPT_STRING( KEYS.KEYSET_CHAIN(kms_resource_name, first_level_keyset), ciphertext, additional_authenticated_data)
AEAD.DECRYPT_BYTES( KEYS.KEYSET_CHAIN(kms_resource_name, first_level_keyset), ciphertext, additional_authenticated_data)
Weitere Informationen finden Sie unter der Funktionssyntax AEAD.DECRYPT_BYTES
, AEAD.ENCRYPT
, AEAD.DECRYPT_STRING
und KEYS.KEYSET_CHAIN
.
Deterministische Funktionssyntax
Folgende Syntax wird für die Verwendung deterministischer Funktionen unterstützt:
DETERMINISTIC_ENCRYPT( KEYS.KEYSET_CHAIN(kms_resource_name, first_level_keyset), plaintext, additional_data)
DETERMINISTIC_DECRYPT_STRING( KEYS.KEYSET_CHAIN(kms_resource_name, first_level_keyset), ciphertext, additional_data)
DETERMINISTIC_DECRYPT_BYTES( KEYS.KEYSET_CHAIN(kms_resource_name, first_level_keyset), ciphertext, additional_data)
Weitere Informationen finden Sie unter der Funktionssyntax DETERMINISTIC_DECRYPT_BYTES
, DETERMINISTIC_ENCRYPT
, DETERMINISTIC_DECRYPT_STRING
und KEYS.KEYSET_CHAIN
.
Rollen und Berechtigungen
Eine Liste der Rollen für Cloud KMS finden Sie unter Cloud KMS-Berechtigungen und -Rollen.
Beschränkungen
Für die Verschlüsselung mit Cloud KMS gelten die folgenden Limits und Einschränkungen:
Die Cloud KMS-Schlüssel sind auf dieselbe Region oder Multiregion wie die Abfrage beschränkt. Die Verwendung globaler Cloud KMS-Schlüssel ist aus Gründen der Zuverlässigkeit nicht zulässig.
Ein verpackter Schlüsselsatz kann nicht mit der Funktion
KEYS.ROTATE_KEYSET
rotiert werden.Die konstanten Parameter in einer BigQuery-Abfrage für Nutzer im Diagnoseabfrageplan sind sichtbar. Dies kann sich auf die Parameter
kms_resource_name
undfirst_level_keyset
der FunktionKEYSET_CHAIN
auswirken. Schlüssel werden niemals als Klartext bereitgestellt und es ist eine Berechtigung für den Cloud KMS-Schlüssel erforderlich, um den verpackten Schlüsselsatz zu entschlüsseln. Mit diesem Ansatz wird sichergestellt, dass Schlüssel nicht über den Diagnoseabfrageplan verfügbar gemacht werden, es sei denn, der Nutzer ist berechtigt, den Schlüsselsatz zu entschlüsseln.Für die Verschlüsselung auf Spaltenebene gelten die folgenden Einschränkungen bei der Verwendung typbasierter Sicherheitsklassifizierungen:
Sicherheit auf Spaltenebene: Nutzer können Daten nur in Spalten entschlüsseln oder verschlüsseln, auf die sie Zugriff haben.
Sicherheit auf Zeilenebene: Nutzer können Daten nur in Zeilen entschlüsseln, auf die sie Zugriff haben.
SQL-Funktionen auf Spaltenebene haben keine wesentlichen Auswirkungen auf die Leistung im Vergleich zur Leistung von Rohverschlüsselungsfunktionen, bei denen die Schlüsseldaten als reiner Text gesendet werden.
Hinweis
Um mit Cloud KMS-Schlüsseln, -Schlüsselsätzen, verschlüsselten Tabellen, deterministischen und nicht deterministischen Funktionen zu arbeiten, müssen Sie Folgendes tun, falls Sie dies noch nicht getan haben:
Erstellen Sie einen Cloud KMS-Schlüssel für eine verschlüsselte Spalte mit der Software oder der Schutzstufe Hardwaresicherheitsmodul (HSM).
Beachten Sie die folgenden Konzepte, die in den nächsten Abschnitten referenziert werden:
PROJECT_ID
: Der Name des Google Cloud-Projekts.DATASET_NAME
: Der Name des BigQuery-Datasets.LOCATION_ID
: Der Speicherort des BigQuery-Datasets.TABLE_NAME
: Der Name der BigQuery-Tabelle.KEY_RING_ID
: Der Name des Cloud KMS-Schlüsselbunds.KEY_ID
: Der Name des Cloud KMS-Schlüssels.KMS_KEY
: Der Cloud KMS-Schlüssel (KEK) in diesem Format:'gcp-kms://projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING_ID/cryptoKeys/KEY_ID'
Hier ist ein Beispiel für einen Cloud KMS-Schlüssel:
'gcp-kms://projects/myProject/locations/us/keyRings/myKeyRing/cryptoKeys/myKeyName'
KMS_KEY_SHORT
: WieKMS_KEY
, aber in diesem Format:projects/PROJECT_ID/locations/LOCATION_ID/keyRings/KEY_RING_ID/cryptoKeys/KEY_ID
KEYSET_DECODED
: Ein decodierter Schlüsselsatz alsBYTES
-Sequenz. Die Ausgabe sieht etwa so aus wie bei einem decodierten verpackten Schlüsselsatz.Obwohl Schlüsselsatz-Funktionen Schlüsselsätze als Byte zurückgeben, wird die Nutzerausgabe als codierter String angezeigt. Informationen zum Konvertieren eines codierten Schlüsselsatzes in einen decodierten Schlüsselsatz finden Sie unter Cloud KMS-Schlüsselsatz decodieren.
KEYSET_ENCODED
: Ein codierter Schlüsselsatz alsSTRING
. Die Ausgabe sieht etwa so aus wie bei einem codierten verpackten Schlüsselsatz.Informationen zum Konvertieren eines codierten Schlüsselsatzes in einen decodierten Schlüsselsatz finden Sie unter Cloud KMS-Schlüsselsatz decodieren.
WRAPPED_KEYSET_DECODED
: Ein decodierter Schlüsselsatz alsBYTES
-Sequenz. Die Ausgabe sieht beispielsweise so aus:b'\x0a$\x00\xa6\xee\x12Y\x8d|l"\xf7\xfa\xc6\xeafM\xdeefy\xe9\x7f\xf2z\xb3M\ xf6"\xd0\xe0Le\xa8\x8e\x0fR\xed\x12\xb7\x01\x00\xf0\xa80\xbd\xc1\x07Z\\ \xd0L<\x80A0\x9ae\xfd(9\x1e\xfa\xc8\x93\xc7\xe8\...'
Obwohl verpackte Schlüsselsatz-Funktionen verpackte Schlüsselsätze als Byte zurückgeben, wird die Nutzerausgabe als codierter String angezeigt. Informationen zum Konvertieren eines codierten verpackten Schlüsselsatzes in einen decodierten verpackten Schlüsselsatz finden Sie unter Cloud KMS-Schlüsselsatz decodieren.
WRAPPED_KEYSET_ENCODED
: Ein codierter verpackter Schlüsselsatz alsSTRING
. Die Ausgabe sieht beispielsweise so aus:'CiQApu4SWTozQ7lNwITxpEvGlo5sT2rv1tyuSv3UAMtoTq/lhDwStwEA8KgwvX7CpVVzhWWMkRw WZNr3pf8uBIlzHeunCy8ZsQ6CofQYFpiBRBB6k/QqATbiFV+3opnDk/6dBL/S8OO1WoDC+DdD9 uzEFwqt5D20lTXCkGWFv1...'
Informationen zum Konvertieren eines codierten verpackten Schlüsselsatzes in einen decodierten verpackten Schlüsselsatz finden Sie unter Cloud KMS-Schlüsselsatz decodieren.
Schlüsselverwaltung
Die folgenden Abschnitte enthalten allgemeine Aufgaben, die Sie mit Cloud KMS-Schlüsseln ausführen können.
Schlüsselsatz erstellen
Sie können verpackte Schlüsselsätze oder Rohschlüsselsätze erstellen. Führen Sie dazu die Schritte in den folgenden Abschnitten aus.
Rohschlüsselsatz erstellen
Führen Sie die folgende Abfrage aus, um einen Schlüsselsatz mit einem Schlüssel vom Typ DETERMINISTIC_AEAD_AES_SIV_CMAC_256
zu erstellen.
SELECT KEYS.NEW_KEYSET('DETERMINISTIC_AEAD_AES_SIV_CMAC_256') AS raw_keyset
Verpackten Schlüsselsatz erstellen
Führen Sie die folgende Abfrage aus, um einen mit Cloud KMS verpackten Schlüsselsatz mit dem Schlüssel des Typs DETERMINISTIC_AEAD_AES_SIV_CMAC_256
zu erstellen.
SELECT KEYS.NEW_WRAPPED_KEYSET( KMS_KEY, 'DETERMINISTIC_AEAD_AES_SIV_CMAC_256')
Schlüsselsatz decodieren
Obwohl SQL-Funktionen, die Schlüsselsätze zurückgeben, die Schlüsselsätze im Format BYTES
erzeugen, wird das vom Nutzer angezeigte Ergebnis codiert und im Format STRING
angezeigt. Verwenden Sie die folgende Abfrage, wenn Sie diesen codierten String in eine decodierte Byte-Sequenz umwandeln möchten, die Sie als Funktionen für die literale Schlüsselverschlüsselung verwenden können.
Verpackten Schlüsselsatz decodieren
Führen Sie die folgende Abfrage aus, um einen mit Cloud KMS verpackten Schlüsselsatz zu decodieren.
SELECT FORMAT('%T', FROM_BASE64(WRAPPED_KEYSET_ENCODED'))
Rohschlüsselsatz decodieren
Führen Sie die folgende Abfrage aus, um einen Standard-Schlüsselsatz zu decodieren.
SELECT FORMAT('%T', FROM_BASE64(KEYSET_ENCODED'))
Verpackten Schlüsselsatz noch einmal verpacken
Führen Sie die folgende Abfrage aus, um einen mit Cloud KMS verpackten Schlüsselsatz mit einem neuen Cloud KMS-Schlüssel neu zu verpacken. KMS_KEY_CURRENT
steht für die neue KMS_KEY
, die zum Verschlüsseln des Schlüsselsatzes verwendet wird. KMS_KEY_NEW
steht für die neue KMS_KEY
, die zum Verschlüsseln des Schlüsselsatzes verwendet wird.
SELECT KEYS.REWRAP_KEYSET( KMS_KEY_CURRENT, KMS_KEY_NEW, WRAPPED_KEYSET_DECODED)
Verpackten Schlüsselsatz rotieren
Führen Sie die folgende Abfrage aus, um einen mit Cloud KMS verpackten Schlüsselsatz mit einem Schlüssel vom Typ DETERMINISTIC_AEAD_AES_SIV_CMAC_256
zu rotieren.
SELECT KEYS.ROTATE_WRAPPED_KEYSET( KMS_KEY, WRAPPED_KEYSET_DECODED, 'DETERMINISTIC_AEAD_AES_SIV_CMAC_256')
Rohschlüsselsatz aus einem verpackten Schlüsselsatz generieren
Für einige Verschlüsselungsfunktionen wird ein Rohschlüsselsatz benötigt. Führen Sie die folgenden Schritte aus, um einen mit Cloud KMS verpackten Schlüsselsatz zu entschlüsseln, um ein Rohschlüsselset zu erstellen.
Geben Sie im bq-Befehlszeilentool die folgenden Befehle ein, um einen verpackten Schlüsselsatz in einer Datei namens
keyset_to_unwrap
zu speichern, den verpackten Schlüsselsatz zu entschlüsseln und die Ausgabe imKEYSET_DECODED
-Format zu erzeugen:echo WRAPPED_KEYSET_ENCODED | base64 -d > /tmp/decoded_wrapped_key
gcloud kms decrypt \ --ciphertext-file=/tmp/decoded_wrapped_key \ --key=KMS_KEY_SHORT \ --plaintext-file=/tmp/keyset_to_unwrap.dec \ --project=PROJECT_ID
od -An --format=o1 /tmp/keyset_to_unwrap.dec | tr ' ' '\'
Verpackten Schlüsselsatz aus einem Rohschlüsselsatz generieren
Für einige Verschlüsselungsfunktionen wird ein mit Cloud KMS verpackter Schlüsselsatz benötigt. Führen Sie die folgenden Schritte aus, um einen Rohschlüsselsatz zu verschlüsseln, mit dem ein verpackter Schlüsselsatz erstellt wird.
Geben Sie im bq-Befehlszeilentool die folgenden Befehle ein, um einen Schlüsselsatz im Rohformat in einer Datei namens
keyset_to_wrap
zu speichern, das Rohschlüsselset zu verschlüsseln und die Ausgabe im FormatWRAPPED_KEYSET_DECODED
zu erzeugen:echo KEYSET_ENCODED | base64 -d > /tmp/decoded_key
gcloud kms encrypt \ --plaintext-file=/tmp/decoded_key \ --key=KMS_KEY_SHORT \ --ciphertext-file=/tmp/keyset_to_wrap.dec \ --project=PROJECT_ID
od -An --format=o1 /tmp/keyset_to_wrap.dec | tr ' ' '\'
Verpackten Schlüssel für eine DLP-Funktion generieren
Für DLP-Funktionen benötigen Sie einen kryptografischen Schlüssel, mit dem Sie dann einen zusammengefassten Schlüssel erhalten.
Führen Sie zum Generieren eines neuen kryptografischen Schlüssels in der Befehlszeile den folgenden Befehl aus. Die Größe des Schlüssels kann 16, 24 oder 32 Byte betragen. Im folgenden Beispiel wird ein 16-Byte-Schlüssel verwendet:
openssl rand 16 > rand.key.16.bin
Verpacken Sie den generierten 16-Byte-Schlüssel mit einem KMS-Schlüssel. Sehen Sie sich folgendes Beispiel an:
KEYRING=projects/myproject/locations/us/keyRings/kms-test KEY=projects/myproject/locations/us/keyRings/kms-test/cryptoKeys/test-Kek PROJECT="myproject" gcloud kms encrypt --project $PROJECT --location us --keyring $KEYRING --key $KEY --plaintext-file ./rand.key.16.bin --ciphertext-file ./rand.key.16.wrapped
Sie können jetzt das Literal
BYTES
des verpackten Schlüssels oder das base64-Format des verpackten Schlüssels abrufen.Byteliteral
username:~/tmp$ od -b ./rand.key.16.wrapped | cut -d ' ' -f 2- | head -n -1 | sed -e 's/^/ /' | tr ' ' '\'
Die Ausgabe sieht in etwa so aus:
\012\044\000\325\155\264\153\246\071\172\130\372\305\103\047\342\356\061\077\014\030\126\147\041\126\150\012\036\020\202\215\044\267\310\331\014\116\233\022\071\000\363\344\230\067\274\007\340\273\016\212\151\226\064\200\377\303\207\103\147\052\267\035\350\004\147\365\251\271\133\062\251\246\152\177\017\005\270\044\141\211\116\337\043\035\263\122\340\110\333\266\220\377\247\204\215\233
Base64-Format
username:~/tmp$ base64 ./rand.key.16.wrapped
Die Ausgabe sieht in etwa so aus:
CiQA1W20a6Y5elj6xUMn4u4xPwwYVmchVmgKHhCCjSS3yNkMTpsSOQDz5Jg3vAfguw6KaZY0gP/Dh0NnKrcd6ARn9am5WzKppmp/DwW4JGGJTt8jHbNS4EjbtpD/p4SNmw==
Anzahl der Schlüssel in einem Schlüsselsatz abrufen
Führen Sie die folgende Abfrage aus, um die Anzahl der Schlüssel in einem Standard-Schlüsselsatz abzurufen.
Wenn Sie mit einem verpackten Schlüsselsatz arbeiten, erstellen Sie zuerst ein Rohschlüsselset.
Führen Sie diese Abfrage mit dem Rohschlüsselsatz aus:
SELECT KEYS.KEYSET_LENGTH(KEYSET_DECODED) as key_count;
JSON-Darstellung eines Schlüsselsatzes abrufen
Führen Sie die folgende Abfrage aus, um eine JSON-Darstellung eines Standard-Schlüsselsatzs aufzurufen.
Wenn Sie mit einem verpackten Schlüsselsatz arbeiten, erstellen Sie zuerst ein Rohschlüsselset.
Führen Sie diese Abfrage mit dem Rohschlüsselsatz aus:
SELECT KEYS.KEYSET_TO_JSON(KEYSET_DECODED);
Verschlüsselung und Entschlüsselung
Sie können RAW-Schlüsselsätze oder verpackte Schlüsselsätze verwenden, um eine Spalte in einer Tabelle zu verschlüsseln. Sie können auch die deterministische oder nicht deterministische Verschlüsselung für Ihre Spalten verwenden. In den Beispielen in diesem Abschnitt werden verpackte Schlüsselsätze verwendet. Sie können jedoch die verpackten Schlüsselsätze durch Rohschlüsselsätze ersetzen.
Spalte mit einem verpackten Schlüsselsatz deterministisch verschlüsseln
Führen Sie die folgende Abfrage aus, um eine Tabelle zu erstellen und einen mit Cloud KMS verpackten Schlüsselsatz mit deterministischer Verschlüsselung in einer Spalte namens encrypted_content
zu speichern.
Spalte mit dem verpackten Schlüsselsatz verschlüsseln
CREATE OR REPLACE TABLE DATASET_NAME.TABLE_NAME AS SELECT DETERMINISTIC_ENCRYPT( KEYS.KEYSET_CHAIN(KMS_KEY, WRAPPED_KEYSET_DECODED), 'plaintext', '') AS encrypted_content
Spalte mit einem verpackten Schlüsselsatz deterministisch entschlüsseln
Führen Sie die folgende Abfrage aus, um eine Spalte mit verschlüsselten Inhalten deterministisch zu entschlüsseln. Verwenden Sie dazu einen mit Cloud KMS verpackten Schlüsselsatz. Bei dieser Abfrage wird davon ausgegangen, dass Sie auf eine Tabelle mit einer Spalte namens encrypted_content
verweisen.
SELECT DETERMINISTIC_DECRYPT_STRING( KEYS.KEYSET_CHAIN(KMS_KEY, WRAPPED_KEYSET_DECODED), encrypted_content, '') FROM DATASET_NAME.TABLE_NAME
Spalte mit einem verpackten Schlüsselsatz nicht deterministisch verschlüsseln
Siehe Spalte mit einem verpackten Schlüsselsatz deterministisch verschlüsseln, aber DETERMINISTIC_ENCRYPT
durch AEAD.ENCRYPT
ersetzen. Achten Sie darauf, dass Ihr Schlüsselsatz vom Typ AEAD_AES_GCM_256
ist.
Spalte mit einem verpackten Schlüsselsatz nicht deterministisch entschlüsseln
Siehe Spalte mit einem verpackten Schlüsselsatz deterministisch entschlüsseln, aber DETERMINISTIC_DECRYPT_STRING
durch AEAD.DECRYPT_STRING
ersetzen. Achten Sie darauf, dass Ihr Schlüsselsatz vom Typ AEAD_AES_GCM_256
ist.
Nächste Schritte
- Mehr über Cloud KMS erfahren Dieses Thema enthält konzeptionelle Informationen zur Verschlüsselung auf Spaltenebene für Google Cloud.
- AEAD-Verschlüsselung für BigQuery. Dieses Thema enthält konzeptionelle Informationen zur Verschlüsselung auf Spaltenebene speziell für BigQuery.
- AEAD-Verschlüsselungsfunktionen für BigQuery. Dieses Thema enthält alle SQL-Funktionen, die Sie für die Verschlüsselung auf Spaltenebene in BigQuery verwenden können.