KMIP暗号化キーを使用してのテーブル・データの暗号化

KMIPキー・サーバーから提供されるキーを使用してテーブル・データを暗号化する方法。

透過的なデータ暗号化(TDE)をテーブルごと、またはクラスター全体ごとに指定します。暗号化を使用すると、アプリケーションは異なる暗号化アルゴリズムを使用するSSTableの読み取り/書き込みや、暗号化を一切使用しないSSTableの読み取り/書き込みを行うことができます。データを暗号化するには、スーパーユーザーとしてログインする必要があります。例:

cqlsh -u cassandra -p cassandra

手順

  1. KMIPキー・サーバーから提供されるキーを使用して、圧縮なしでテーブル・データを暗号化するには、以下のようにします。
    CREATE TABLE customers 
      ...
    WITH COMPRESSION =
    { 'sstable_compression' :'Encryptor',
    'key_provider':'KmipKeyProviderFactory',  
    'kmip_host':'kmip_group1', 
    'cipher_algorithm' :'AES/ECB/PKCS5Padding',
    'secret_key_strength' : 128 };
    • 'key_provider': 'KmipKeyProviderFactory'は、暗号化機能に対してKMIPキー・サーバーを使用して暗号化キーを管理するように指示します。'key provider'エントリーは、KMIPキー・サーバーを使用する場合にのみ指定し、使用しない場合は省略してください。
    • 'kmip_host': 'kmip_group1'には、dse.yamlのkmip_hostsセクションで設定するkmip_group1という名前のユーザー定義KMIPキー・サーバー・グループを指定します
    KMIPキー・サーバーにより提供されるキーを使用してテーブル・データを暗号化し、圧縮を使用するには、次のようにEncryptingDeflateCompressor圧縮などの圧縮アルゴリズムを指定します。
    ALTER TABLE customers 
      ...
    WITH COMPRESSION =
    { 'sstable_compression' :'EncryptingDeflateCompressor',
    'key_provider':'KmipKeyProviderFactory',
    'kmip_host':'kmip_group2',
    'cipher_algorithm' :'AES/ECB/PKCS5Padding',
    'secret_key_strength' : 128 };
  2. 暗号化用のテーブルを変更したら、既存のSSTABLESを暗号化された形式に次のように強制的に再書き込みします。
    nodetool upgradesstables -a