ローカルに格納されている暗号化キーを使用してデータを暗号化するには、dseコマンドを使用して、暗号化用のシステム・キーを作成します。
ローカルに格納されている暗号化キーを使用してデータを暗号化する手順の概要は、次のとおりです。
- dseコマンドを使用して、暗号化用のシステム・キーを作成します。
- 次に、システム・キーをクラスター内の別のノードにコピーします。
クラスター全体は、システム・キーを使用して、リペアなどの操作用のSSTableを復号化します。壊れた可能性のあるSSTableのアップグレード中と復元中にもシステム・キーを使用します。
dse.yamlファイルの場所は、インストールのタイプによって異なります。
| Installer-Services |
/etc/dse/dse.yaml |
| パッケージ・インストール |
/etc/dse/dse.yaml |
| Installer-No Services |
install_location/resources/dse/conf/dse.yaml |
| tarボール・インストール |
install_location/resources/dse/conf/dse.yaml |
手順
ローカルに格納されている暗号化キーを使用してデータを暗号化するには、以下の手順に従います。
-
SSTableのバックアップを作成します。
-
ファイルのsystem_key_directoryプロパティを設定します。
- パッケージでインストールした場合は、デフォルトのsystem_key_directory: /etc/dse/confを受け入れます。次のステップに移動し、ディレクトリーのパーミッションを設定します。
- tarボールでインストールする場合は、クラスターの各ノードについてディレクトリーを/etc/dse/confから別のディレクトリーに変更するか、このステップをスキップして、次のステップで説明するようにパーミッションを調整することもできます。アクセスするパーミッションがあるディレクトリーにキーを再配置するには、システム・キーのパスを構成する必要があります。
- install-directory/resources/dse/confに移動します。
- ファイルを開き、編集します。
- system_key_directoryのパスをアクセスするためのパーミッションがあるディレクトリーのパスに変更します。
-
ファイルのsystem_key_directoryプロパティに設定されているディレクトリーのパーミッションを、DataStax Enterpriseを実行しているユーザー/グループにのみキータブ・ファイルを変更する権限を付与するように設定します。これらのパーミッションの設定は、JNAが行います。
-
データを暗号化するユーザーに、暗号化するデータが格納されているテーブルのALTERパーミッションが付与されていることを確認します。ユーザーに付与されているパーミッションは、LISTパーミッションを使用して表示できます。
-
dsetool createsystemkeyコマンドを使用して、システム・キーを作成します。
例:
$ dsetool createsystemkey 'AES/ECB/PKCS5Padding' 128 system_key
-
クラスターを再起動します。
-
ファイルのsystem_key_directoryプロパティに設定されているディレクトリーへの作成されたキーをクラスター内のすべてのノードにコピーします。
-
テーブルを作成するか、既存のテーブルを変更するときに、暗号化オプションを設定します。
Cassandraによってディスク上のテーブルがSSTableとして格納されると、テーブルが暗号化されます。
-
ディスク上のテーブルを直ちに格納するには、nodetool upgradesstables --include-all-sstablesを使用して、すべてのSSTableを再度書き込みます。
-
暗号化されたSSTableがディスクにフラッシュされたら、dse_system keyspaceとencrypted_keysテーブルが存在することを次のように確認できます。
cqlsh:mykeyspace> DESCRIBE KEYSPACES;
system dse_system mykeyspace system_traces
すべてのノードで、システム・キーがdse_system.encrypted_keysテーブルから選択されると表示されます。
cqlsh:mykeyspace> SELECT * FROM dse_system.encrypted_keys;
key_file | cipher | strength | key_id | key
-----------+--------+----------+---------------+-----------
system_key | AES | 128 | 2e4ea4a0-...| uyBEGhX...