データ・ストアでのセキュリティの構成

データ・ストア・セキュリティの基本

Oracle NoSQL Databaseは安全に構成できます。

セキュアな構成では、NoSQLクライアント、ユーティリティおよびNoSQLデータ・ストア・コンポーネントの間のネットワーク通信はSSL/TLSを使用して暗号化され、すべてのプロセスが接続先のコンポーネントに対して自己認証を行う必要があります。セキュリティを有効にしてOracle NoSQL Databaseを構成することをお薦めします。

Oracle NoSQL Databaseを構成する場合、パラメータstore-securityは、セキュリティが使用されているかどうかを指定します。noneを指定すると、セキュリティは使用されません。configureを指定すると、セキュリティを構成することを示します。configureを指定するか、store-securityパラメータを指定しない場合、makebootconfigプロセスは、その操作の一部としてsecurityconfigユーティリティを呼び出します。「有効化」を指定すると、セキュリティが使用されることを示します。「有効化」を指定する場合は、セキュリティ構成ユーティリティ(securityconfig)を使用してセキュリティを明示的に構成するか、前に作成したセキュリティ構成を別のシステムからコピーする必要があります。

ノート:

-store-securityパラメータを指定しない場合、デフォルトでセキュリティが構成されます。セキュア・インストールを完了するには、ストレージ・ノード・エージェントを起動する前に、securityconfigユーティリティを使用してセキュリティ・フォルダを作成する必要があります。

securityconfigツールを使用したセキュリティの構成

makebootconfigプロセスの前または後にsecurityconfigツールを実行できます。このツールは、セキュリティ・ディレクトリを作成し、セキュリティ関連のファイルも作成します。makebootconfigユーティリティは、次の2つのシナリオのいずれかでsecurityconfigツールを自動的に起動します。
  • makebootconfigコマンドで、セキュア・データ・ストアの構成を明示的にリクエストするstore-security configureを指定します。
  • makebootconfigコマンドでは、store-securityパラメータを省略します。セキュリティ保護されたデータ・ストアは、デフォルトで構成されます。
次に示すように、securityconfigツールを起動します。
java -Xmx64m -Xms64m 
-jar $KVHOME/lib/kvstore.jar 
securityconfig \
config create -root $KVROOT -kspwd (******)
Created files
$KVROOT/security/security.xml
$KVROOT/security/store.keys
$KVROOT/security/store.trust
$KVROOT/security/client.trust
$KVROOT/security/client.security
$KVROOT/security/store.passwd (Generated in CE version)
$KVROOT/security/store.wallet/cwallet.sso (Generated in EE version)
Created
 

詳細は、セキュリティ・ガイドSecurityconfigによるセキュリティの構成を参照してください。

データ・ストアに複数のストレージ・ノードがある場合、セキュリティ構成は-store-security configureを使用して最初のストレージ・ノードで構成されます。セキュリティを設定するには、セキュリティ・ディレクトリとそのディレクトリに含まれるすべてのファイルを、最初のストレージ・ノードから他のストレージ・ノードにコピーする必要があります。最初のストレージ・ノードからsecurity.zipまでのすべてのセキュリティ関連ファイルをZipで実行します。
cd ; 
zip -r $HOME/security.zip $KVROOT/security; 
cd -

最初のストレージ・ノードから他のストレージ・ノードにsecurity.zipをコピーします。他のストレージ・ノードでは、security.zipファイルを解凍し、このセキュリティ情報(最初のストレージ・ノードからコピー)を使用します。次に、残りのストレージ・ノードの構成時に-store-security enableを使用します。

ユーザーの作成とリモート・アクセスによるセキュリティの構成

セキュア・クラスタのユーザーを作成する必要があります。

リモート・アクセスにセキュリティを構成するには、次のステップを参照してください。

  • 最初の管理ユーザーを作成します。この場合、ユーザーrootが定義されます。

    kv->execute 'CREATE USER root IDENTIFIED BY "password" ADMIN'
  • readwriteロールを最初の管理ユーザーに付与します。

    kv->execute "GRANT readwrite TO USER root"
  • 最初の管理ユーザーのパスワード・ストアを生成します。このステップでは、$KVROOT/securityディレクトリにroot.passwdファイルを作成します。これらは、root.passwdを作成するためのコマンドです。

    java -Xmx64m -Xms64m \
    -jar $KVHOME/lib/kvstore.jar securityconfig \
    pwdfile create -file $KVROOT/security/root.passwd
    
    java -Xmx64m -Xms64m \
    -jar $KVHOME/lib/kvstore.jar securityconfig \
    pwdfile secret \
    -file $KVROOT/security/root.passwd -set -alias root -secret password
  • client.securityファイルをroot.loginという名前の別のファイルにコピーします。このclient.securityは、以前にsecurityconfigユーティリティによって作成されました。
    cp $KVROOT/security/client.security $KVROOT/security/root.login
  • すべてのユーザー・セキュリティ・ファイルをzipで圧縮します。これは、データ・ストアのすべてのストレージ・ノードにコピーする必要があります。
    cd $KVROOT/security; 
    zip -r root.zip root.* client.trust ;
    cd -
    
  • すべてのストレージ・ノード(データ・ストアの最初のストレージ・ノード以外)から、ユーザー・セキュリティ・ファイルを$KVROOT/securityに解凍します。
    unzip -o $KVROOT/security/root.zip -d $KVROOT/security
  • 次に示すように、別のストレージ・ノードから、ストレージ・ノードで実行されている管理ノードにリモートでアクセスできます。

    java -Xmx64m -Xms64m \
    -jar $KVHOME/lib/kvstore.jar runadmin \ 
    -port 5000 -host node01 \
    -security $KVROOT/security/root.login