プライマリ・コンテンツに移動
Oracle® Fusion Middleware Oracle Privileged Account Managerの管理
11gリリース2 (11.1.2.3)
E61951-02
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

C SSHコネクタの操作

この付録では、Oracle Privileged Account ManagerのSSHコネクタと、SSHコネクタを使用した様々なSSHターゲットの操作方法について次の項で説明します。

C.1 SSHコネクタについて

ルーターやファイアウォールなどのネットワーク・デバイスも、デバイスを管理する特権アカウントを保持できます。ネットワーク管理者には、アカウントのパスワードを定期的にローテーションするためのパスワード管理ソリューションが必要になり、アクセスを必要に応じて得るためのパスワード・チェックアウト機能も使用します。

通信用のSSHインタフェースを提供するネットワーク・デバイスは、SSHコネクタでアイデンティティ・コネクタ・フレームワーク(ICF)を通して管理できます。SSHコネクタを使用することで、Oracle Privileged Account Managerはネットワーク・デバイスを管理できます。

ネットワーク・デバイスがSSH接続を提供する場合でも、様々なターゲットで使用されるシェル環境およびコマンドはそれぞれ異なる可能性があります。したがって、SSHコネクタが各種のデバイスで操作できることを確認するにはカスタマイズが必要です。

この付録では、SSHコネクタが使用されるユースケースと、SSH接続を通して様々なデバイス(ルーター、ファイアウォール、ハイパーバイザなど)で操作される方法について説明します。

SSHコネクタはスクリプトを利用して操作をターゲット上で実行します。各スクリプトはシンプルな一連のコマンドです。Oracle Privileged Account Managerはこれらのスクリプトを使用して、アカウントを検索し、ネットワーク・デバイスでアカウントのパスワードを更新します。これらのスクリプトの作成方法の詳細は、第C.2項「スクリプトの作成」を参照してください。

異なるコマンド以外にネットワーク・デバイスも、デバイス内での管理に使用可能なアカウントの列記に異なる形式を使用します。デバイスで提供された検索結果をSSHコネクタで解析および理解するためには、正規表現を定義する必要があります。正規表現の作成方法の詳細は、第C.3項「検索の正規表現の構成」を参照してください。

この付録では、SSHコネクタの構成のカスタマイズ方法についても説明します。カスタマイズが完了した後、SSHターゲットおよびアカウントをOracle Privileged Account Managerに追加できます。Oracle Privileged Account ManagerでSSHターゲットを構成する方法の詳細は、第6.2.2.6項「SSHターゲット・タイプの構成」を参照してください。

C.2 スクリプトの作成

スクリプトとは、必要な操作を行うためにターゲット上で実行される一連のコマンドのことです。SSHコネクタ用のスクリプト構成は、COMMANDEXPECTおよびERRORエントリの連続です。これらのタグは大文字/小文字を区別しませんが、タグが指定される順序は、次のリストに示すように正確である必要があります。

  • Command: これはSSHコネクタ・スクリプトの最初のエントリです。これを使用して、リモート・ターゲット上で実行が必要なコマンドを指定します。

  • Expect: これはSSHコネクタ・スクリプトの2番目のエントリです。これを使用して、コマンドが正常に実行されたことを確認します。

    コマンドの実行によって何らかの出力が画面上に生成されます。「EXPECT」セクションは、コマンドの正常な実行および完了を意味する出力の指定に使用されます。「EXPECT」セクションで示された出力が一度表示されると、スクリプトはスクリプト内の次の「COMMAND」に移動します。たとえば、コマンドが終了して次のコマンドを待機中であることを示すプロンプト記号であったり、コマンドで出力される成功メッセージである場合があります。

  • Error: これはSSHコネクタ・スクリプトの3番目のエントリです。これを使用して、ターゲット上でコマンドの実行失敗に伴って発生する可能性のあるエラーを指定します。

    このエントリは、スクリプトで指定するすべてのコマンドに必須です。「ERROR」エントリの値は指定しなくても構いませんが、指定するエラーのタグは必ず入力する必要があります。エラーを予想しない場合は、次の例に示すように、このエントリを予測値なしで指定できます。

    サンプル値: ERROR:

    上の例では、コロン(:)の句読点に続く値はなしで「ERROR」エントリが指定されています。

$__UID__および$__PASSWORD__は、それぞれuser変数とpassword変数のプレースホルダです。これらのプレースホルダは、ユーザー名とパスワードで動的に置き換えられます。SSHコネクタでサポートされている変数は、この2つのみです。


注意:

UIDとPASSWORDの各プレースホルダの前後には、2つのアンダースコア(__)が付いています。

次の例は、Ciscoターゲット用の各種SSHコネクタ・スクリプトを記述する手順を示しています。

  1. ユーザーの検索操作のスクリプトを作成するには、次の手順を実行します。

    1. Ciscoルーターでユーザーの検索操作を実行するための一連のコマンド(enableshow run | in usernameなどのコマンド)を指定します(次のスクリーンショットを参照)。

      cisco_c_2_a.gifについては周囲のテキストで説明しています。
    2. この一連のコマンドを、コネクタが理解できるスクリプトに変換する必要があります。これを行うには、次のサンプル・スクリプトの記述に従って、テキスト・ファイルにエントリとその値を指定して、.txtに保存します。

      COMMAND:enable
      EXCEPT:#
      ERROR: 
      
      COMMAND:show run | in username
      EXCEPT:#
      ERROR:
      
  2. パスワードの変更操作のスクリプトを作成するには、次の手順を実行します。

    1. Ciscoルーターでパスワードの変更操作を実行するための一連のコマンド(enableconfig terminalusername <user> secret <password>などのコマンド)を指定します(次のスクリーンショットを参照)。

      cisco_c_2_2_a.gifについては周囲のテキストで説明しています。
    2. この一連のコマンドを、コネクタが理解できるスクリプトに変換する必要があります。これを行うには、次のサンプル・スクリプトの記述に従って、テキスト・ファイルにエントリとその値を指定して、.txtに保存します。

      COMMAND:enable
      EXCEPT:#
      ERROR:
      
      COMMAND:configure terminal
      EXCEPT:(config)#
      ERROR:
      
      COMMAND:username $__UID__ secret $__PASSWORD__
      EXCEPT:(config)#
      ERROR:Invalid Password length - must contain 1 to 25 characters. Password configuration failed|Checking.
      
      

      注意:

      上のサンプル・スクリプトでは、エラーに対して複数の予測出力を指定できます。これらの出力は縦棒またはパイプ(|)記号で区切る必要があります。

  3. 操作コード(操作の識別に使用)とスクリプトの場所のマップに使用される、.propertiesファイルを作成します。.propertiesファイルには、スクリプトの絶対パスの場所が操作IDを先頭にして含まれます。.propertiesファイルには、スクリプトへの絶対パスが指定されている必要があります。SSHコネクタでは、次の3つの操作がサポートされます。

    名前 操作ID 説明
    ユーザーの検索 SEARCH_ACCOUNT このスクリプトは、SSHターゲット上のアカウントの検索に使用されます。
    パスワードの更新 UPDATE_PASSWORD このスクリプトは、アカウントのパスワードのパスワード更新に使用されます。更新アカウントの操作ID。
    アカウントの更新 UPDATE_ACCOUNT このスクリプトはCiscoデバイスのみに使用され、特権モードのアカウントのパスワードの更新に使用されます。

    Ciscoターゲットに対して使用される.propertiesファイルのエントリの例を次に示します。

    /scripts/cisco-nxos/cisco.propertiesに含まれる

    SEARCH_ACCOUNT=/scripts/cisco-nxos/CiscoSearchUser.txt
    UPDATE_PASSWORD=/scripts/cisco-nxos/CiscoUpdatePassword.txt
    UPDATE_ACCOUNT=/scripts/cisco-nxos/CiscoUpdateAccount.txt
    

    注意:

    Cisco固有のUPDATE_ACCOUNT操作の詳細は、第C.4.1項「NXオペレーティング・システムを搭載したCiscoルーター用のサンプル・スクリプト」を参照してください。

  4. プロパティ・ファイル・パス・パラメータに対するSSHターゲット構成で.propertiesファイルの場所を指定します。SSHコネクタ経由のOracle Privileged Account Managerランタイムは、操作に対応するスクリプトの識別および実行に.propertiesファイルを使用します。

C.3 検索の正規表現の構成

「検索の正規表現」操作は、アカウントの検索スクリプトでアカウントの検索コマンドの出力バッファを解析して、ユーザーまたはロール(あるいはその両方)を取得する場合に使用します。

各デバイスでアカウントの検索に使用されるコマンドはデバイスによって異なるため、出力も異なる結果になります。出力には、システムに応じて異なるフォーマットで、デバイスで使用可能なユーザーのアカウントおよびロールのリストが含まれます。SSHコネクタは正規表現を使用して出力を解析し、デバイスで使用可能なユーザーのアカウントおよびロールを理解します。

OPAMでは、検索の正規表現を使用して出力の各行を解析します。複数のパターンは縦棒またはパイプ(|)記号で区切ります。出力内の各行がいずれかのパターンと一致すると、その行が解析されます。%uに対応する文字列はユーザー名として解析され、%rに対応する文字列はロール名として解析されます。内容の中に解析しない行がある場合は、それを角カッコ([])で囲んで追加します。

例:

username %u privilege %r password|username %u privilege %r secret

この例で、%uはUSERNAMEの取得に、%rはROLEまたはPRIVILEGE_LEVELの取得にそれぞれ使用されます。パイプ記号は、同じデバイスで生成された出力の2つの異なる形式を区別します。コネクタは最初に1番目の形式の各行をチェックして、それが一致しない場合は、パイプ記号の後に示された次の形式をチェックします。

次に、検索の正規表現を構成する例を示します。

C.3.1 ケース1: Red Hatターゲット

Red Hatターゲットで、ユーザー名またはロールが1つの行に存在する場合、検索の正規表現はこの項で説明するように構成されます。

Red Hatターゲットからのアカウントの検索出力を示す次の例を考慮してください。

c_4_1_redhat.gifについては周囲のテキストで説明しています。

この例で、USER %uは"USER"の後の語句をユーザー名として返し、ROLE %r PARTITIONは"ROLE"と"PARTITION"に挟まれた語句をロールとして返します。

したがって、Red Hatターゲットで、ユーザー名またはロールが1つの行に存在する場合、検索の正規表現は"USER %u|ROLE %r PARTITION"のように構成されます。

C.3.2 ケース2: Ciscoターゲット

Ciscoターゲットで、ユーザー名とロールの両方が1つの行に存在する場合、検索の正規表現は次のよう構成されます。


注意:

1つのターゲットが複数の形式で出力を表示する場合があります。そのため、ターゲットのすべての形式に対応するには、正規表現のパターンごとに縦棒(|)記号を追加します(この例のサンプル・パターンを参照)。

Ciscoターゲットからのアカウントの検索出力を示す次の例を考慮してください。

例1:

c_4_2_cisco.gifについては周囲のテキストで説明しています。

例2:

c_4_2_cisco_a.gifについては周囲のテキストで説明しています。

これらの例で、username %u privilege %r passwordは"username"と"privilege"に挟まれた文字列をユーザー名として返し、"privilege"と"password"に挟まれた文字列をロールとして返します。

したがって、Ciscoターゲットで、ユーザー名およびロールが1つの行に存在する場合、検索の正規表現は"username %u privilege %r password|username %u privilege %r secret"のように構成されます。

C.3.3 ケース3: Juniperターゲット

Juniperターゲットで、出力の一部のセクションには除外タグ([ ])を使用した除外が必要になる場合があります。これにより、除外タグ内で指定された語句を含むすべての行が除外されます。

このフィールドは省略可能ですが、必要な場合は正規表現の先頭に記述されている必要があります。これにより、余分なラベルとプロンプトが結果に表示されなくなります。除外パラメータが複数ある場合はスラッシュ(/)記号で区切ります。この例では、前後に語句がない場合にこれを使用して目的の値が取得されます。

Juniperターゲットからのアカウントの検索出力を示す次の例を考慮してください。

c_4_3_juniper.gifについては周囲のテキストで説明しています。

この例で、USER %uは"USER"の後の語句をユーザー名として返し、ROLE %r PARTITIONは"ROLE"と"PARTITION"に挟まれた語句をロールとして返します。

Juniperターゲットの検索の正規表現は"[Name/adc-lab/----]|%u %r"のように構成されます。

C.4 サンプル・スクリプト

次の各項では、様々なターゲット用のサンプル・スクリプトを示します。

C.4.1 NXオペレーティング・システムを搭載したCiscoルーター用のサンプル・スクリプト

この項では、Ciscoターゲット用のJSONのサンプル値を示した表とサンプル・スクリプトを示します。


注意:

構成パラメータの詳細は、第6.2.2.6項「SSHターゲット・タイプの構成」を参照してください。

表C-1 Ciscoルーターの構成パラメータのサンプル値

パラメータ名 サンプル値

targetType

SSH

targetName

Cisco-nxos-router

PasswordPolicy

デフォルト・パスワード・ポリシー

passwordrollover

false

managePrivilegeModePassword

false

ホスト

host

ドメイン

IT

説明

Ciscoルーター

ポート

22

propertiesFilePath

/scripts/cisco-nxos/ciscoscript.properties

loginShellPrompt

[$#%>~]

searchResultRegex

username %u password|username %u secret|username %u privilege|username %u

privilegeModePassword

password

loginUserpassword

loginpassword

loginUser

username


C.4.1.1 スクリプト・ファイルの内容

SEARCH_ACCOUNT、UPDATE_PASSWORDおよびUPDATE_ACCOUNTの各操作は、ciscoscript.propertiesファイルで構成できます。cisco.propertiesファイルでこれらの3つのファイルのパスを変更して、これらのファイルの絶対パスをユーザー環境で指定する必要があります。

次の各項では、これらの操作で使用する.txtファイルのサンプル・コンテンツを示します。

CiscoSearchUser.txtファイルの内容

COMMAND:show run | in username
EXPECT:[>#]
ERROR:

CiscoUpdatePassword.txtファイルの内容

COMMAND:config terminal
EXPECT:\(config\)#
ERROR:
COMMAND:username $__UID__ password $__PASSWORD__
EXPECT:\(config\)#
ERROR:password is weak
COMMAND:exit
EXPECT:[#]
ERROR:

CiscoUpdateAccount.txtファイルの内容

COMMAND:enable
EXPECT:#
ERROR:Password:|Bad secrets
COMMAND:config terminal
EXPECT:\(config\)#
ERROR:
COMMAND:enable secret $__ENABLEPASSWORD__
EXPECT:\(config\)#
ERROR:
COMMAND:exit
EXPECT:#
ERROR:

C.4.2 M7Iオペレーティング・システムを搭載したJuniperルーター用のサンプル・スクリプト

この項では、SSHターゲット用のJSONのサンプル値を示した表とサンプル・スクリプトを示します。


注意:

構成パラメータの詳細は、第6.2.2.6項「SSHターゲット・タイプの構成」を参照してください。

表C-2 Juniperルーターの構成パラメータのサンプル値

パラメータ名 サンプル値

targetType

SSH

targetName

Juniper-m7i-router

PasswordPolicy

デフォルト・パスワード・ポリシー

passwordrollover

false

managePrivilegeModePassword

false

ホスト

host

ドメイン

IT

説明

Juniperルーター

ポート

22

propertiesFilePath

/scripts/juniper_m7i/juniperscript.properties

loginShellPrompt

[$#%>~]

searchResultRegex

set system login user %u uid

privilegeModePassword


loginUserpassword

password

loginUser

username


C.4.2.1 スクリプト・ファイルの内容

SEARCH_ACCOUNTおよびUPDATE_PASSWORDの各操作は、juniperscript.propertiesファイルで構成できます。次の各項では、これらの操作で使用する.txtファイルのサンプル・コンテンツを示します。

JuniperSearchUser.txtファイルの内容

COMMAND:show configuration | display set | match uid
EXPECT:[>]
ERROR:

JuniperUpdatePassword.txtファイルの内容

COMMAND:configure
EXPECT:#
ERROR:
COMMAND:set system login user $__UID__ authentication plain-text-password
EXPECT:New password:
ERROR:
COMMAND:$__PASSWORD__
EXPECT:Retype new password:
ERROR:error: require change of case, digits or punctuation
COMMAND:$__PASSWORD__
EXPECT:#
ERROR:
COMMAND:commit
EXPECT:#
ERROR:
COMMAND:exit
EXPECT:>
ERROR:

C.4.3 Oracle Integrated Lights Out Manager (ILOM)のサンプル・スクリプト

この項では、Oracle Integrated Lights Out Manager (ILOM)のJSONのサンプル値を示した表とサンプル・スクリプトを示します。


注意:

構成パラメータの詳細は、第6.2.2.6項「SSHターゲット・タイプの構成」を参照してください。

表C-3 ILOMターゲット・タイプの構成パラメータのサンプル値

パラメータ名 サンプル値

targetType

SSH

targetName

ILOM

PasswordPolicy

デフォルト・パスワード・ポリシー

passwordrollover

false

managePrivilegeModePassword

false

ホスト

host

ドメイン

IT

説明

ILOMターゲット

ポート

22

propertiesFilePath

/scripts/ILOM/ILOMscript.properties

loginShellPrompt

[$#%>~]

searchResultRegex

[SP/Targets:/->]|%u

privilegeModePassword


loginUserpassword

password

loginUser

username


C.4.3.1 スクリプト・ファイルの内容

SEARCH_ACCOUNTおよびUPDATE_PASSWORDの各操作は、ILOMscript.propertiesファイルで構成できます。次の各項では、これらの操作で使用する.txtファイルのサンプル・コンテンツを示します。

ILOMSearchUser.txtファイルの内容

COMMAND:show -d targets /SP/users
EXPECT:->
ERROR:

ILOMUpdatePassword.txtファイルの内容

COMMAND:set /SP/users/$__UID__ password=$__PASSWORD__
EXPECT:Enter
ERROR:set: Password length must be between 8 and 16 characters
COMMAND:username $__UID__ password $__PASSWORD__
EXPECT:\(config\)#
ERROR:password is weak
COMMAND:$__PASSWORD__
EXPECT:->
ERROR: