Sie können Ihre Daten im Ruhezustand schützen und vertrauliche Informationen schützen, indem Sie die transparente Datenverschlüsselung (Transparent Data Encryption, TDE) in AlloyDB Omni aktivieren. In diesem Dokument wird beschrieben, wie Sie einen TDE-fähigen Cluster erstellen, indem Sie die erforderlichen Umgebungsvariablen für den Tresor und das --tde-kek-url-Flag in der Umgebungsvariable POSTGRES_INITDB_ARGS während der Datenbankinitialisierung angeben.
Hinweis
- Konfigurieren Sie die KV-V2-Secrets-Engine von HashiCorp Vault, damit der KEK-Pfad (Key Encryption Key) und das JSON-Webtoken (JWT) verfügbar sind.
- Prüfen Sie, ob AlloyDB Omni die Berechtigung zum Lesen der JWT-Datei (JSON Web Token) hat, die das Authentifizierungstoken ist.
Cluster erstellen
Wenn Sie einen TDE-fähigen Cluster erstellen möchten, müssen Sie bei der Initialisierung der Datenbank die erforderliche KMS-Konfiguration (Key Management Service) und die Authentifizierungsanmeldedaten übergeben. Der einzige unterstützte Authentifizierungstyp ist jwt.
Wählen Sie den Tab für Ihre Containerlaufzeit aus.
Docker
docker run -d --name CONTAINER_NAME \ --network host \ -v DATA_DIR:/var/lib/postgresql/data \ -v VAULT_CERT_PATH_ON_DISK:VAULT_CERT_PATH \ -e VAULT_AUTH_TYPE=jwt \ -e VAULT_AUTH_MOUNT=JWT_AUTH_ENGINE_MOUNT \ -e VAULT_JWT_PATH=JWT_FILE_PATH \ -e VAULT_ROLE=VAULT_ROLE \ -e VAULT_CERT_PATH=VAULT_CERT_PATH \ -e POSTGRES_INITDB_ARGS=" \ --tde-kek-url=KEK_URL" \ google/alloydbomni:IMAGE_TAG
Docker
docker run -d --name CONTAINER_NAME \ --network host \ -v DATA_DIR:/var/lib/postgresql/data \ -v VAULT_CERT_PATH_ON_DISK:VAULT_CERT_PATH \ -e VAULT_AUTH_TYPE=jwt \ -e VAULT_AUTH_MOUNT=JWT_AUTH_ENGINE_MOUNT \ -e VAULT_JWT_PATH=JWT_FILE_PATH \ -e VAULT_ROLE=VAULT_ROLE \ -e VAULT_CERT_PATH=VAULT_CERT_PATH \ -e POSTGRES_INITDB_ARGS=" \ --tde-kek-url=KEK_URL" \ google/alloydbomni:IMAGE_TAG
Podman
podman run -d --name CONTAINER_NAME \ --network host \ -v DATA_DIR:/var/lib/postgresql/data \ -v VAULT_CERT_PATH_ON_DISK:VAULT_CERT_PATH \ -e VAULT_AUTH_TYPE=jwt \ -e VAULT_AUTH_MOUNT=JWT_AUTH_ENGINE_MOUNT \ -e VAULT_JWT_PATH=JWT_FILE_PATH \ -e VAULT_ROLE=VAULT_ROLE \ -e VAULT_CERT_PATH=VAULT_CERT_PATH \ -e POSTGRES_INITDB_ARGS=" \ --tde-kek-url=KEK_URL" \ google/alloydbomni:IMAGE_TAG
Podman
podman run -d --name CONTAINER_NAME \ --network host \ -v DATA_DIR:/var/lib/postgresql/data \ -v VAULT_CERT_PATH_ON_DISK:VAULT_CERT_PATH \ -e VAULT_AUTH_TYPE=jwt \ -e VAULT_AUTH_MOUNT=JWT_AUTH_ENGINE_MOUNT \ -e VAULT_JWT_PATH=JWT_FILE_PATH \ -e VAULT_ROLE=VAULT_ROLE \ -e VAULT_CERT_PATH=VAULT_CERT_PATH \ -e POSTGRES_INITDB_ARGS=" \ --tde-kek-url=KEK_URL" \ google/alloydbomni:IMAGE_TAG
Ersetzen Sie Folgendes:
CONTAINER_NAME: Der Name des zu erstellenden Containers. Beispiel:alloydb-tde.DATA_DIR: Das lokale Verzeichnis, das als Datenvolume für AlloyDB Omni bereitgestellt werden soll. Beispiel:/local/data.VAULT_AUTH_TYPE: Der Authentifizierungstyp, der für die Vault-Verbindung verwendet werden soll. Es wird nurjwtunterstützt.JWT_AUTH_ENGINE_MOUNT: Pfad, unter dem die HashiCorp Vault-Authentifizierungs-Engine bereitgestellt wird. Beispiel:/auth/jwt.JWT_FILE_PATH: Pfad, unter dem das Vault-JWT auf Ihren Knoten gespeichert wird. Beispiel:tde-tls/jwt-token.- (Optional)
VAULT_ROLE: Die in Ihrer Vault-Einrichtung definierte Clientrolle, mit der HashiCorp Vault die Authentizität des JWT-Tokens überprüfen kann. VAULT_CERT_PATH_ON_DISK: Pfad zu Tresorzertifikaten auf dem Hostcomputer. Beispiel:/local/vault/config.VAULT_CERT_PATH: Pfad, unter dem sich die Zertifikate für die Vault-Verbindung in Ihrem Container befinden. Beispiel:/tde-tlsWenn nichts festgelegt ist, werden die Zertifikate im Standard-Trust Store verwendet.KEK_URL: Die vollständig qualifizierte URL zum KEK in HashiCorp Vault. Verwenden Sievaultals Protokoll, um HashiCorp Vault als KMS-Anbieter anzugeben, z. B.vault://127.0.0.1:8200/v1/secrets/data/alloydb_kek.IMAGE_TAG: Verwenden Sie18.3.0für das neueste Debian-Image oder18.3.0-ubifür das neueste UBI-Image.
Wenn Sie TDE für Cache-Daten der spaltenbasierten Engine aktivieren möchten, die auf SSD-Speicher ausgelagert werden, stellen Sie eine Verbindung zu Ihrer Datenbankinstanz her und führen Sie die folgende Abfrage aus:
ALTER SYSTEM SET google_columnar_engine.enable_tde_for_storage_cache = 'on';
Starten Sie den Datenbankserver neu, damit die Änderungen wirksam werden.
TDE-Messwertreferenzen
Sie können alle TDE-Messwerte im Monitoring-Agent von AlloyDB Omni ansehen. In der folgenden Tabelle werden die einzelnen Messwerte beschrieben.
| Name | Beschreibung | Label | Einheit | Typ |
|---|---|---|---|---|
alloydb_omni_database_tde_data_blocks_decrypted_count_total |
Anzahl der entschlüsselten Datenblöcke. | Nicht zutreffend | Zähler | |
alloydb_omni_database_tde_data_blocks_encrypted_count_total |
Anzahl der verschlüsselten Datenblöcke. | Nicht zutreffend | Zähler | |
alloydb_omni_database_tde_data_decryption_time_us_total |
Gesamtzeit für die Entschlüsselung von Datenblöcken. | Nicht zutreffend | Mikrosekunden | Zähler |
alloydb_omni_database_tde_data_encryption_time_us_total |
Gesamtzeit für die Verschlüsselung von Datenblöcken. | Nicht zutreffend | Mikrosekunden | Zähler |
alloydb_omni_database_tde_enabled |
Status der TDE-Aktivierung. | Nicht zutreffend | Gauge | |
alloydb_omni_database_tde_kek_info |
TDE-KEK-Informationen. |
|
Gauge | |
alloydb_omni_database_tde_temp_blocks_decrypted_count_total |
Anzahl der entschlüsselten temporären Blöcke. | Nicht zutreffend | Zähler | |
alloydb_omni_database_tde_temp_blocks_encrypted_count_total |
Anzahl der verschlüsselten temporären Blöcke. | Nicht zutreffend | Zähler | |
alloydb_omni_database_tde_temp_decryption_time_us_total |
Gesamtzeit für die Entschlüsselung temporärer Blöcke. | Nicht zutreffend | Mikrosekunden | Zähler |
alloydb_omni_database_tde_temp_encryption_time_us_total |
Gesamtdauer der temporären Blockverschlüsselung. | Nicht zutreffend | Mikrosekunden | Zähler |
alloydb_omni_database_tde_wal_blocks_decrypted_count_total |
Anzahl der entschlüsselten WAL-Blöcke. | Nicht zutreffend | Zähler | |
alloydb_omni_database_tde_wal_blocks_encrypted_count_total |
Anzahl der verschlüsselten WAL-Blöcke. | Nicht zutreffend | Zähler | |
alloydb_omni_database_tde_wal_decryption_time_us_total |
Gesamtzeit für die Entschlüsselung von WAL-Blöcken. | Nicht zutreffend | Mikrosekunden | Zähler |
alloydb_omni_database_tde_wal_encryption_time_us_total |
Gesamtzeit für die WAL-Blockverschlüsselung. | Nicht zutreffend | Mikrosekunden | Zähler |
tde_chill_cache_blocks_encrypted |
Anzahl der verschlüsselten Chill-Cache-Blöcke. | Nicht zutreffend | Zähler | |
tde_chill_cache_blocks_decrypted |
Anzahl der entschlüsselten Chill-Cache-Blöcke. | Nicht zutreffend | Zähler | |
tde_chill_cache_blocks_total_encryption_time_us |
Gesamtzeit, die für die Verschlüsselung von Chill-Cache-Blöcken aufgewendet wurde. | Nicht zutreffend | Mikrosekunden | Zähler |
tde_chill_cache_blocks_total_decryption_time_us |
Gesamtzeit für die Entschlüsselung von Blöcken im Chill-Cache. | Nicht zutreffend | Mikrosekunden | Zähler |
tde_ce_cache_ssd_blocks_encrypted |
Anzahl der in den SSD-Speicher ausgelagerten spaltenbasierten Cache-Blöcke, die verschlüsselt wurden. | Nicht zutreffend | Zähler | |
tde_ce_cache_ssd_blocks_decrypted |
Anzahl der spaltenbasierten Cacheblöcke, die auf SSD-Speicher ausgelagert und entschlüsselt wurden. | Nicht zutreffend | Zähler | |
tde_ce_cache_ssd_blocks_total_encryption_time_us |
Gesamtzeit, die für die Verschlüsselung von spaltenbasierten Cacheblöcken aufgewendet wurde, die auf SSD-Speicher ausgelagert wurden. | Nicht zutreffend | Mikrosekunden | Zähler |
tde_ce_cache_ssd_blocks_total_decryption_time_us |
Gesamtzeit, die für die Entschlüsselung von spaltenbasierten Cache-Blöcken aufgewendet wurde, die auf SSD-Speicher ausgelagert wurden. | Nicht zutreffend | Mikrosekunden | Zähler |