7 セキュリティ・アーティファクトのライフ・サイクル

この章では、WebLogic Serverドメインの作成または拡張時に、セキュリティ・ストアにシードできるセキュリティ・アーティファクトについて説明します。セキュリティ・ストアのバックアップ方法とリカバリ方法についても説明します。

この章の内容は次のとおりです。

注意:

セキュリティ・アーティファクトを旧リリースから12.2.1.xにアップグレードするための手順および共有セキュリティ・ストアをアップグレードするための手順は、『Oracle Fusion Middlewareのアップグレードのプランニング』データストアの保護に説明されています。

セキュリティ・アーティファクトのシード方法

11gドメインでは、デプロイメント・ディスクリプタが適切に設定されている場合、製品固有のセキュリティ・アーティファクトの指定はアプリケーションのエンタープライズ・アーカイブ(EAR)ファイルにバンドルされ、それらのアーティファクトはアプリケーションのデプロイ時にセキュリティ・ストアに移行されます。

12cドメインでは、製品固有のセキュリティ・アーティファクトの指定は、それらのアーティファクトをドメインの作成時にセキュリティ・ストアにシードする手段となる製品テンプレートで構成されます。

Fusion Middlewareドメインについて

Fusion Middlewareドメインは、Java Required Files (JRF)テンプレートを使用して作成または拡張されます。テンプレートにより、セキュリティ・ストアのアーティファクトのプロビジョニングが指定されます。具体的には、次のものが作成されます。

  • OPSSセキュリティ・アーティファクト。

  • 暗号化キーでシードされるcwallet.ssoブートストラップ・ファイル。

  • キーストア(トラストストア、デモ・キーストア、Oracle WebLogic Serverで使用されるドメイン・アイデンティティ・キーストアを含む)。

  • トラストストアに接続されたトラスト・サービス。

  • 3つのデータ・ソース: OPSSスキーマ、OPSS監査ビューア・スキーマ、OPSS監査追加スキーマそれぞれに1つずつ。

  • データベース・セキュリティ・ストアおよび監査ストアの構成。

JRFテンプレートでは、管理対象サーバーは作成されません。Fusion Middlewareドメインでは、すべてのリソースが管理サーバーにのみターゲット設定されます。後で管理対象サーバーをドメインに追加する場合は、その管理対象サーバーへのターゲット・リソースにもJRFテンプレートを適用する必要があります。ドメイン再構成後にOPSSおよび監査データ・ソースを管理対象サーバーにターゲット設定するには、applyJRF WebLogic Scripting Tool (WLST)コマンドを使用します。

関連項目:

階層型コンポーネントのセキュリティ・アーティファクト

『インフラストラクチャ・コンポーネントWLSTコマンド・リファレンス』applyJRF

Fusion Middlewareドメインの作成

本番のFusion Middlewareドメインには、データベース・セキュリティ・ストアが必要です。データベースは、新しいデータベースまたは他のFusion Middlewareドメインに関連付けられたデータベースのどちらでもかまいません。

次の各項では、Fusion Middlewareドメインの作成方法について説明します。

新しいデータベース・インスタンスの使用

新しいデータベースに関連付けられたFusion Middlewareドメインを作成または拡張するには、次の手順を実行します。

  1. 新しいデータベース・スキーマを作成します。データベース・ベースのセキュリティ・ストアの詳細は、データベース・セキュリティ・ストアを使用する場合の前提条件を参照してください。
  2. 『構成ウィザードによるWebLogicドメインの作成』WebLogicドメインの作成で説明されているように、Fusion Middleware構成ウィザードを使用してドメインを作成または拡張します。

    このタスクでは、ステップ1で作成したデータベース・スキーマなど、使用するデータベース・スキーマに関する情報を指定したり、JRFテンプレートの使用を選択します。作成したドメインに関連付けるデータベース・スキーマは新しいスキーマである必要があります。

    JRFテンプレートを使用すると、3つのデータ・ソース(OPSSスキーマ、OPSS監査ビューア・スキーマ、OPSS監査追加スキーマそれぞれに1つずつ)が自動的に作成されます。

関連項目:

『ドメイン・テンプレート・リファレンス』テンプレート・ツール

「Fusion Middlewareドメインについて」

データベース・インスタンスの共有

次の手順では、WLSTコマンドのみを使用します。ドメイン・データベースに関連付けられた拡張Fusion Middlewareドメインを作成するには、次の手順を実行します。

  1. domain1で(他のドメインを結合する) db1データベースを使用しているとした場合、exportEncryptionKeyコマンドを使用して、domain1から指定された場所に暗号化キーをエクスポートします。
    exportEncryptionKey(location, password)
    
  2. 次のようなスクリプトを作成して、db1データベースを共有するドメインを作成します。
    ## arg1 - wls.jar loc
    ## arg2 - jrf.jar loc
    ## arg3 - domain home
    ## arg4 - adminserver port
    ## arg5 - Db host
    ## arg6 - db port
    ## arg 7 - DB service name (pdb)
    ## arg8 - STB schema user,
     
    readTemplate(sys.argv[1],"Expanded")
    cd('/Security/base_domain/User/weblogic')
    cmo.setName('weblogic')
    cmo.setPassword('password')
    writeDomain(sys.argv[3])
    closeTemplate()
     
    #Set AdminServer Port
    readDomain(sys.argv[3])
    cd('/Servers/AdminServer')
    set('ListenAddress','')
    set('ListenPort', int(sys.argv[4]))
    updateDomain()
    closeDomain()
     
    readDomain(sys.argv[3])
    addTemplate(sys.argv[2])
     
    cd('/JDBCSystemResource/LocalSvcTblDataSource/JdbcResource/LocalSvcTblDataSource')
    cd('JDBCDriverParams/NO_NAME_0')
    set('DriverName','oracle.jdbc.OracleDriver')
    set('PasswordEncrypted', 'myPassw')
    set('URL','jdbc:oracle:thin:@'+sys.argv[5]+':'+sys.argv[6]+'/'+sys.argv[7])
    set('UsePasswordIndirection', 'false')
    set('UseXADataSourceInterface', 'false')
    create('myProps','Properties')
    cd('Properties/NO_NAME_0/Property/user')
    cmo.setValue(sys.argv[8])
     
    getDatabaseDefaults()
     
    setSharedSecretStoreWithPassword(location, password)
    updateDomain()
    

    注意:

    setSharedSecretStoreWithPasswordコマンドで、locationおよびpasswordの値にステップ1のexportEncryptionKeyコマンドで使用したものと同じ値を使用します。

  3. domain1および新しいドメインのすべてのサーバーを起動します。どちらのドメインも同じセキュリティ・ストアを共有するようになりました。

注意:

  • このスクリプトを使用して、domain1と同様に他のFusion Middlewareドメインを作成することもできます。そのようにする場合、スクリプトのsetSharedSecretStoreWithPasswordで開始する行を削除します。

  • exportEncryptionKey WLSTコマンドを使用してドメインの暗号化キーを必ずバックアップし、ドメインに障害があって再作成する必要がある場合に備えて安全な場所に保持してください。

関連項目:

『インフラストラクチャ・セキュリティWLSTコマンド・リファレンス』exportEncryptionKey

階層型コンポーネントのセキュリティ・アーティファクト

セキュリティ・アーティファクトのシードおよび処理を簡略化するには、ドメインの作成または拡張時に、OPSSを使用するコンポーネントによってテンプレートが指定される必要があります。このテンプレートは、コンポーネントの実行に必要な、コンポーネントのみに固有のアーティファクトを定義およびバンドルし、表7-1に示すファイルを含みます。

表7-1 OPSSで使用されるコンポーネント・テンプレートのファイル

ファイル名 説明 テンプレートのルート・フォルダからの場所

component-security-info.xml

必須。セキュリティ・アーティファクトのライフ・サイクルを指定します。

./security/component-security-info.xml

jazn-data.xml

オプション。ポリシーを指定します。

./security/authorization/jazn-data.xml

keystore.xml

オプション。キーストアのメタデータを指定します。

./security/keystore/keystore.xml

credentials.xml

オプション。コンポーネントで使用される資格証明メタデータを指定します。

./security/credential/credentials.xml

component_events.xml

オプション。監査データを指定します。

./security/audit/component_events.xml

component_events_xlf.jar

オプション。ローカライズされた監査データを指定します。

./security/audit/component_events_xlf.jar

製品テンプレートにバンドルされたOPSSセキュリティ・アーティファクトには、アーティファクトの処理方法を指定するcomponent-security-info.xmlファイルが必要です。

セキュリティ・ストアのバックアップとリカバリ

この項では、セキュリティ・ストアをバックアップおよびリカバリする方法について説明します。

この項には次のトピックが含まれます:

注意:

migrateSecurityStore WLSTコマンドを使用して、セキュリティ・データをバックアップおよびリカバリできます。セキュリティ・データをバックアップするには、セキュリティ・データをファイル・ストアに移行します。リカバリするには、ファイル・ストアをターゲット・セキュリティ・ストアに移行します。

バックアップ用構成ファイル

セキュリティ・ストアのバックアップに加えて、次の構成ファイルおよびデータ・ファイルも保存する必要があります。

DOMAIN_HOME/config/config.xml
DOMAIN_HOME/config/fmwconfig/jps-config.xml
DOMAIN_HOME/config/fmwconfig/jps-config-jse.xml
DOMAIN_HOME/config/fmwconfig/cwallet.sso
DOMAIN_HOME/config/fmwconfig/keystores.cml
DOMAIN_HOME/config/fmwconfig/audit-store.xml
DOMAIN_HOME/config/fmwconfig/system-jazn-data.xml
DOMAIN_HOME/config/fmwconfig/ids-config.xml
DOMAIN_HOME/config/fmwconfig/mbeans/jps_mbeans.xml
DOMAIN_HOME/config/fmwconfig/bootstrap/cwallet.sso

これらのパス名で、DOMAIN_HOMEはドメインを作成したディレクトリを表します。デフォルトのドメイン・ホームの場所は、ORACLE_HOME/user_projects/domains/domain_nameです。

データベース・ベースのセキュリティ・ストアのバックアップとリカバリ

この項に記載されている手順では、バックアップ計画およびリカバリの自動化とデータベースの複製に使用するツールであるOracle Database Utility Recovery Manager (RMAN)を使用します。

次の手順を使用してホストAのデータベース・ベースのセキュリティ・ストアをホストBのデータベース・ベースのセキュリティ・ストアにバックアップします。ホストAのセキュリティ・ストアではjdbc URLがproddbに設定されており、ホストBのセキュリティ・ストアではjdbc URLがtestdbに設定されています。この手順では、ホストBのクローニングされたデータベース・ベースのセキュリティ・ストアと連動するようにドメインを設定します。

データベース・ベースのセキュリティ・ストアをバックアップするには、次の手順を実行します。

  1. ホストBでtestdbデータベースを設定します。

    1. inittestdb.oraファイルを作成して次の行を含めます。

      # 
      db_name=testdb
      #
    2. testdblistener.oraファイルに追加します。

      SID_LIST_LISTENER = (SID_LIST=(SID_DESC=(SID_NAME=testdb)(GLOBAL_DBNAME=testdb)(ORACLE_HOME=/u01/app/oracle/product/11.2.0/dbhome_1))

    3. testdb/proddbtnsnames.oraファイルに追加します。

      proddb=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hostA.com)(PORT=XXXX))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME= proddb)))

      testdb=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=hostB.com)(PORT=YYYY))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=testdb)))

    4. リスナーを再起動します。

      lsnrctl stop, lsnrctl start

    5. nomountモードでpfileを使用して新しいインスタンスを起動します。

      $ export ORACLE_SID=testdb

      $ sqlplus / as sysdba

      SYS@testdb SQL>startup nomount pfile=/scratch/rdbms/dbs/inittestdb.ora

  2. RMANを使用してproddbデータベースをtestdbデータベースにクローニングします。

    1. testdb/proddbtnsnames.oraファイルに追加します。

      proddb=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=myhostA.com)(PORT=XXXX))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME= proddb)))

      testdb=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=myhostB.com)(PORT=YYYY))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=testdb)))

    2. proddbデータベースでspfileが使用されていることを確認します。使用されていない場合は、sysdbaユーザーとしてログインしてcreate spfile from pfileを実行し、initファイルからバイナリspfileを生成します。次にサーバーを再起動します。

    3. リスナーを再起動します。

      lsnrctl stop, lsnrctl start

    4. 複製データベース・ファイルの名前を生成する方法を決定します。具体的には、制御ファイル、データ・ファイル、オンラインREDOログ・ファイルおよび一時ファイルに名前を付ける方法を決定します。

      たとえば、proddbデータベースでは、ホストAのディレクトリ/oradata/proddbにあるファイルを、ホストBの/oradata/testdbディレクトリに保存する場合は、次の手順で示すように、DB_FILE_NAME_CONVERT /proddb, /testdbを指定します。

      RMANを実行してproddbデータベースをtestdbデータベースにクローニングします。

      $rman
      RMAN> CONNECT TARGET SYS@proddb
      RMAN> CONNECT AUXILIARY SYS@testdb
      RMAN> DUPLICATE TARGET DATABASE TO testdb
                FROM ACTIVE DATABASE
                DB_FILE_NAME_CONVERT '/proddb','/testdb'
                SPFILE
                  PARAMETER_VALUE_CONVERT '/proddb','/testdb'
                  SET LOG_FILE_NAME_CONVERT '/proddb','/testdb';
      

      RMANがエラーなしで完了したことを確認します。

  3. ドメインを切り替えて、バックアップしたデータベースをセキュリティ・ストアとして使用することで、testdbデータベースが予期したとおりに機能することを確認します。

    1. WebLogic Serverを停止します。

    2. {domain}/config/fmwconfig/jps-config.xmlファイル、{domain}/config/fmwconfig/jps-config-jse.xmlファイルおよび{domain}/config/jdbc/*xmlファイルで、jdbc URLをproddbからtestdbに変更します。

    3. WebLogic Serverを再起動します。

    4. ドメイン・セキュリティが正しく機能することを確認します。

LDAPセキュリティ・ストアのバックアップとリカバリ

12cリリースではLDAPセキュリティ・ストアはお薦めしません。これは11gからアップグレードされた環境で使用される場合があります。

この項に記載されている手順を使用し、ソースLDAPストアをターゲットLDAPストアにバックアップします。

  1. ソースLDAPシステムで、ldifwriteを実行してLDAPデータ交換形式(LDIF)ファイルを作成します。
    >ldifwrite connect="srcOidDbConnectStr" basedn="cn=jpsnode" ldiffile="srcOid.ldif"
    

    このコマンドでは、cn=jpsnodeノード下のすべてのエントリがsrcOid.ldifファイルに書き込まれます。

    このファイルをターゲットLDAPシステムに移動します。

    Oracle Internet Directoryデータベース・パスワード・ユーティリティでldifwriteコマンドを完了するように求められます。

  2. ターゲットLDAPシステムで、スキーマがシードされていることを確認します。
  3. ターゲットLDAPシステムで、bulkloadを実行してスキーマ・エラーや不適切なエントリがないことを確認します。
    >bulkload connect="dstOidDbConne	ctStr" check=true generate=true restore=true file="fullPath2SrcOidLdif"
    

    重複する識別名(ソース・ディレクトリとターゲット・ディレクトリとの間で共通するエントリ)が検出された場合は、予期しない結果が生じないようにその識別名を確認します。

    Oracle Internet Directoryデータベース・パスワード・ユーティリティでbulkloadコマンドを完了するように求められます。

  4. bulkloadを実行して、ターゲットLDAPにデータをロードします。
    >bulkload connect="dstOidDbConnectStr" load=true file="fullPath2SrcOidLdif"
    

推奨事項

セキュリティ・ストアと構成ファイルを、定期的に、および次のイベントのいずれかが発生したときにバックアップすることをお薦めします。

  • 最初のインストール後。

  • アップグレードの前と後。

  • rolloverEncryptionKey WLSTコマンドを実行するときはいつでも。

  • ポリシー、資格証明またはキーとキーストアなど新しいセキュリティ・データを作成した後。

構成ファイルの詳細は、バックアップ用構成ファイルを参照してください。