12 Oracleウォレットの作成および管理
Oracleウォレットとは
Oracleウォレットにより、複数のドメインにわたりデータベース資格証明を管理する簡単な方法が提供されます。多くのデータ・ソース定義を変更するかわりに、ウォレットを更新することでデータベース資格証明を更新できます。更新は、ウォレット内のエントリにより解決される、データ・ソース定義内のデータベース接続文字列を使用することで実現します。
また、Oracle TNS (Transparent Network Substrate)管理ファイルを使用して、データ・ソース定義のデータベース接続文字列の詳細(ホスト名、ポート番号およびサービス名)を非表示にし、かわりに別名を使用することでも、この機能をより簡単にできます。接続情報を変更する場合は、tnsnames.ora
ファイルを変更するだけです。
この方法を使用すると、暗号化されたパスワードをデータ・ソース・ディスクリプタから削除して、ドメイン間で移植できるようにし、同じウォレットおよびtnsnames.ora
ファイルを複数のドメイン間で共有できます。これには、2つの異なるWebLogic Serverドメインが含まれるか、WebLogic Serverとデータベースの間で資格証明を共有します。ウォレットを正しく使用すると、データ・ソース構成でパスワードを保持する必要はなくなります。
親トピック: Oracleウォレットの作成および管理
ウォレットを保持する場所
ウォレットの場所はデータベース環境で作成および管理することをお薦めします。そこで、$ORACLE_HOME/oracle_common/bin/mkstore
コマンドなど、必要なすべてのコマンドおよびライブラリを提供します。多くの場合、ウォレットの記憶域はデータベース管理者によって管理され、クライアントが使用するために提供されます。構成済のウォレットは、安全なウォレット・ディレクトリに格納された2つのファイル、cwallet.sso
およびewallet.p12
で構成されます。
ノート:
または、Oracle Client Runtimeパッケージをインストールして、ウォレットの作成および管理に必要なコマンドおよびライブラリを用意することもできます。
親トピック: Oracleウォレットの作成および管理
外部パスワード・ストアの作成方法
Oracleウォレットには自動ログイン機能があり、クライアントはパスワードを入力せずにウォレットのコンテンツにアクセスできます。この機能を使用することで、クリア・テキストのパスワードがクライアントに公開されることを防ぎます。
クライアントで、次の構文を使用してウォレットを作成します。
mkstore -wrl <wallet_location> -create
ここで、wallet_location
は、ウォレットを作成して格納するディレクトリのパスです。
このコマンドにより、指定した場所にウォレットが作成され、自動ログイン機能が使用可能になります。自動ログインにより、クライアントは、パスワードを入力しなくてもウォレットの内容にアクセスでき、クライアントのクリア・テキスト・パスワードが露出されるのを回避できます。
mkstore
コマンドでは、後続コマンドに使用されるパスワードを要求するプロンプトが表示されます。パスワードは、8文字以上で、アルファベットと、数字または特殊文字の組合せを含んでいる必要があります。たとえば:
mkstore -wrl /tmp/wallet –create Enter password: mysecret PKI-01002: Invalid password. Enter password: mysecret1 (not echoed) Enter password again: mysecret1 (not echoed)
ノート:
ウォレットを使用すると、データ・ソース構成ファイル内のクリア・テキスト・パスワードのかわりにウォレット・ファイル内の暗号化パスワードが使用され、セキュリティの脆弱性が取り除かれます。ウォレット・ファイルは安全な場所に保管してください。
1つのクライアント・ウォレットに、複数のデータベースの複数の資格証明を格納できます。同じウォレットに、同じデータベースの(複数のスキーマにログインするための)複数の資格証明は格納できません。同じデータベースに対する複数のログイン資格証明がある場合、別のウォレットに格納する必要があります。
既存のクライアント・ウォレットにデータベース・ログイン資格証明を追加するには、次のコマンドを指定します。
mkstore -wrl <wallet_location> -createCredential <db_connect_string> <username> <password>
説明:
-
wallet_location
は、ウォレットを作成したディレクトリのパスです。 -
db_connect_string
は、データ・ソース定義で使用されるURLで指定する接続文字列(@
の後の文字列部分)と同一である必要があります。短い形式または長い形式のURLを使用できます。たとえば:myhost:1521/myservice
または(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=myhost-scan)(PORT=1521)))(CONNECT_DATA=(SERVICE_NAME=myservice)))
ノート:
シェルから特殊文字をエスケープするために、この値は引用符で囲む必要があります。通常、この名前は長く複雑な値であるため、かわりにTNS別名を使用します。「DB接続文字列のかわりにTNS別名を使用」を参照してください。
-
username
とpassword
は、データベース・ログイン資格証明です。
この手順を、WebLogicデータ・ソースで使用するデータベースごとに繰り返します。
自動ログインの使用およびウォレット・パスワードのメンテナンスの詳細は、『Oracle Database Advanced Security管理者ガイド』を参照してください。
親トピック: Oracleウォレットの作成および管理
ウォレットを使用するWebLogic Serverデータ・ソースの定義
Oracleウォレットを使用するようにWebLogic Serverのデータ・ソースを構成するには、Walletファイルをクライアント・マシンのセキュア・ディレクトリにコピーして、データ・ソース構成ファイルを更新します。
ウォレットを使用するようにWebLogic Serverデータ・ソースを構成するには、次の手順を使用します。
DB接続文字列のかわりにTNS別名を使用
tnsnames.ora
ファイルに格納されます。別名はURLとウォレットの両方で使用されます。
別名の作成後、別名またはデータ・ソース定義を再変更する必要はありません。ユーザー資格証明を変更するには、ウォレットを更新します。接続情報を変更するには、tnsnames.ora
ファイルを更新します。どちらの場合も、データ・ソースを再デプロイする必要があります。データ・ソースを再デプロイする最も簡単な方法は、WebLogicリモート・コンソールでデータ・ソースをターゲット指定解除し、ターゲット指定する方法です。この構成は、Oracleリリース10.2以降のドライバでサポートされます。
親トピック: Oracleウォレットの作成および管理
移植性のためのDBClientDataモジュールの使用
14.1.2.0.0では、OCIでのWLSの統合を強化し、OCI Databaseサービスへの接続を容易にするDBClientDataモジュールを使用できます。
DBClientDataモジュールは、OCIからダウンロードしたtnsnames.ora
およびOracleウォレット・ファイルを、WebLogicドメインが実行されているマシンまたはKubernetesポッドに転送する方法を提供します。
- DBClientDataモジュールとは
- DBClientDataモジュールを使用する理由
- DBClientDataモジュールの管理
- DBClientDataモジュールを使用するためのデータ・ソースの構成
親トピック: Oracleウォレットの作成および管理
DBClientDataモジュールとは
DBClientDataモジュールは、tnsnames.ora
ファイル、ウォレット・ファイル、キーストアおよびトラストストア・ファイルです。基本的に、新しいタイプのデプロイメント・モジュールに配置された、データ・ソースで使用されるすべてのデータベース・クライアント接続データです。
DBClientDataモジュールは、これらのデータを使用するデータ・ソース・インスタンスの構成に依存しないスタンドアロン・デプロイメント・モジュールです。単一のDBClientDataモジュールを複数のデータ・ソースで参照でき、単一のDBClientDataモジュールを複数のドメインで使用できます。
親トピック: 移植性のためのDBClientDataモジュールの使用
DBClientDataモジュールを使用する理由
DBClientDataモジュールを使用すると、tnsnames.ora
ファイルおよびOracleウォレット・ファイルを含むデータベース・クライアント・データを管理し、ドメイン内のすべてのサーバーのファイル・システムに移動するのが簡単になります。
最大可用性アーキテクチャ(MAA)環境(マルチ・データ・センター・アーキテクチャでディザスタ・リカバリと高可用性を提供する)および移行シナリオでは、ドメインが移動できるように、これらのファイルをドメインに含めることが重要です。データベースが異なる場合でも、構成を変更する必要はありません。
WebLogicデプロイメント・ツールを使用して、DBClientDataモジュールをデプロイ、配布、アンデプロイおよび再デプロイできます。WebLogic Server管理サーバー上のDBClientDataモジュール・ファイルの更新は、ドメイン内のすべてのサーバーに伝播されます。DBClientDataモジュール・ファイルは、ドメイン・ホーム・ディレクトリのconfig
ディレクトリの下にあります。これにより、ドメインの移動にpackおよびunpack操作を使用するときに、データベース・クライアント・データがドメインとともに移動します。
親トピック: 移植性のためのDBClientDataモジュールの使用
DBClientDataモジュールの管理
DBClientDataモジュールは、weblogic.Deployer、WLSTオンライン、REST API、WebLogicリモート・コンソール、WebLogic Deploy Tooling (WDT)などの既存のWebLogicデプロイメント・ツールを使用して管理できます。DBClientDataモジュールのソースは、tnsnames.ora
およびウォレット・ファイルを含むZIPファイルまたは展開されたアーカイブ・ディレクトリです。
ノート:
DBClientDataモジュールを管理するために、新しいオプションであるdbClientdata
が既存のデプロイ、再デプロイ、配布およびアンデプロイAPIに追加されました。DBClientDataモジュールに指定されている場合、targets
パラメータは、ドメイン内のすべてのサーバーに常にデプロイ、再デプロイ、配布およびアンデプロイされるため、無視されます。
WLSTを使用した各管理タスクの詳細情報および例は、次の各項を参照してください。weblogic.Deployerの例は、『Oracle WebLogic Serverへのアプリケーションのデプロイ』のJDBCモジュール用のOracleウォレット・ファイルのデプロイに関する項を参照してください。
親トピック: 移植性のためのDBClientDataモジュールの使用
DBClientDataモジュールのデプロイ
- DBClientDataファイル(たとえば、
tnsnames.ora
およびOracleウォレット・ファイル)を、管理サーバーの$DOMAIN_HOME/config/dbclientdata/<mydbclientdata>
の下のディレクトリにアップロードまたはコピーします。- ソースは、ZIPファイルまたは展開されたアーカイブ・ディレクトリです。
- ソースがZIPファイルの場合は、アップロードまたはコピー後に展開されます。
$DOMAIN_HOME/config/dbclientdata/<mydbclientdata>
を指すsourcePath
属性を持つDBClientDataDirectoryMBeanを生成します。- オプションで、すべての管理対象サーバーの同じディレクトリにファイルを伝播します。
- デプロイメント操作の実行時に管理対象サーバーが実行されている場合、伝播はすぐに行われます。
- デプロイメント操作の実行時に管理対象サーバーがダウンしている場合、伝播はサーバーの起動時に行われます。
構文:
deploy(name,path,[options])
次の例では、WLSTを使用してDBClientDataモジュールを、デフォルトの場所である$DOMAIN_HOME/config/dbclientdata
にアップロードおよびデプロイします。その結果、Users/joesmith/myWallet.zip
が、$DOMAIN_HOME/config/dbclientdata/myDBData
ディレクトリにデプロイされます。
例:
deploy('myDBData', '/Users/joesmith/myWallet.zip', upload='true', dbClientData='true');
-dbClientDataUploadPath
オプションを使用して、DBClientDataモジュールを、ドメイン構成ディレクトリを基準にしたカスタムの場所にアップロードしてデプロイします。
次の例では、/Users/joesmith/myWallet.zip
を、$DOMAIN_HOME/config/myDBClientData/myDBData
ディレクトリと$DOMAIN_HOME/config/myClientData/myDBClientData/myDBData
ディレクトリにそれぞれデプロイします。
deploy('myDBData', '/Users/joesmith/myWallet.zip', upload='true', dbClientDataUploadPath='myDBClientData', dbClientData='true');
deploy('myDBData', '/Users/joesmith/myWallet.zip', upload='true', dbClientDataUploadPath='myClientData/myDBClientData', dbClientData='true');
親トピック: DBClientDataモジュールの管理
DBClientDataモジュールの配布
dbClientDataDir
にすでに存在する場合、WLSデプロイメント・ツールの1つを使用して、ドメイン内のすべての管理対象サーバーにそれらのファイルを配布できます。
- 配布操作の実行時に管理対象サーバーが稼働していない場合、伝播はサーバーの起動時に行われます。
- 管理対象サーバーでデプロイメントの
dbClientDataDir
が空でない場合、配布操作の実行時に、既存のコンテンツが新しいコンテンツに完全に置き換えられます。
構文:
distributeApplication(path,[options])
次の例では、WLSTを使用してDBClientDataモジュールを管理対象サーバーに伝播します。このファイルは、管理サーバーの予期されるディレクトリですでに使用可能です。
例:
distributeApplication('/mydomain/config/dbclientdata/demoDBCD/myWallet.zip', dbClientData='true');
次の例では、WLSTを使用してDBClientDataモジュールを管理サーバーにアップロードし、管理対象サーバーへ伝播します。
例:
distributeApplication('/Users/joesmith/myWallet.zip', upload='true', dbClientData='true');
ノート:
DBClientDataモジュールの場合、distributeApplication
WLSTコマンドはアプリケーション・パスからアプリケーション名を導出します。前述の2つの例では、導出されたアプリケーション名はそれぞれ"demoDBCD"および"myWallet"です。
親トピック: DBClientDataモジュールの管理
DBClientDataモジュールの再デプロイ
dbClientDataDir
のコンテンツは、新しいDBClientDataモジュール・ソースのコンテンツに置き換えられます。
構文:
redeploy(name,[options])
次の例では、WLSTを使用してDBClientDataモジュールを再デプロイします。
例:
redeploy('demoDBCD', dbClientData='true')
-dbClientDataUploadPath
オプションを使用して、DBClientDataモジュールを、ドメイン構成ディレクトリの下のカスタムの場所にアップロードして再デプロイします。
redeploy('demoDBCD', upload='true', dbClientDataUploadPath='myDBClientData', dbClientData='true');
親トピック: DBClientDataモジュールの管理
DBClientDataモジュールを使用するためのデータ・ソースの構成
DBClientDataモジュールのデプロイ後、次の各項で説明するのと同じステップを使用して、DBClientDataモジュールを使用するようにWebLogicサーバー・データ・ソースを構成します。
ノート:
対応するtnsnames.ora
およびウォレット・ファイルが配置されているdbClientDataDir
を指す必要があります。
- デフォルトのファイル・システムの場所は
$DOMAIN_HOME/config/dbclientdata/<dbclientDatamodulename>
です。 - ただし、DBClientDataモジュールが、WebLogic Deploy Toolingを使用して作成または更新されたドメインに含まれている場合、そのデフォルトの場所は異なります。
$DOMAIN_HOME/config/wlsdeploy/dbWallets/<dbclientmodulename>
- ノート: WDTのデフォルトの場所が変更される可能性があります。詳細は、WebLogic Deploy Toolingのドキュメントにあるアーカイブ・ファイルに関する項を参照してください。
- DBClientDataモジュールまたはデータ・ソース構成のいずれかのデータが変更されている場合は、更新されたデータを使用するためにデータ・ソースを再起動する必要があることに注意してください。
親トピック: 移植性のためのDBClientDataモジュールの使用