既存の検索インデックスの暗号化

既存のDSE Searchインデックス・ファイルを暗号化するための手順。

DSE Searchインデックスを暗号化すると、新しいファイルに対してのみ暗号化がオンになります。既存のデータを暗号化するには、追加の手順が必要です。既存のDSE Searchインデックスを暗号化した場合は、ノードの再起動が必要です。

既存のDSE Searchインデックスを暗号化するには、複数の方法があります。お使いの環境に適切な方法を選択します。

始める前に

TDEを使用する場合は、ローカル・ファイル・システムのセキュリティを保護します。暗号化キーはKMIP暗号化を使用してリモートに格納されるか、サーバー内暗号化を使用してローカルに格納されます。

手順

暗号化はコアごとに有効になります。

  1. 既存のコアの暗号化を有効にするには、solrconfig.xmlファイルを編集して、directoryFactoryのクラスを solr.EncryptedFSDirectoryFactoryに変更します。
    <directoryFactory name="DirectoryFactory" class="solr.EncryptedFSDirectoryFactory"/>
  2. 変更したsolrconfig.xmlファイルをアップロードします。
    たとえば、dsetoolを使用して、変更したリソース・ファイルをアップロードできます。
    dsetool reload_core keyspace_name.table_name 
  3. DataStax Enterpriseノードを再起動します。
    暗号化を有効にしても、ノードを再起動する必要はありません。ただし、directoryFactoryを変更した場合は、ノードを再起動する必要があります。
    暗号化は新しいファイルに対してのみ有効です。既存のデータを暗号化するには、追加の手順が必要です。
  4. 既存のファイルを暗号化するには、以下の方法のいずれかを使用します。
    • 時間のかかる方法:dsetoolを使用してコアを再度読み込み、ノードの実行中にインデックスを再作成します。
      dsetool reload_core keyspace_name.table_name deleteAll=true reindex=true
    • 短時間で行う方法:ローカル・ノードがオフラインである必要があります。

      DataStax Enterpriseクラスターの2番目のリモート・ノードが実行中のときに、dsetoolを使用してローカル・オフライン・ノードでインデックス・ファイルを暗号化します。暗号化構成がリモート・ノードから読み取られます。

      要件:
      • 暗号化構成を含むリモート・ノードを実行している必要があります。
      • ローカル・ノードはオフラインです。
      • このコマンドを実行するユーザーには、インデックス・ファイルを含むディレクトリーに対する読み取りおよび書き込みパーミッションが付与されている必要があります。
      1. 検索インデックスを持つすべてのノードに対して暗号化を有効にします。
      2. dsetoolコマンドを実行します。
        dsetool upgrade_index_files keyspace_name.table_name -h IP_address [options]
        オフラインのインデックス暗号化には、以下のオプションを指定できます。
        keyspace_name.table_name
        必須。検索インデックスのキースペース名とテーブル名。キースペース名とテーブル名の大文字と小文字は区別されます。大文字を含む名前は二重引用符で囲みます。
        -h IP_address
        必須。インデックスの暗号化に使用される暗号化構成を含むリモート・ノードのホスト名またはIPアドレス。リモート・ノードを実行している必要があります。
        -c port
        暗号化構成を含むリモート・ノードのDSEポート。
        --backup
        正常にアップグレードした後のバックアップとして、現在のインデックスからのインデックス・ファイルを保持します。保持されたインデックス・ファイルのバックアップは、--workspaceディレクトリーに移動されます。指定しない場合、現在のインデックスからのインデックス・ファイルは削除されます。
        --workspace directory
        アップグレード・プロセスのワークスペース・ディレクトリー。アップグレード済みのインデックスは、このディレクトリーで作成されます。指定しない場合、デフォルトのディレクトリーは、検索インデックス・ファイルが含まれている同じディレクトリーになります。
        --index directory
        検索インデックス・ファイルを含むデータ・ディレクトリー。指定しない場合、デフォルトのディレクトリーは検索インデックス名から推測されます。
    • 簡単な方法:結果として起こることであり、不確実です。

      ただ待つだけです。新しいデータがインデックスに追加されると、インデックスのコンパクションまたはマージが行われたときに暗号化されます。新しいファイルが暗号化されるので、ファイルは最終的に暗号化されます。

  5. どのファイルが暗号化されているかを確認するには、以下のコマンドを使用して、ローカル・ノード上の指定した検索コアのすべてのDSE Searchインデックス・ファイルをリストします。
    dsetool list_index_files keyspace_name.table_name [--index directory]
    ここで、--index directoryは、検索インデックス・ファイルを含んでいるデータ・ディレクトリーを指定します。指定しない場合、デフォルトのディレクトリーは検索コア名から推測されます。
  6. どのファイルが暗号化されているかを確認した後に、別の方法を使用して既存のファイルを暗号化できます。

次のタスク

暗号化を無効にするには、バッキングCQLテーブルの暗号化を無効にします。ノードを再起動する必要はありません。