Oracle Wallet

Oracleウォレットは、認証およびセキュアな通信に必要なパスワードなどの機密情報を安全に格納するために使用されるメカニズムです。これは、Oracle NoSQL DatabaseのEnterprise Editionバージョンでのみ使用できます。

ウォレットを使用してパスワードを格納する場合は、securityconfigユーティリティまたはmakebootconfigユーティリティを使用してストア・セキュリティを構成する際に、パスワード管理メカニズムとしてwalletを指定する必要があります。

次の手順は、これを行う方法を示しています。

  • securityconfigの使用:
    securityconfigユーティリティを実行し、セキュリティを備えた基本ストア構成を設定します。securityconfigユーティリティの詳細は、「Securityconfigによるセキュリティの構成」を参照してください。
    java -Xmx64m -Xms64m -jar $KVHOME/lib/kvstore.jar securityconfig
    パスワード管理メカニズムを指定するには、config createコマンドを-pwdmgrオプションとともに使用します。この場合、メカニズムはwalletです。
    security-> config create -pwdmgr wallet -root $KVROOT
    Enter a password for the Java KeyStore:
  • makebootconfigの使用:
    -store-security configureオプションを指定してmakebootconfigユーティリティを実行します。makebootconfigユーティリティの詳細は、「Makebootconfigによるセキュリティの構成」を参照してください。たとえば:
    java -Xmx64m -Xms64m \
    -jar KVHOME/lib/kvstore.jar makebootconfig \
    -root KVROOT -port 5000 \
    -host node01 -harange 5010,5020 \
    -store-security configure -pwdmgr wallet -capacity 3
    Enter a password for the Java KeyStore: 

ストアのパスワードを入力してから、検証のために再入力します。構成ツールによって、セキュリティ関連ファイルが生成されます。キーストア・アクセス・パスワードを含むウォレット・ディレクトリstore.walletが作成されます。キーストア・アクセス・パスワードは、データベース・クラスタ内のセキュアな通信に使用されるキーおよび証明書を保護します。これには、サーバー・プロセスにのみ認識される必要がある機密情報が含まれます。このファイルはサーバー側に残しておく必要があります。

client.securityおよびclient.trustファイルをクライアントにコピーし、データ・ストアへの接続時に使用する必要があります。
Created files
    $KVROOT/security/store.keys
    $KVROOT/security/store.trust
    $KVROOT/security/client.trust
    $KVROOT/security/client.security
    $KVROOT/security/store.wallet/cwallet.sso.lck
    $KVROOT/security/store.wallet/cwallet.sso
    $KVROOT/security/security.xml
Created

ウォレットを作成および操作して、ユーザー・パスワードを格納できます。ユーザー・パスワードは、データ・アクセスおよび操作時に、付与された権限に基づいてデータベースに対して個々のユーザーまたはクライアントを認証するために必要となります。

次のコマンドは、これを行う方法を示しています。

新しいウォレットを作成するには、wallet createコマンドを実行します:

wallet create -dir <wallet directory> 
たとえば:
security-> wallet create -dir $KVROOT/security/loginwallet
Created

名前(別名)と関連付けられた機密(パスワード)を操作するには、wallet secretコマンドを実行します。

wallet secret -dir <wallet directory> 
{-set | -delete} -alias <alias>

-setオプションが指定されている場合、ユーザーは指定した別名に対する新しいパスワードの入力、および新しいシークレットの検証が求められます。

-deleteオプションが指定されている場合、ストアからシークレットが削除されます。

たとえば、ユーザーJohnに関連付けられたシークレット(パスワード)を操作するには、次のようにwallet secretコマンドを実行します:
security-> wallet secret -dir $KVROOT/security/loginwallet -set -alias John
Enter the secret value to store: <password for user John>
Re-enter the secret value for verification: <password for user John>
Secret created

Oracle Walletを使用しており、Oracle NoSQL Databaseをデプロイしている場合、特別な考慮が必要です。詳細は、「セキュア・アプリケーションのデプロイ・ガイドライン」を参照してください。

ユーザーとして認証するには、データ・ストアへの接続時に、ユーザー名およびウォレット・ディレクトリをセキュリティ・プロパティとして指定する必要があります。これを行うには、前に作成したsecurityフォルダにあるclient.securityファイルのコピーを作成します。client.securityファイルには、クライアントがデータ・ストアに安全に接続するために必要なセキュリティ・プロパティおよび構成の詳細が含まれています。コピーしたファイルに、ユーザー名とウォレット・ディレクトリを含む追加プロパティを含めます。

次の手順は、これを行う方法を示しています。

securityフォルダに存在するclient.securityファイルのコピーを作成します。これをuser.loginと呼ぶことにします。
cp client.security user.login
user.loginファイルに次の追加プロパティを含めます:
oracle.kv.auth.username=John
oracle.kv.auth.wallet.dir=$KVROOT/security/loginwallet
これで、user.loginを使用して、ユーザーJohnとしてストアに安全に接続できるようになりました:
java -Xmx64m -Xms64m -jar lib/kvstore.jar runadmin -port 8000 -host localhost -security kvroot/security/user.login
Logged in to Admin as John
kv->