Oracle® Fusion Middleware Oracle Privileged Account Managerの管理 11gリリース2 (11.1.2.3) E61951-02 |
|
前 |
次 |
この付録では、Oracle Privileged Account ManagerのSSHコネクタと、SSHコネクタを使用した様々な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ターゲット・タイプの構成」を参照してください。
スクリプトとは、必要な操作を行うためにターゲット上で実行される一連のコマンドのことです。SSHコネクタ用のスクリプト構成は、COMMAND
、EXPECT
および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コネクタ・スクリプトを記述する手順を示しています。
ユーザーの検索操作のスクリプトを作成するには、次の手順を実行します。
Ciscoルーターでユーザーの検索操作を実行するための一連のコマンド(enable
、show run | in username
などのコマンド)を指定します(次のスクリーンショットを参照)。
この一連のコマンドを、コネクタが理解できるスクリプトに変換する必要があります。これを行うには、次のサンプル・スクリプトの記述に従って、テキスト・ファイルにエントリとその値を指定して、.txtに保存します。
COMMAND:enable EXCEPT:# ERROR: COMMAND:show run | in username EXCEPT:# ERROR:
パスワードの変更操作のスクリプトを作成するには、次の手順を実行します。
Ciscoルーターでパスワードの変更操作を実行するための一連のコマンド(enable
、config terminal
、username <user> secret <password>
などのコマンド)を指定します(次のスクリーンショットを参照)。
この一連のコマンドを、コネクタが理解できるスクリプトに変換する必要があります。これを行うには、次のサンプル・スクリプトの記述に従って、テキスト・ファイルにエントリとその値を指定して、.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.
注意: 上のサンプル・スクリプトでは、エラーに対して複数の予測出力を指定できます。これらの出力は縦棒またはパイプ(|)記号で区切る必要があります。 |
操作コード(操作の識別に使用)とスクリプトの場所のマップに使用される、.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
プロパティ・ファイル・パス・パラメータに対するSSHターゲット構成で.propertiesファイルの場所を指定します。SSHコネクタ経由のOracle Privileged Account Managerランタイムは、操作に対応するスクリプトの識別および実行に.propertiesファイルを使用します。
「検索の正規表現」操作は、アカウントの検索スクリプトでアカウントの検索コマンドの出力バッファを解析して、ユーザーまたはロール(あるいはその両方)を取得する場合に使用します。
各デバイスでアカウントの検索に使用されるコマンドはデバイスによって異なるため、出力も異なる結果になります。出力には、システムに応じて異なるフォーマットで、デバイスで使用可能なユーザーのアカウントおよびロールのリストが含まれます。SSHコネクタは正規表現を使用して出力を解析し、デバイスで使用可能なユーザーのアカウントおよびロールを理解します。
OPAMでは、検索の正規表現を使用して出力の各行を解析します。複数のパターンは縦棒またはパイプ(|)記号で区切ります。出力内の各行がいずれかのパターンと一致すると、その行が解析されます。%u
に対応する文字列はユーザー名として解析され、%r
に対応する文字列はロール名として解析されます。内容の中に解析しない行がある場合は、それを角カッコ([]
)で囲んで追加します。
例:
username %u privilege %r password|username %u privilege %r secret
この例で、%u
はUSERNAMEの取得に、%r
はROLEまたはPRIVILEGE_LEVELの取得にそれぞれ使用されます。パイプ記号は、同じデバイスで生成された出力の2つの異なる形式を区別します。コネクタは最初に1番目の形式の各行をチェックして、それが一致しない場合は、パイプ記号の後に示された次の形式をチェックします。
次に、検索の正規表現を構成する例を示します。
Red Hatターゲットで、ユーザー名またはロールが1つの行に存在する場合、検索の正規表現はこの項で説明するように構成されます。
Red Hatターゲットからのアカウントの検索出力を示す次の例を考慮してください。
この例で、USER %u
は"USER"の後の語句をユーザー名として返し、ROLE %r PARTITION
は"ROLE"と"PARTITION"に挟まれた語句をロールとして返します。
したがって、Red Hatターゲットで、ユーザー名またはロールが1つの行に存在する場合、検索の正規表現は"USER %u|ROLE %r PARTITION
"のように構成されます。
Ciscoターゲットで、ユーザー名とロールの両方が1つの行に存在する場合、検索の正規表現は次のよう構成されます。
注意: 1つのターゲットが複数の形式で出力を表示する場合があります。そのため、ターゲットのすべての形式に対応するには、正規表現のパターンごとに縦棒(|)記号を追加します(この例のサンプル・パターンを参照)。 |
Ciscoターゲットからのアカウントの検索出力を示す次の例を考慮してください。
例1:
例2:
これらの例で、username %u privilege %r password
は"username"と"privilege"に挟まれた文字列をユーザー名として返し、"privilege"と"password"に挟まれた文字列をロールとして返します。
したがって、Ciscoターゲットで、ユーザー名およびロールが1つの行に存在する場合、検索の正規表現は"username %u privilege %r password|username %u privilege %r secret
"のように構成されます。
Juniperターゲットで、出力の一部のセクションには除外タグ([ ]
)を使用した除外が必要になる場合があります。これにより、除外タグ内で指定された語句を含むすべての行が除外されます。
このフィールドは省略可能ですが、必要な場合は正規表現の先頭に記述されている必要があります。これにより、余分なラベルとプロンプトが結果に表示されなくなります。除外パラメータが複数ある場合はスラッシュ(/)記号で区切ります。この例では、前後に語句がない場合にこれを使用して目的の値が取得されます。
Juniperターゲットからのアカウントの検索出力を示す次の例を考慮してください。
この例で、USER %u
は"USER"の後の語句をユーザー名として返し、ROLE %r PARTITION
は"ROLE"と"PARTITION"に挟まれた語句をロールとして返します。
Juniperターゲットの検索の正規表現は"[Name/adc-lab/----]|%u %r
"のように構成されます。
次の各項では、様々なターゲット用のサンプル・スクリプトを示します。
この項では、Ciscoターゲット用のJSONのサンプル値を示した表とサンプル・スクリプトを示します。
表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 |
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:
この項では、SSHターゲット用のJSONのサンプル値を示した表とサンプル・スクリプトを示します。
表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 |
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:
この項では、Oracle Integrated Lights Out Manager (ILOM)のJSONのサンプル値を示した表とサンプル・スクリプトを示します。
表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 |
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: