Wenn Sie die transparente Datenverschlüsselung (Transparent Data Encryption, TDE) aktivieren möchten, müssen Sie die erforderlichen Umgebungsvariablen für den Tresor 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-Webtoken (JWT) verfügbar sind.
- Achten Sie darauf, dass 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 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 Vault-Zertifikaten 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.1.0für das neueste Debian-Image oder18.1.0-ubifür das neueste UBI-Image.
Messwerte für die Geräteverschlüsselung aufrufen
Nachdem der Cluster initialisiert wurde, führen Sie die folgenden Schritte aus, um zu prüfen, ob TDE aktiviert ist, und um zugehörige TDE-Messwerte aufzurufen.
- Stellen Sie mit
psqloder Ihrem bevorzugten Client eine Verbindung zu Ihrer Datenbank her. Eine detaillierte Anleitung zum Herstellen einer Verbindung zu Ihren Instanzen finden Sie unter AlloyDB Omni ausführen und eine Verbindung herstellen. Führen Sie dazu diesen Befehl aus:
select * FROM pgsnap.g$tde_stats;Wenn TDE erfolgreich aktiviert wurde, enthält die Ausgabe TDE-Messwerte, z. B. ob TDE aktiviert ist, die KEK-URL, die KEK-Version und den KEK-Erstellungszeitstempel.
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_totalAnzahl der entschlüsselten Datenblöcke. Nicht zutreffend Zähler alloydb_omni_database_tde_data_blocks_encrypted_count_totalAnzahl der verschlüsselten Datenblöcke. Nicht zutreffend Zähler alloydb_omni_database_tde_data_decryption_time_us_totalGesamtzeit für die Entschlüsselung von Datenblöcken. Nicht zutreffend Mikrosekunden Zähler alloydb_omni_database_tde_data_encryption_time_us_totalGesamtzeit für die Verschlüsselung von Datenblöcken. Nicht zutreffend Mikrosekunden Zähler alloydb_omni_database_tde_enabledStatus der TDE-Aktivierung. Nicht zutreffend Gauge alloydb_omni_database_tde_kek_infoTDE-KEK-Informationen. kek_version: Version des KEK
, der für das Umschließen von Schlüsseln verwendet wird.kek_url: Vollständig qualifizierter Pfad
zum KEK in KMSkek_creation_timestamp:
Erstellungszeit der verwendeten KEK-Version.
Gauge alloydb_omni_database_tde_temp_blocks_decrypted_count_totalAnzahl der entschlüsselten temporären Blöcke. Nicht zutreffend Zähler alloydb_omni_database_tde_temp_blocks_encrypted_count_totalAnzahl der verschlüsselten temporären Blöcke. Nicht zutreffend Zähler alloydb_omni_database_tde_temp_decryption_time_us_totalGesamtzeit für die Entschlüsselung temporärer Blöcke. Nicht zutreffend Mikrosekunden Zähler alloydb_omni_database_tde_temp_encryption_time_us_totalGesamtdauer der temporären Blockverschlüsselung. Nicht zutreffend Mikrosekunden Zähler alloydb_omni_database_tde_wal_blocks_decrypted_count_totalAnzahl der entschlüsselten WAL-Blöcke. Nicht zutreffend Zähler alloydb_omni_database_tde_wal_blocks_encrypted_count_totalAnzahl der verschlüsselten WAL-Blöcke. Nicht zutreffend Zähler alloydb_omni_database_tde_wal_decryption_time_us_totalGesamtzeit für die Entschlüsselung von WAL-Blöcken. Nicht zutreffend Mikrosekunden Zähler alloydb_omni_database_tde_wal_encryption_time_us_totalGesamtzeit für die WAL-Blockverschlüsselung. Nicht zutreffend Mikrosekunden Zähler