セキュア・ストアの使用
クライアント・コードでストアに対して認証する必要がないように、Oracle NoSQL Databaseをインストールできます。(これを明確にするために、この本に示すほとんどの例では認証が実行されていなません。)ただし、ストアを安全に運用するために、認証を要求することもできます。認証を要求すると、SSLおよび認証の使用によるオーバーヘッドが原因でパフォーマンス・コストが発生します。本番ストアではSSLを使用した認証を要求することをお薦めしますが、特にパフォーマンスが重要となるサイトでは、そのレベルのセキュリティを実施しないことがあります。
認証では、プロキシ・サーバーがストアに接続した時点で、ストアにユーザー名/パスワード資格証明を送信します。プロキシ・サーバーは、接続されているクライアント・コードから使用するユーザー名を取得します。その他の資格証明情報は、プロキシ・サーバーと同じローカル・ホストにインストールする必要があるセキュリティ・プロパティ・ファイルに含まれています。ドライバ・コードからプロキシ・サーバーへの接続はセキュアではないことに注意してください。そのため、プロキシ・サーバーおよびドライバ・コードを同じ物理ホストで実行することをお薦めします。
認証をサポートするようにストアを構成する場合、SSLを使用してクライアントと通信するように自動的に構成されます。SSLを使用すると、認証およびその他の機密情報のプライバシが保証されます。SSLを使用するには、プロキシ・サーバーが実行されるマシンにSSL証明書をインストールして、アクセス先のストアが信頼できることを検証する必要があります。
認証用のストアの構成の詳細は、セキュリティ・ガイドの認証の構成を参照してください。
SSLの構成
セキュア・ストアを使用している場合、プロキシ・サーバーとストア間のすべての通信は、認証資格証明も含めて、SSLを介してトランスポートされます。そのため、クライアント・コードでSSLを使用するように構成する必要があります。これを行うには、SSL証明書データがある場所を識別し、SSLトランスポートを使用することを別途指定します。
トラスト・ストアの識別
Oracle NoSQL DatabaseストアでSSLトランスポートを使用するように構成すると、セキュリティ構成ツールを使用して一連のセキュリティ・ファイルが生成されます。これらのファイルの1つであるclient.trust
ファイルを、プロキシ・サーバーを実行するすべてのマシンにコピーする必要があります。
セキュリティ構成ツールの使用方法の詳細は、セキュリティ・ガイドのセキュリティ構成を参照してください。
client.trust
ファイルには、ストアとのSSL接続を確立するために必要な証明書が含まれているため、このファイルがある場所をプロキシ・サーバーに指定する必要があります。このファイルが置かれているマシン上の物理的なロケーションを指定するには、oracle.kv.ssl.trustStore
プロパティを使用します。
プロキシ・サーバーのセキュリティ・プロパティの設定
Oracle NoSQL Databaseセキュア・ストアがインストールされると、client.security
というファイルが生成されます。このファイルには、プロキシ・サーバーに必要なセキュリティ・プロパティが含まれます。このファイルをclient.trust
ファイルおよびlogin.passwd
ファイルとともに、プロキシ・サーバーを実行するマシンにコピーします。これらのすべてのファイルは、インストール・プロセス中に作成されたものです。
ローカル・ホストのファイルの場所を調整するために、client.security
ファイルの編集が必要になる場合があります。これを行うと、client.security
は次のようになります。
oracle.kv.auth.username=root
oracle.kv.auth.pwdfile.file=/security/login.passwd
oracle.kv.transport=ssl
oracle.kv.ssl.trustStore=/security/client.trust
oracle.kv.ssl.protocols=TLSv1.2,TLSv1.1,TLSv1
oracle.kv.ssl.hostnameVerifier=dnmatch(CN\=NoSQL)
これらのファイルが準備されて正しく編集された後、クライアント・コードでストア接続を作成する際に、プロキシ・サーバーが実行されているディスク上のclient.security
ファイルの場所と、クライアントが認証するユーザー名を指定する必要があります。この実行方法の例は、ストアへの接続を参照してください。