ローカルによるセキュリティを使用した Introscope のセキュリティ保護

内容
apmdevops98jp
内容
Introscope のセキュリティの背景知識を理解したら、今度はセキュリティ デプロイの計画に入ることができます。
以下の手順に従います。
  1. 必要に応じて、realms.xml でローカル領域をセキュリティ領域として構成します。
    注:
    ローカル領域は realms.xml 内のデフォルトの Introscope 領域です。
  2. users.xml
    でパスワードを使用してユーザとグループを設定します。
  3. domains.xml でドメイン権限を割り当てます。
  4. server.xml で Enterprise Manager サーバ権限を割り当てます。
  5. CA APM のグループ、ユーザ、ドメイン、およびサーバと、それらに関連付けられている権限を必要に応じて追加、削除、または編集することによって、Introscope のセキュリティを確保します。
ローカルによる認証の構成について
ローカルによる認証は、Introscope においてデフォルトで使用される認証方法です。 ローカルによる認証を使用する場合、CA APM ユーザおよびパスワードは users.xml に格納されます。
ただし、電子メールや電話番号などのユーザの詳細情報は、ローカル領域では管理されません。 また、ローカル領域では、名前が同じでパスワードも同じ 2 人のユーザを管理することはできませんが、名前が同じでパスワードが異なる 2 人のユーザを管理することはできます。 名前が同じでパスワードが異なる 2 人のユーザは、ローカル領域で別個のユーザとして認識されます。
ユーザとグループの定義およびパスワードの生成の詳細については、「users.xml での CA APM ユーザおよびグループの構成」を参照してください。
ローカルによる認証の設定変更は、随時反映されます。CA APM ユーザがログインを試みると、そのユーザが入力したパスワードと、users.xml ファイルに保存されている情報が比較されます。この比較は、認証要求があるたびに行われるようになっています。
以前にインストールした Introscope システムからユーザを移行する場合は、移行が完了するまで、users.xml ファイルの名前と場所を変更しないでください。
realms.xml でのローカルによる認証の構成
realms.xml を構成するときは、以下のルールに従います。
重要:
これらのルールのいずれかに従わなかった場合、Enterprise Manager は起動しません。
  • descriptor=
    の値は大文字と小文字が区別されます。
    • たとえば、
      descriptor=Local Users and Groups Realm
      descriptor=local users and groups realm
      とは異なります。
  • ローカル領域の場合、
    descriptor=
    の値は
    Local Users and Groups Realm
    である必要があります。
  • 複数の領域がある場合、領域タグ内の
    id=
    の値は領域ごとに一意である必要があります。 たとえば、以下の通りです。
    <realm descriptor="EEM Realm" id="EEM" active="true">
            <property name="username">
              <value>EiamAdmin</value
            </property>
               <property name="host">
                <value>localhost</value>
            </property>
            <property name="appname">
                <value>APM</value>
            </property>
            <property name="enableAuthorization">
                <value>true</value>
            </property>
            <property name="plainTextPasswords">
                <value>false</value>
            </property>
            <property name="password">
                <value>YhCVozLDYThTJk3icaAaY9/5MhJRqQ1X</value>
            </property>
        </realm>
        <realm descriptor="Local Users and Groups Realm" id="Local Users and Groups" active="true">
            <property name="usersFile">
                <value>users.xml</value>
            </property>
        </realm>
以下の手順に従います。
  1. <EM_Home>/
    config ディレクトリの realms.xml ファイルを開きます。
  2. 次の記述が realms.xm の 3 番目のエントリとして存在することを確認します。
    <realm active="true" descriptor="Local Users and Groups Realm" id="Local Users and Groups">
  3. 以下のプロパティを適宜設定します。
    usersFile
    <EM_Home>/
    config ディレクトリを基準にした相対的なパスで指定されるファイル名で、ユーザが保存されます。 デフォルトでは、users.xml です。
    注:
    このファイルにはグループ定義も含まれます。
    注:
    セキュリティ領域の複数のファイルを使用することについては、「セキュリティ領域の複数ファイルの使用について」を参照してください。
  4. realms.xml ファイルへの変更内容を保存し、Enterprise Manager を再起動して変更を適用します。
ローカルによる認証が有効になった realms.xml 構文
realms.xml ファイルからのサンプル コードを以下に示します。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<realms xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="0.1" xsi:noNamespaceSchemaLocation="realms0.1.xsd">
    <realm descriptor="Local Users and Groups Realm" id="Local Users and Groups" active="true">
        <property name="usersFile">
            <value>users.xml</value>
        </property>
    </realm>
セキュリティ領域の複数ファイルの使用について
すべてのセキュリティ領域について realms.xml ファイルにファイルが 1 つしか記述されていない場合は、このトピックを無視してください。
場合によっては複数の領域を設定することがありますが、たとえば、ユーザに基本的な権限を与えるデフォルト領域と、別の権限を与える第 2 の領域が必要な場合です。 また、2 台の LDAP サーバがあり、その両方のセキュリティをテストすることもあります。 あるいは、これまでローカルによるセキュリティを使用していて、CA EEM に移行する際にローカルによるセキュリティを維持したい場合もあると思います。
realms.xml にセキュリティ領域として 2 つのファイルが記述されているときは、最初のファイルが認証および許可プロセスで使用されます。 同じパスワードを持つ User A という名前の 2 人のユーザがいる場合は、realms.xml 内で最初に記述されているファイルで見つかったパスワードが使用されます。 たとえば、CEM45.xml の前に users.xml が記述されていれば、realms.xml は users.xml で見つかったパスワードを使用して認証を行います。
ローカル領域の場合、電子メールや電話番号などのユーザの詳細情報は、users.xml でも CEM45.xml でも管理されません。 また、ローカル領域では、名前が同じでパスワードも同じ 2 人のユーザを管理することはできません。 ただし、名前が同じでパスワードが異なる 2 人のユーザを管理することはできます
同様に、users.xml および CEM45.xml 内の異なるユーザ グループに属する User A という名前の 2 人のユーザがいる場合は、realms.xml 内で最初に記述されているファイルで見つかったユーザ グループが使用されます。 たとえば、CEM45.xml の前に users.xml を記述したとしましょう。 users.xml には、CEM システム管理者ユーザ グループに属する Admin という名前のユーザが登録されています。 CEM45.xml には、CEM アナリストユーザ グループに属する Admin という名前のユーザが登録されています。 この場合は、realms.xml 内の users.xml ユーザ グループが使用され、CEM システム管理者ユーザ グループに関連付けられた権限が、Admin という名前のユーザに与えられます。
CA APM ユーザおよびグループを users.xml に 設定する方法
ユーザ名とパスワードは、ユーザごとおよびグループごとに定義します。
注:
admin
ユーザを作成するときには、ユーザおよび権限は大文字と小文字が区別されないことに注意してください。
admin
または
Admin
のどちらのログイン名を使用してログインした場合でも、同じユーザ ロールの権限が適用されます。
CA APM のデフォルトのユーザ構成では、以下のユーザが定義されています。
  • Admin (パスワードなし)
  • Guest (Guest がパスワード)
以下の手順に従います。
  1. <EM_Home>/
    config ディレクトリに移動します。
  2. users.xml ファイルを開きます。
     
  3. このユーザおよびグループの名前付けプロパティを使用してユーザ名を定義します。
    注:
    XML タグはすべて大文字と小文字が区別されます。
    ユーザとグループ用の構文例については、「ユーザ用の users.xml 構文」および「グループ用の users.xml 構文」を参照してください。 
  4. このプロパティを使用して、各ユーザまたはグループのパスワードを設定します。
    注:
    XML タグはすべて大文字と小文字が区別されます。
    password
    ユーザ パスワードです。
    以下のルールがこのプロパティに適用されます。
    • 引用符を除くすべての半角文字を使用できます。
    • デフォルトで、パスワードは暗号化されています。クリアテキストでもなく、難読化されてもいません(オプションで、エンコードしたパスワードを生成できます)。
    • パスワードに使用できる文字は、XML で使用可能な文字です。
    • パスワードの値は空にすることができます。
    ベスト プラクティス: 組織のパスワード ポリシーに従います。
    ローカルによる認証で使用する users.xml ファイル内のパスワードは、暗号化して格納されます。 暗号化パスワードは、SHA2Encoder ユーティリティを使用して生成するか、Introscope によって自動的に生成されるようにすることができます。 Introscope に付属する MD5 スクリプトは、入力をプレーン テキストで受け取り、それを暗号化された形式で出力します。
    • 以下の条件がユーザの状況に該当する場合、手順 5 (暗号化されたパスワードの手動設定)の説明に従います。
      • users.xml
        で多数のユーザをすでに暗号化している。
      • 1 つまたは少数のパスワードのみ変更する。
    • それ以外の場合は、すべてのユーザのパスワードをクリア テキストに戻します。
    • 以下の条件がユーザの状況に該当する場合、手順 6 (プレーン テキスト パスワードの設定)の説明に従います。
      • 多数のユーザおよびパスワードを同時に作成または変更する。
  5. 暗号化されたパスワードを手動で設定します。
    1. users.xml ファイルで
      plaintextPasswords="false"
      を設定します。
    2. <EM_Home>/tools
      ディレクトリ内にある適切なスクリプトを実行します。
      • Windows の場合、
        SHA2Encoder.bat 
        <パスワード>
      • UNIX の場合、
        SHA2encoder.sh 
        <パスワード>
      注:
      SHA2Encoder.sh スクリプトを実行する場合、円記号を使用してパスワード内の特殊文字をエスケープします。 たとえば、パスワードが
      pa$word
      の場合、スクリプトを正しく実行するためにドル記号($)の前に円記号を配置します。 正しいコマンド ラインは以下のとおりです。
      ./SHA2Encoder.sh pa\$word
    3. 生成された暗号化パスワードをコピーし、users.xml ファイルの 2 行目に貼り付けます。
      例:
      <user password="5b5ab9639b79259f54bc39515540aeaf" name="john"/>
      構文例については、「パスワードが暗号化された users.xml 構文」を参照してください。
  6. プレーン テキストのパスワードを設定し、Introscope によって暗号化パスワードが自動的に生成されるようにします。
    1. users.xml
      ファイルで
      plaintextPasswords="true"
      を設定します。
       
      重要:
      plainTextPasswords="true"
      を設定すると、Introscope によってすべてのパスワードが暗号化されます。 すべてのパスワードをプレーン テキストで設定します。そうしないと、すでに暗号化されているパスワードが Introscope によって暗号化されます。
    2. すべてのユーザのパスワードをプレーン テキストに設定します。
      例:
      <user password="John Jones Password" name="john"/>
      Enterprise Manager が次回 users.xml ファイルを読み取るとき(起動時またはユーザの認証時)に、以下のアクションを実行します。
    • Enterprise Manager はプレーン テキスト パスワードを暗号化して、users.xml を書き換えます。
    • Enterprise Manager は
      plainTextPasswords
      属性を
      false
      にリセットします。
  7. ユーザおよびグループを追加するには、ユーザ名を定義する手順 3、および各ユーザのパスワードを設定する手順 4 を繰り返します。
  8. users.xml ファイルを保存して閉じます。
    users.xml ファイルの内容への変更は、Enterprise Manager を再起動しなくても有効となります。
: users.xml ファイルにエラーがあると、Enterprise Manager は起動しません。
ユーザ用の users.xml 構文
    <users>
        <user password="adb831a7fdd83dd1e2a39ce7591dff8" name="Guest"/>
        <user password="" name="Admin"/>
    </users>
グループ用の users.xml 構文
    <groups>
        <group description="Administrator Group" name="Admin">
            <user name="Admin"/>
        </group>
    </groups>
パスワードが暗号化された users.xml 構文
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<principals xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" plainTextPasswords="false" version="0.3" xsi:noNamespaceSchemaLocation="users0.3.xsd">
    <users>
        <user password="adb831a7fdd83dd1e2a39ce7591dff8" name="Guest"/>
        <user password="" name="Admin"/>
    </users>
    <groups>
        <group description="Administrator Group" name="Admin">
            <user name="Admin"/>
        </group>
    </groups>
</principals>
domains.xml での Introscope ドメイン権限の構成
権限が適用されるのは、CA APM ユーザまたはグループがログインするときです。 CA APM ユーザまたはグループがすでにログインしているときに変更が行われた場合、その変更は次回ログイン時まで認識されません。 つまり、セッション中に権限が変更されても、Introscope はセッションを終了しません。
Introscope の権限は動的であり、ログイン試行のたびに
domains.xml
ファイルと
server.xml
ファイルが Enterprise Manager によってチェックされます。 したがって、権限の変更は Enterprise Manager を再起動しなくても行うことができます。
ユーザはドメインに対する権限を以下の順序で与えられます。
  • ユーザを指定する各ドメインに記述されたすべての権限
  • ユーザが所属するグループの各ドメインに記述されたすべての権限
また、これらのルールはドメインへのアクセス時に適用されます。
  • 権限の観点から言うと、
    スーパードメイン
    は、ほかのすべてのドメインと同じように扱われます。
  • スーパードメインへのアクセス権を持つユーザまたはグループに与えられた権限は、すべてのユーザ定義ドメインでも使用できます。
  • 1 人のユーザまたは 1 つのグループは、1 つのドメインに対して複数の権限を持つことができます。
  • 1 人のユーザまたは 1 つのグループは、複数のドメインで権限を持つことができます。
以下の手順に従います。
  1. XML 編集プログラムを使用して、<
    EM_Home
    >/config ディレクトリの domains.xml ファイルを開きます。
  2. ドメインごとに以下のプロパティを使用して、ユーザまたはグループの権限を定義します。
    注:
    ユーザまたはグループが複数の権限を持っている場合は、ユーザ/権限の組み合わせごとに設定行を 1 行追加します。
    読み取り
    ユーザまたはグループは、ドメイン内のすべてのエージェントとビジネス ロジックを表示できます。
    この権限で実行できるタスクには以下のものがあります。
      • Investigator ツリーの表示(ユーザがアクセス権を持つドメイン内のエージェントが表示されます)
      • Workstation コンソールでのダッシュボードの表示
      • Investigator のプレビュー ペインでのメトリック データとエレメント データの表示(Investigator ツリー内の特定リソースのデフォルト ビューである、上位 N 件を示すフィルタされたビューの表示を含みます)
      • 管理モジュール、エージェント、またはエレメントの設定の表示
      • アラート メッセージの参照
      • 履歴 Data Viewer での履歴データの更新および拡大/縮小表示
      • 履歴 Data Viewer の履歴データの範囲に関するオプションの変更
      • グラフでのメトリックの表示/非表示の切り替え
      • Data Viewer でのメトリックの前面/背面移動
      • グループとユーザの基本設定の変更(ホーム ダッシュボードの設定や、管理モジュール名をダッシュボード名と共に表示するかどうかなど)
        注:
        読み取り権限を持つユーザまたはグループは、Workstation 内ですべてのコマンドを表示できます。 アクセスを持たないコマンドは無効です。
    書き込み
    write 権限を持つユーザまたはグループは、read 権限を持つユーザまたはグループが実行可能な操作をすべて実行できますが、以下のタスクも行うことができます。
      • ドメイン内のすべてのエージェントとビジネス ロジックの表示
      • ダッシュボードの作成および編集
      • ドメイン内のすべてのモニタリング ロジックの編集
    run_tracer
    ユーザまたはグループは、エージェントについてトランザクション追跡セッションを開始できます。
    注:
    この権限には、read 権限も割り当てる必要があります。
    historical_agent_control
    ユーザまたはグループはエージェント(複数可)をマウントおよびマウント解除できます。
    注:
    この権限には、read 権限も割り当てる必要があります。
    live_agent_control
    ユーザまたはグループは、ドメイン内のメトリック、リソース、およびエージェントの報告をシャットオフできます。
    注:
    この権限には、read 権限も割り当てる必要があります。
    dynamic_instrumentation
    ユーザまたはグループは動的インスツルメンテーションを実行できます。
    thread_dump
    ユーザまたはグループは[スレッド ダンプ]タブを参照および使用できます。
    スレッド ダンプの使用および設定の詳細については、「」および「ド」を参照してください。
    full 
    ユーザまたはグループは、ドメインに対するすべての権限を持ちます。
    注:
    XML タグはすべて大文字と小文字が区別されます。
  3. ユーザまたはグループを追加するたびに、手順 2 (「ドメインごとに以下のプロパティを使用して ...」)を繰り返します。
  4. domains.xml ファイルを保存し、閉じます。
    CA APM ユーザのログイン時、Enterprise Manager は、ユーザが適切なドメイン権限を持っているかどうかを domains.xml ファイルでチェックします。
注:
domains.xml ファイルに構文またはその他のエラーがあると、Enterprise Manager は起動しません。
CA APM ユーザおよびグループのドメイン権限用のデフォルトの domains.xml 構文
デフォルトのドメイン構成では、以下のように定義されています。
  • ユーザまたはグループ「
    Admin
    」は、スーパードメインに対する「full」権限を持ちます。
  • ユーザまたはグループ「
    Guest
    」は、スーパードメインに対する「read」(表示のみ)権限を持ちます。
注:
SAP ユーザまたはグループの権限は少し異なっており、以下のとおりです。
  • ユーザまたはグループ「
    sapsupport
    」は、SuperDomain に対する「full」アクセス権を持ちます。
  • ユーザまたはグループ「
    Admin
    」は、SuperDomain に対する「read」(表示のみ)アクセス権を持ちます。
  • ユーザまたはグループ「
    sapsupport
    」は CEM システム管理者および管理者グループのメンバなので、CEM コンソールへのアクセス権限が付与されます。
ドメインのユーザまたはグループの権限を構成する構文は以下のとおりです。
        <grant group="Admin" permission="full"/>
        <grant user="Guest" permission="read"/>
オプションの CA APM ドメイン構成用の domains.xml 構文
この後に示すドメイン権限の構成例では、以下のユーザに次のようにドメイン権限が与えられています。
  • bsmith: HRApplication ドメインに対する「
    full
    」権限
  • fjones: HRApplication ドメインに対する「
    read
    」権限および「
    run_tracer
    」権限
  • jlo: スーパードメインに対する「
    write
    」権限
  • pdiddy: スーパードメインに対する「
    read
    」権限
  • swonder: 「
    dynamic_instrumentation
    」権限
  • cstevens:「
    thread_dump
    」権限
domains.xml ファイルの定義例:
<?xml version="1.0" encoding="UTF-8"?>
<domains xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="domains0.3.xsd" version="0.3">
   <domain name="HRApplication" description="">
      <agent mapping="(.*)HRAppAgent(.*)" />
<grant user="bsmith" permission="full" />
<grant user="fjones" permission="read" />
<grant user="fjones" permission="run_tracer" />
<grant user="swonder" permission="dynamic_instrumentation" />
<grant user="cstevens" permission="thread_dump" />
   </domain>
  <SuperDomain>
      <agent mapping="(.*)"/>
      <grant user="jlo" permission="write"/>
      <grant user="pdiddy" permission="read"/>
  </SuperDomain>
</domains>
server.xml での Enterprise Manager サーバ権限の構成
以下のサーバ権限は、Enterprise Manager の操作に関連するアクティビティについて定義されます。
  • Enterprise Manager のシャットダウン
  • MIB ファイルの発行
  • APM ステータス コンソールへのアクセス
以下の手順に従います。
  1. XML 編集プログラムを使用して、
    <EM_Home>
    /config ディレクトリの server.xml ファイルを開きます。
  2. 必要に応じて、以下のプロパティを使用して、各 CA APM ユーザまたはグループの権限を定義します。
    注:
    XML タグはすべて大文字と小文字が区別されます。
    shutdown
    ユーザまたはグループは Enterprise Manager をシャットダウンできます。
    publish_mib
    ユーザまたはグループは SNMP コレクション データを MIB に発行できます。
    MIB を発行するには、SNMP コレクションを作成する必要があります。 このタスクを行うには、SNMP コレクションの保存先のドメインに対する書き込みアクセス権が必要です。
    apm_status_console_control
    ユーザまたはグループは、APM ステータス アラート アイコンの表示、APM ステータス コンソールの使用、APM ステータス コンソール CLW コマンドの実行を行うことができます。
    注:
    メトリック ブラウザ ツリーでアクティブなクランプのメトリック情報を表示するには、domains.xml のスーパードメイン権限を持っている必要があります。
    full
    ユーザまたはグループは Enterprise Manager サーバに対するすべての権限を持ちます。
  3. ユーザを追加するたびに手順 2 (「CA APM ユーザごとの権限を定義 ...」)を繰り返します。
  4. server.xml ファイルを保存して閉じます。
    注:
    server.xml ファイルに構文またはその他のエラーがあると、Enterprise Manager は起動しません。
サーバ権限用の server.xml 構文
ユーザのサーバ アクセス権を設定するための構文は、以下のとおりです。
<grant user="username" permission="full">
ユーザまたはグループは Enterprise Manager の複数の権限を持つことができます。 複数のアクセス権を付与するには、ユーザ/アクセス権またはグループ/アクセス権のペアごとに 1 行を使用します。
デフォルトのサーバ構成用の server.xml 構文
デフォルトのサーバ構成では、「Admin」ユーザまたはグループは「full」権限を持ちます。
オプションのサーバ構成用の server.xml 構文
以下の例では、別々の CA APM ユーザに別々の権限を与える方法を示します。
  • bsmith: 「
    shutdown
    」アクセス権
  • tjones: 「
    publish_mib
    」権限
  • cstevens: 「
    apm_status_console_control
    」権限
server.xml ファイルは以下の例のようになります。
<?xml version="1.0" encoding="UTF-8"?> <server xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="users0.1.xsd" version="0.1">
<grant user="bsmith" permission="shutdown" /> 
<grant user="tjones" permission="publish_mib" />
<grant user="cstevens" permission="apm_status_console_control" />
</server>