保存データの暗号化
このページは英語版のページが機械翻訳されたものです。英語版との間に矛盾または不一致がある場合は、英語版を正としてください。
このドキュメントでは、ScalarDB に保存されているデータを暗号化する方法について説明します。
概要
ScalarDB は、それを介して保存されたデータを暗号化できます。暗号化機能は、主要なデータベースシステムの透過的データ暗号化 (TDE) に似ているため、アプリケーションに対して透過的です。ScalarDB は、バックエンドデータベースに書き込む前にデータを暗号化し、そこから読み取るときに復号します。
現在、ScalarDB は列レベルの暗号化をサポートして おり、テーブル内の特定の列を暗号化できます。
設定
暗号化機能を有効にするには、ScalarDB Cluster ノード設定ファイルで scalar.db.cluster.encryption.enabled
を true
に設定する必要があります。
名前 | 説明 | デフォルト |
---|---|---|
scalar.db.cluster.encryption.enabled | ScalarDB が保存データを暗号化するかどうか。 | false |
暗号化はクライアントに対して透過的であるため、クライアントの設定を変更する必要はありません。
暗号化機能を有効にする場合は、内部的にパーティション間スキャンを実行するため、システム名前空間 (デフォルトでは scalardb
) の scalar.db.cross_partition_scan.enabled
を true
に設定する必要もあります。
その他の設定は、選択した暗号化実装によって異なります。現在、ScalarDB は次の暗号化実装をサポートしています。
- HashiCorp Vault 暗号化
- 自己暗号化
次のセクションでは、各暗号化実装の設定方法について説明します。
HashiCorp Vault 暗号化
HashiCorp Vault 暗号化では、ScalarDB は HashiCorp Vault の encryption as a service を使用してデータを暗号化および復号します。この実装では、ScalarDB は暗号化キーの管理とデータの暗号化および復号を HashiCorp Vault に委任します。
HashiCorp Vault 暗号化を使用するには、ScalarDB Cluster ノード設定ファイルでプロパティ scalar.db.cluster.encryption.type
を vault
に設定する必要があります。
名前 | 説明 | デフォルト |
---|---|---|
scalar.db.cluster.encryption.type | HashiCorp Vault 暗号化を使用するには、vault に設定する必要があります。 |
次のプロパティも設定する必要があります。
名前 | 説明 | デフォルト |
---|---|---|
scalar.db.cluster.encryption.vault.key_type | キーの種類。現在、aes128-gcm96 、aes256-gcm96 、chacha20-poly1305 がサポートされています。キーの種類の詳細については、Key types を参照してください。 | aes128-gcm96 |
scalar.db.cluster.encryption.vault.associated_data_required | AEAD 暗号化に関連データが必要かどうか。 | false |
scalar.db.cluster.encryption.vault.address | HashiCorp Vault サーバーのアドレス。 | |
scalar.db.cluster.encryption.vault.token | HashiCorp Vault で認証するためのトークン。 | |
scalar.db.cluster.encryption.vault.namespace | HashiCorp Vault の名前空間。この設定はオプションです。 | |
scalar.db.cluster.encryption.vault.transit_secrets_engine_path | トランジットシークレットエンジンのパス。 | transit |
scalar.db.cluster.encryption.vault.column_batch_size | HashiCorp Vault サーバーへの単一のリクエストに含まれる列の数。 | 64 |