Wenn Sie die transparente Datenverschlüsselung (Transparent Data Encryption, TDE) aktivieren möchten, müssen Sie die erforderlichen Vault-Umgebungsvariablen angeben und das Flag --tde-kek-url in POSTGRES_INITDB_ARGS einfügen.
Hinweis
- Konfigurieren Sie die KV-V2-Secrets-Engine von HashiCorp Vault um sicherzustellen, dass der Pfad des Schlüsselverschlüsselungsschlüssels (Key Encryption Key, KEK) und das JSON Web Token (JWT) verfügbar sind.
- Prüfen Sie, ob AlloyDB Omni die Berechtigung zum Lesen der JWT-Tokendatei hat.
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 eingebunden werden soll. Beispiel:/local/data.VAULT_AUTH_TYPE: der Authentifizierungstyp, der für die Vault-Verbindung verwendet werden soll. Nurjwtwird unterstützt.JWT_AUTH_ENGINE_MOUNT: Pfad, unter dem die HashiCorp Vault-Authentifizierungs-Engine eingebunden ist. Beispiel:/auth/jwt.JWT_FILE_PATH: Pfad, unter dem das Vault-JWT auf Ihren Knoten gespeichert ist. 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 Vault-Zertifikaten auf dem Host. Beispiel:/local/vault/config.VAULT_CERT_PATH: Pfad, unter dem sich die Zertifikate für die Vault-Verbindung in Ihrem Container befinden. Beispiel:/tde-tls. Wenn nicht festgelegt, 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 Spaltencache-Daten aktivieren möchten, die auf SSD-Speicher ausgelagert wurden, 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.
Referenzen zu TDE-Messwerten
Alle TDE-Messwerte können im Monitoring-Agent von AlloyDB Omni angezeigt werden. In der folgenden Tabelle wird die Bedeutung der einzelnen Messwerte erläutert.
| 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 |
Gesamtzeit für die Verschlüsselung temporärer Blöcke. | 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 Verschlüsselung von WAL-Blöcken. | 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 für die Verschlüsselung von Chill-Cache-Blöcken. | Nicht zutreffend | Mikrosekunden | Zähler |
tde_chill_cache_blocks_total_decryption_time_us |
Gesamtzeit für die Entschlüsselung von Chill-Cache-Blöcken. | Nicht zutreffend | Mikrosekunden | Zähler |
tde_ce_cache_ssd_blocks_encrypted |
Anzahl der verschlüsselten Spaltencache-Blöcke, die auf SSD-Speicher ausgelagert wurden. | Nicht zutreffend | Zähler | |
tde_ce_cache_ssd_blocks_decrypted |
Anzahl der entschlüsselten Spaltencache-Blöcke, die auf SSD-Speicher ausgelagert wurden. | Nicht zutreffend | Zähler | |
tde_ce_cache_ssd_blocks_total_encryption_time_us |
Gesamtzeit für die Verschlüsselung von Spaltencache-Blöcken, die auf SSD-Speicher ausgelagert wurden. | Nicht zutreffend | Mikrosekunden | Zähler |
tde_ce_cache_ssd_blocks_total_decryption_time_us |
Gesamtzeit für die Entschlüsselung von Spaltencache-Blöcken, die auf SSD-Speicher ausgelagert wurden. | Nicht zutreffend | Mikrosekunden | Zähler |