この章では、監査ポリシーウィザードを使用して監査ポリシーの作成、編集、削除、および割り当てを行う方法について説明します。
この章では、次の概念およびタスクについて説明します。
監査ポリシーを作成するには、Identity Manager の監査ポリシーウィザードを使用します。監査ポリシーの定義後、そのポリシーに対して、変更や削除など、さまざまなアクションを実行できます。
監査ポリシー規則は特定の違反を定義します。ポリシー規則には、XPRESS、XML オブジェクト、または JavaScript 言語で作成された関数を含めることができます。
監査ポリシーウィザードを使用して簡単な規則を作成したり、Identity Manager IDE や XML エディタを使用してより高度な規則を作成することが可能です。
規則の subType は SUBTYPE_AUDIT_POLICY_RULE である必要があります。監査ポリシーウィザードで生成される規則には、自動的にこの subType が割り当てられます。
規則の authType は AuditPolicyRule である必要があります。監査ポリシーウィザードで生成される規則には、自動的にこの authType が割り当てられます。
監査ポリシーウィザードを使用して作成された規則は、true または false の値を返します。true の値を返すポリシー規則がポリシー違反となります。ただし、Identity Manager IDE を使用すると、監査スキャンやアクセスレビューの間にユーザーをスキップする規則を作成できます。ignore の値を返す監査ポリシー規則は、そのユーザーに対する規則の処理を停止し、次の対象ユーザーに進みます。
監査ポリシー規則の作成については、『Sun Identity Manager Deployment Reference』の第 4 章「Working with Rules」を参照してください。
監査ポリシーを作成するには、監査ポリシーウィザードを使用します。
監査ポリシーウィザードでは、監査ポリシーの作成手順を、順を追って説明します。ウィザードにアクセスするには、次の手順を使用します。
管理者インタフェースにログインします (「Identity Manager エンドユーザーインタフェースへのログイン」)。
「コンプライアンス」タブをクリックします。
「ポリシーの管理」サブタブまたはメニューが開きます。
新しい監査ポリシーを作成するには、「新規」をクリックします。
ウィザードでは、次のタスクを実行して監査ポリシーを作成します。
ポリシー制限の定義に使用する規則の選択または作成
承認者の割り当てとエスカレーション制限の設定
是正ワークフローの割り当て
各ウィザード画面に表示されたタスクを完了したら、「次へ」をクリックして次の手順に進みます。
十分に計画してから監査ポリシーを作成してください。開始する前に、以下のタスクを完了したことを確認します。
監査ポリシーウィザードでポリシーの作成に使用する規則を特定する。選択する規則は、作成するポリシーのタイプと、定義する特定の制限によって決まります。詳細については、「必要な規則を確認する」を参照してください。
新しいポリシーに含める是正ワークフローまたは規則をインポートする。詳細については、「Identity Manager への職務分掌規則のインポート (省略可能)」を参照してください。
監査ポリシーの作成に必要な機能を持っていることを確認する。第 6 章管理の 「機能とその管理について」で、必要な機能を確認してください。
ポリシーで指定する制限は、作成またはインポートする一連の規則に実装されます。監査ポリシーウィザードを使用して規則を作成する場合は、次の手順を実行します。
操作する特定のリソースを指定します。
リソースで有効な属性のリストからアカウント属性を選択します。
その属性に課す条件を選択します。
比較用の値を入力します。
監査ポリシーウィザードの外部で監査ポリシー規則を作成する場合は、『Sun Identity Manager Deployment Reference』の第 4 章「Working with Rules」を参照してください。
監査ポリシーウィザードでは、職務分掌規則を作成できません。これらの規則は、Identity Manager の外部で作成し、「設定」タブの「交換ファイルのインポート」オプションを使用してインポートする必要があります。
現在 Identity Manager から利用できない是正ワークフローを使用するには、外部ワークフローをインポートします。XML エディタまたは Identity Manager IDE を使用して、カスタムワークフローを作成できます。
authType=’AuditorAdminTask’ and add subtype=’SUBTYPE_REMEDIATION_WORKFLOW’ を設定します。これらの設定オブジェクトを設定するには、Identity Manager IDE または任意の XML エディタを使用します。
「交換ファイルのインポート」オプションを使用してワークフローをインポートします。
管理者インタフェースにログインします (「Identity Manager エンドユーザーインタフェースへのログイン」)。
「設定」タブをクリックし、次に「交換ファイルのインポート」サブタブまたはメニューをクリックします。
「交換ファイルのインポート」ページが表示されます。
アップロードするワークフローファイルを参照し、「インポート」をクリックします。
正常にインポートされたワークフローは、監査ポリシーウィザード (「監査ポリシーの作成」) の「是正ワークフロー」のオプションリストに表示されます。
監査ポリシーウィザードに、新しいポリシーの名前と簡単な説明を入力します (図 14–1)。
監査ポリシー名には、次の文字を使用できません。' (アポストロフィー)、. (ピリオド)、| (パイプ)、[ (左角括弧)、] (右角括弧)、, (コンマ)、: (コロン)、$ (ドル記号)、“ (二重引用符)、\ (バックスラッシュ)、= (等号)。
また、_ (下線)、% (パーセント記号)、^ (キャレット)、および * (アスタリスク) の使用も避けてください。
スキャン実行時のアクセス対象を、選択したリソースだけに制限する場合は、「ターゲットリソースを制限」オプションを選択します。
違反の是正として、ただちにユーザーを再スキャンする場合は、「違反の再スキャンを許可」オプションを選択します。
監査ポリシーでリソースを制限しない場合、スキャンでは、ユーザーがアカウントを持つすべてのリソースがアクセスされます。規則で使用するリソースが少ない場合は、ポリシーの適用をそれらのリソースに限定するほうが効率的です。
「次へ」をクリックして次のページに進みます。
このページで、ポリシーの規則を定義または追加するプロセスを開始します。ポリシー作成時の作業の大部分は、規則の定義と作成です。
次の図に示すように、Identity Manager の規則ウィザードを使用して独自の規則を作成するか、または既存の規則を組み込むことができます。規則ウィザードでは、1 つの規則で使用できるリソースは 1 つだけです。インポートした規則では、必要なだけの数のリソースを参照できます。
新しい規則を作成するか、既存の規則を使用するかを決定します。
次のオプションのいずれかを選択します。
新しい規則を作成する場合は、「規則ウィザード」オプションを選択します (デフォルト)。
Identity Manager IDE を使用して作成した既存の規則を組み込む場合は、「既存の規則」オプションを選択します。
「次へ」をクリックします。
手順 1 の選択に基づいて、次のいずれかの操作を行います。
「規則ウィザード」を選択した場合は、「規則ウィザードを使用した新しい規則を作成する」に進み、説明されている手順に従ってください。
「既存の規則」を選択した場合は、「既存の規則を選択する」に進み、説明されている手順に従ってください。
新しいポリシーに既存の規則を含めるには、「規則の種類の選択」画面で「既存の規則」を選択し、「次へ」をクリックします。次に、「既存の規則の選択」ドロップダウンメニューから既存の監査ポリシー規則を選択します。
以前に Identity Manager にインポートした規則の名前が表示されない場合は、「監査ポリシー規則を使用したポリシーの作成」で説明した追加属性を規則に追加していることを確認してください。
「次へ」をクリックします。
「規則の追加」に進みます。
監査ポリシーウィザードで「規則ウィザード」を選択して規則を作成する場合は、次の節で説明するページに情報を入力していきます。
オプションの作業として新しい規則に名前を付けて説明します。このページでは、Identity Manager で規則が表示されるときに規則名の横に表示される説明テキストを入力します。規則の内容を示す簡潔でわかりやすい説明を入力します。この説明は、Identity Manager の「ポリシー違反のレビュー」ページ内に表示されます。
たとえば、Oracle ERP responsibilityKey の Payable User 属性値と Receivable User 属性値の両方を持つユーザーを検出する規則を作成する場合は、「説明」フィールドに「Payable User と Receivable User の両方の役割を持つユーザーを検出する」などのテキストを入力します。
規則に関する追加情報を入力する場合は、「コメント」フィールドを使用します。
このページでは、規則で参照するリソースを選択します。各規則変数は、このリソースの属性に対応している必要があります。このオプションリストには、表示アクセス権を持つすべてのリソースが表示されます。この例では、「Oracle ERP」が選択されています。
使用可能な各リソースアダプタのほとんどの属性 (ただし全部ではない) がサポートされています。利用可能な特定の属性の詳細については、『Sun Identity Manager 8.1 Resources Reference 』を参照してください。
「次へ」をクリックして次のページに進みます。
この画面では、新しい規則の規則式を入力します。この例では、Oracle ERP responsibilityKey の Payable User 属性値を持つユーザーは、Receivable User 属性値を同時に持つことができないという規則を作成します。
使用可能な属性のリストからユーザー属性を選択します。この属性は、規則変数に直接対応します。
リストから論理条件を選択します。有効な条件には、「=」(等しい)、「!=」(等しくない)、「<」(より小さい)、「<=」(より小さいまたは等しい)、「>」(より大きい)、「>=」(より大きいまたは等しい)、「が true である」、「が null である」、「が null でない」、「が空の文字列である」、および「が右の文字列を含む」があります。この例では、使用できる属性条件のリストから「contains」を選択します。
式の値を入力します。たとえば、「Payable user」と入力した場合は、responsibilityKeys 属性の Payable user値を持つ Oracle ERP ユーザーを指定したことになります。
(省略可能) 「AND」または「OR」の演算子をクリックし、行を追加して、別の式を作成します。
この規則はブール値を返します。両方のステートメントが true の場合、ポリシー規則は、ポリシー違反となる TRUE の値を返します。
Identity Manager では、入れ子になった規則の制御はサポートされません。また、監査ポリシーウィザードを使用して、規則間で異なるブール演算子を使用したポリシーを作成すると、評価の順序が指定されていないため、予期しない結果となる可能性があります。
複雑な規則式の場合は、監査ポリシーウィザードを使用するのではなく、XML エディタを使用して規則を作成してください。XML エディタを使用すると、必要な場所で否定を指定し、ルール間で 1 つのブール演算子のみを使用するようにできます。
次のコード例は、この画面で作成した規則の XML を示しています。
<Description>Payable User/Receivable User</Description> <RuleArgument name=’resource’ value=’Oracle ERP’> <Comments>Resource specified when audit policy was created.</Comments> <String>Oracle ERP</String> </RuleArgument> <and> <contains> <ref>accounts[Oracle ERP].responsibilityKeys</ref> <s>Receivable User</s> </contains> <contains> <ref>accounts[Oracle ERP].responsibilityKeys</ref> <s>Payables User</s> </contains> </and> <MemberObjectGroups> <ObjectRef type=’ObjectGroup’ id=’#ID#Top’ name=’Top’/> </MemberObjectGroups> </Rule> |
規則から式を削除するには、属性条件を選択して「削除」をクリックします。
「次へ」をクリックして監査ポリシーウィザードを続行します。既存の規則を追加するか、もう一度ウィザードを使用して、より多くの規則を追加することができます。
既存の規則をインポートするか、ウィザードを使用して、追加規則を作成することができます。詳細については、「規則のタイプを選択する」を参照してください。
必要な場合は、「AND」または「OR」の演算子をクリックして、規則の追加を続行します。規則を削除するには、規則を選択して「削除」をクリックします。
ポリシー違反が発生するのは、すべての規則のブール式が true と評価した場合だけです。規則を AND または OR の演算子でグループ化すると、すべての規則が true でなくても、ポリシーが true に評価される場合があります。Identity Manager は、true に評価された規則に対してのみ、およびポリシー式が true に評価された場合のみ、違反を作成します。
Identity Manager では、入れ子になった規則の制御はサポートされません。また、監査ポリシーウィザードを使用して、規則間で異なるブール演算子を使用したポリシーを作成すると、評価の順序が指定されていないため、予期しない結果となる可能性があります。
複雑な規則式の場合は、監査ポリシーウィザードを使用するのではなく、XML エディタを使用して規則を作成してください。XML エディタを使用すると、必要な場所で否定を指定し、ルール間で 1 つのブール演算子のみを使用するようにできます。
この画面で、このポリシーに関連付ける是正ワークフローを選択します。ここで割り当てたワークフローによって、監査ポリシー違反が検出されたときに Identity Manager で実行されるアクションが決まります。
違反が検知された監査ポリシーごとに 1 つのワークフローが起動します。各ワークフローには、特定のポリシーのポリシースキャンによって作成されたコンプライアンス違反ごとに、1 つまたは複数の作業項目が含まれます。
XML エディタまたは Identity Manager IDE で作成したワークフローのインポートについては、「Identity Manager への職務分掌規則のインポート (省略可能)」を参照してください。
「是正ユーザーフォーム規則」ドロップダウンメニューを使用して、是正を通してユーザーを編集するときに適用するユーザーフォームを判定する規則を選択します。デフォルトでは、是正作業項目に対応してユーザーを編集する是正者は、是正者に割り当てられたユーザーフォームを使用します。監査ポリシーで是正ユーザーフォームを指定すると、このフォームが代わりに使用されます。これにより、監査ポリシーで対応する特定の問題を示す場合に、厳密に限定されたフォームを使うことができます。
この是正ワークフローに関連付ける是正者を指定する場合は、「是正者の指定」チェックボックスを選択します。このオプションを選択して「次へ」をクリックすると、是正者の割り当てページが表示されます。このオプションを選択しなかった場合は、監査ポリシーウィザードの組織の割り当て画面が表示されます。
是正者を指定した場合、この監査ポリシーの違反が検出されると、このポリシーに割り当てられた是正者に通知されます。さらに、デフォルトのワークフローで是正作業項目が是正者に割り当てられます。Identity Manager ユーザーはだれでも、是正者になることができます。
1 人以上のレベル 1 是正者、すなわち、指定されたユーザーを割り当てることができます。レベル 1 是正者は、ポリシー違反が検出されたときに、是正ワークフローによって送信される電子メールで最初に連絡を受けます。レベル 1 是正者が応答する前に、指定したエスカレーションタイムアウト期間が経過すると、Identity Manager は続いて、ここで指定したレベル 2 是正者に連絡します。エスカレーションタイムアウト期間が経過するまでに、レベル 1 是正者とレベル 2 是正者のどちらも応答しなかった場合のみ、Identity Manager はレベル 3 是正者に連絡します。
選択した最高レベルの是正者に対してエスカレーションタイムアウト値を指定した場合、エスカレーションがタイムアウトすると、リストから作業項目が削除されます。デフォルトでは、エスカレーションタイムアウトは 0 に設定されます。この場合、作業項目は期限切れにならず、是正者のリストに残ります。
是正者の割り当ては省略可能です。このオプションを選択する場合は、「是正者の指定」チェックボックスを有効にして、次の画面に進みます。
是正者の利用可能リストにユーザーを追加するには、ユーザー ID を入力して、「追加」をクリックします。または、「...」ボタンをクリックして、ユーザー名を検索します。「が次の文字列で始まる」フィールドに文字を入力し、「検索」をクリックします。検索リストからユーザーを選択したら、「追加」をクリックして、是正者のリストに追加します。「閉じる」をクリックして、検索領域を閉じます。
是正者のリストからユーザー ID を削除するには、リストでユーザー ID を選択して、「削除」をクリックします。
この画面を使用して、このポリシーを表示および編集できる組織を選択します (図 14–7)。
組織を選択したら、「完了」をクリックして監査ポリシーを作成し、「ポリシーの管理」ページに戻ります。新しく作成したポリシーがこのリストに表示されます。
監査ポリシーに関する一般的な編集タスクは次のとおりです。
規則を追加または削除する
ターゲットリソースを変更する
ポリシーにアクセスできる組織のリストを調整する
各レベルの是正に関連付けられたエスカレーションタイムアウトを変更する
ポリシーに関連付けられた是正ワークフローを変更する
監査ポリシー名の列でポリシーの名前をクリックして「監査ポリシーの編集」ページを開きます。このページでは、監査ポリシーに関する情報が次の領域に分類されています。
識別と規則の領域
是正者とエスカレーションタイムアウトの領域
ワークフローと組織の領域
ページのこの領域では、次の操作を行うことができます。
ポリシーの説明の編集
規則の追加または削除
この製品で既存の規則を直接編集することはできません。Identity Manager IDE または XML エディタを使用して規則を編集し、これを Identity Manager にインポートします。その後、以前のバージョンの規則を削除して、改訂バージョンの規則を追加します。
監査ポリシーの説明を編集するには、「説明」フィールド内のテキストを選択し、新しいテキストを入力します。
オプションの作業として、「ターゲットリソースを制限」オプションまたは「違反の再スキャンを許可」オプションを選択するか、選択解除します。
ポリシーの規則を削除するには、規則名の前にある「選択」ボタンをクリックし、「削除」をクリックします。
「追加」をクリックして新しいフィールドを追加し、そのフィールドで、追加する規則を選択します。
「規則名」列で、選択リストから別の規則を選択します。
図 14–8 に、ポリシーにレベル 1、レベル 2、およびレベル 3 の是正者を割り当てる、「是正者」領域の一部を示します。
ページのこの領域では、次の操作を行うことができます。
ポリシーの是正者の削除または割り当て
エスカレーションタイムアウトの調整
ユーザー ID を入力して 1 つ以上の是正レベルに対して是正者を選択し、「追加」をクリックします。ユーザー ID を検索するには、「...」ボタンをクリックします。少なくとも 1 人の是正者を選択する必要があります。
是正者を削除するには、リストでユーザー ID を選択し、「削除」をクリックします。
タイムアウト値を選択し、新しい値を入力します。デフォルトでは、タイムアウト値は設定されていません。
選択した最高レベルの是正者に対してエスカレーションタイムアウト値を指定した場合、エスカレーションがタイムアウトすると、リストから作業項目が削除されます。
図 14–9 に、監査ポリシーの是正ワークフローと組織を指定する領域を示します。
ページのこの領域では、次の操作を行うことができます。
ポリシー違反の発生時に起動する是正ワークフローを変更する
是正ユーザーフォーム規則を選択する
このポリシーにアクセスできる組織を調整する
ポリシーに割り当てられたワークフローを変更するには、オプションリストから別のワークフローを選択します。デフォルトでは、ワークフローは監査ポリシーに割り当てられません。
監査ポリシーにワークフローが割り当てられていない場合、違反はどの是正者にも割り当てられません。
リストから是正ワークフローを選択し、「保存」をクリックします。
オプションの作業として、是正によってユーザーを編集する際に適用されるユーザーフォームを生成する規則を選択します。
この監査ポリシーを使用できる組織を調整し、「保存」をクリックします。
Identity Manager には、「監査ポリシー」リストからアクセス可能な次のサンプルポリシーが用意されています。
IDM Role Comparison Policy
IDM Account Accumulation Policy
このサンプルポリシーを使用すると、Identity Manager ロールで指定されている属性と、ユーザーの現在の属性を比較できます。このポリシーは、ロールに指定されたすべてのリソース属性がユーザーに設定されていることを確認するためのものです。
このポリシーは次の場合に違反を検知します。
ロールに指定されたリソース属性がユーザーに含まれていない
ユーザーのリソース属性が、ロールに指定されているものと異なる
このサンプルポリシーでは、ユーザーが保有するすべてのアカウントが、そのユーザーによって保有されている少なくとも 1 つのロールによって参照されていることを確認します。
ユーザーに割り当てられているリソースアカウントのうち、いずれか 1 つでも現在ユーザーに割り当てられているどのロールからも明示的に参照されていない場合、このポリシーに違反します。
監査ポリシーを Identity Manager から削除すると、そのポリシーを参照する違反もすべて削除されます。
「ポリシーの管理」をクリックしてポリシーを表示した時に、インタフェースの「コンプライアンス」領域からポリシーを削除できます。監査ポリシーを削除するには、ポリシーのリストからポリシー名を選択し、「削除」をクリックします。
通常、監査ポリシーに関する問題に対処するにはポリシー規則のデバッグが最善の方法です。
規則をデバッグするには、規則コードに次のトレース要素を追加します。
<block trace=’true’> <and> <contains> <ref>accounts[AD].firstname</ref> <s>Sam</s> </contains> <contains> <ref>accounts[AD].lastname</ref> <s>Smith</s> </contains> </and> </block>
Identity Manager インタフェースにワークフローが表示されない場合は、次の点を確認してください。
ワークフローに subtype=’SUBTYPE_REMEDIATION_WORKFLOW ’ 属性を追加している。このサブタイプが指定されていないワークフローは、Identity Manager 管理者インタフェースに表示されません。
authType AuditorAdminTask に対する権限が設定されている機能を持っている。
ワークフローを含む組織を管理している。
インポートした規則が監査ポリシーウィザードに表示されない場合は、次の点を確認してください。
各規則に subtype=”SUBTYPE_AUDIT_POLICY_RULE’ または subtype=”SUBTYPE_AUDIT_POLICY_SOD_RULE’ が指定されている。
authType AuditPolicyRule に対する権限が設定されている機能を持っている。
ワークフローを含む組織を管理している。
組織に監査ポリシーを割り当てるには、少なくとも「Assign Organization Audit Policies」機能を持っている必要があります。ユーザーに監査ポリシーを割り当てるには、「Assign User Audit Policies」機能を持っている必要があります。「Assign Audit Policies」機能を持つユーザーは、これらの両方の機能を持ちます。
組織レベルのポリシーを割り当てるには、「アカウント」タブで「組織」を選択し、「割り当てられた監査ポリシー」リストでポリシーを選択します。
「アカウント」領域でユーザーをクリックします。
ユーザーフォームで「コンプライアンス」を選択します。
「割り当てられた監査ポリシー」リストでポリシーを選択します。
ユーザーに直接割り当てられている (ユーザーアカウントや組織の割り当てによって割り当てられている) 監査ポリシーは、そのユーザーの違反が是正されるときに常に再評価されます。
デフォルトでは、監査タスクを実行するために必要な機能は最上位 (Top) 組織 (オブジェクトグループ) に含まれています。このため、最上位 (Top) を管理する管理者のみが、これらの機能をほかの管理者に割り当てることができます。
別の組織に機能を追加することで、この制限を解決できます。Identity Manager には、このタスクに使用できる 2 つのユーティリティーが用意されています。これらのユーティリティーは、sample/scripts ディレクトリに格納されています。
監査タスクを実行するために必要な機能を、最上位 (Top) 以外の組織に追加するには、次の手順に従います。
次のコマンドを実行し、すべての機能 (AdminGroups) およびそれらに関連する組織 (オブジェクトグループ) をリスト表示します。
beanshell objectGroupUpdate.bsh -type AdminGroup -action list -csv |
このコマンドは、カンマ区切り値 (CSV) ファイルへの出力を取得します。
CSV ファイルを編集し、組織上の機能の場所を必要に応じて調整します。
このコマンドを実行して、Identity Manager を更新します。
beanshell objectGroupUpdate.bsh -data CSVFileName -action add -groups NewObjectGroup |