プライマリ・コンテンツに移動
Oracle® Enterprise Manager Cloud Control拡張プログラマーズ・リファレンス
13c リリース2
E92082-01
目次へ移動
目次
索引へ移動
索引

前
次

13 コンプライアンス標準の追加

Oracle Enterprise Manager Compliance Managementソリューションは、コンプライアンス・フレームワークおよびコンプライアンス標準を定義、カスタマイズおよび管理する機能を提供します。

コンプライアンス管理フレームワークの視覚的デモンストレーションを表示するには、次のURLにアクセスして「ビデオの再生」をクリックします。

https://apex.oracle.com/pls/apex/f?p=44785:24:0::NO:24:P24_CONTENT_ID,P24_PREV_PAGE:5773,1

この章の構成は、次のとおりです。

13.1 コンプライアンス標準の追加の概要

プラグイン開発者は、コンプライアンス標準を追加する際に、次の手順に従う必要があります。

  1. コンプライアンス標準ルールを定義します。

    コンプライアンス標準ルールは次のいずれかにすることができます。

    • リポジトリ・チェックベースのルール

    • リアルタイム監視ルール。

    コンプライアンス標準ルールの定義の詳細は、「コンプライアンス標準ルールについて」を参照してください。

  2. コンプライアンス標準を定義します。

    詳細は、「コンプライアンス標準の定義」を参照してください。

  3. コンプライアンス・フレームワークを定義します。

    詳細は、「コンプライアンス・フレームワークの定義」を参照してください。

  4. コンプライアンス標準ルール、標準およびフレームワークをメタデータXMLとしてパッケージ化します。

    詳細は、「コンプライアンスXMLのパッケージ」を参照してください。

  5. コンプライアンス・コンテンツを設定およびテストします。
  6. プラグインをデプロイします。

    プラグインのデプロイの詳細は、「プラグインの検証、パッケージ化およびデプロイ」を参照してください。

13.1.1 前提条件

この章では、次の内容を十分に理解していると想定します。

  • プラグインとそのXMLファイルのパッケージ化の方法を含む、プラグイン開発の概要。

  • コンプライアンス・データをemctl register oms metadata -service gccomplianceコマンドでインストールする場合は、EM_COMPLIANCE_UTIL.trigger_rule_dependency_jobコールバックが必要です。SYSMANユーザーとして、SQL*Plusを通じて次のコマンドを入力する必要があります。

    begin EM_COMPLIANCE_UTIL.trigger_rule_dependency_job;
    end;
    /
    

    注意:

    これは、emctl register oms metadata -service gccomplianceコマンドを使用してコンプライアンス・コンテンツをインストールする場合にのみ必要です。

    プラグインをインストールする場合は、前のSQLを入力する必要はありません。

    emctl register oms metadataコマンドの詳細は、「メタデータ登録サービス(MRS)を使用してデプロイされたメタデータ・ファイルの更新」を参照してください。

13.2 コンプライアンス標準ルールについて

ここでは、次のことについて説明します。

13.2.1 リポジトリ・チェックベースのルールの定義

リポジトリ・チェックベースのルールでは、1つ以上のターゲットの構成状態をチェックします。テストが違反を特定するのに失敗した場合、ルールはコンプライアンスです。つまり、テストでは、構成アイテムが必要な状態にあるか、規定した値を持っていると判断されます。違反を発見するルールは、非コンプライアンスです。

ルールのテスト条件によって評価されるデータ・ソースは、リポジトリの問合せに基づきます。ルールのテスト条件は、基本的なメトリックまたは問合せの列の値またはSQL式、またはPL/SQL関数に基づくしきい値の条件を使用して実装できます。(ポリシーは、Oracle Enterprise Manager 10gリリース5と同様です)。

この領域の主要な点は次のとおりです。

  • コンプライアンス標準ルール、コンプライアンス標準およびコンプライアンス・フレームワークの定義

  • 即時利用可能なポリシー・グループ(10.2.x/11.10)から、コンプライアンス標準ルールを参照するように作成するコンプライアンス標準への置換え

  • 適切なコンプライアンス・フレームワークへのコンプライアンス標準のマッピング

  • コンプライアンスのOracle Business Intelligence Publisher (BI Publisher)レポートの定義

次の例では、リポジトリ・ルールを定義する構文を示し、さらにその次の例でリポジトリ・ルールの定義例を示します。

注意:

完全なコンプライアンスXMLスキーマ定義(XSD)については、次のJARファイルを参照してください。

$ORACLE_HOME/sysman/jlib/gccomplianceCommon.jar

注意:

他の例については、「その他のコンプライアンス例」を参照してください。

例: リポジトリ・ルール定義の構文

<xsd:complexType name="RuleT">
    <xsd:sequence>
      <xsd:element name="DisplayName" type="std:DisplayString256Def" minOccurs="0"/>
      <xsd:element name="TargetType" type="std:Name256Def"/>
      <xsd:element name="IsSystem" type="std:BooleanDef" minOccurs="0" default="false"/>
      <xsd:element name="IsHidden" type="std:BooleanDef" minOccurs="0" default="false"/>
      <xsd:element name="evaluateAlways" type="std:BooleanDef" default="false" minOccurs="0"/>
      <!-- E.g. target version, platform based filter -->
      <xsd:element ref="std:TargetPropertyFilter" minOccurs="0"/>
      <xsd:element name="Description" type="std:DisplayString800Def" minOccurs="0"/>
      <xsd:element name="Impact" type="std:DisplayString800Def" minOccurs="0"/>
      <xsd:element name="Recommendation" type="std:DisplayString800Def" minOccurs="0"/>
      <xsd:element name="FixLinkList" type="std:FixLinkListT" minOccurs="0"/>
      <xsd:element name="ViolationContextList" type="std:ViolationContextListT"/>
      <xsd:element name="CheckSource" type="std:CheckSourceT" minOccurs="1" maxOccurs="1"/>

      <xsd:element name="Severity" default="MinorWarning" minOccurs="0">
        <xsd:simpleType>
          <xsd:restriction base="xsd:string">
            <xsd:enumeration value="MinorWarning"/>
            <xsd:enumeration value="Warning"/>
            <xsd:enumeration value="Critical"/>
          </xsd:restriction>
      </xsd:simpleType>
      </xsd:element>
      <xsd:element name="LifeCycleStatus" default="Development" minOccurs="0">
        <xsd:simpleType>
          <xsd:restriction base="xsd:string">
            <xsd:enumeration value="Development"/>
            <xsd:enumeration value="Production"/>
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:element>
      <xsd:element name="KeywordList" type="std:KeywordListT" minOccurs="0"/>
      <xsd:element name="UrlLink" type="std:String4000Def" minOccurs="0"/>
      <xsd:element name="ViolationMessage" type="std:DisplayString800Def" minOccurs="0"/>
      <xsd:element name="ClearViolationMessage" type="std:DisplayString800Def" minOccurs="0"/>
      <xsd:element name="Author" type="std:Name256Def" minOccurs="0"/>
      <xsd:element name="LastUpdatedBy" type="std:Name256Def" minOccurs="0"/>
    </xsd:sequence>
    <xsd:attribute name="name" type="std:Name256Def" use="required"/>
    <xsd:attribute name="oms_version" type="std:Name32Def" use="required"/>
  </xsd:complexType>

次の例は、データベース・プラグインの一部であるoracle_database target_typeに対して定義されています。

Enterprise Managerに登録されている任意のターゲット・タイプのルールを定義できます。

例: サンプル・ルール

<Rule xmlns="http://www.oracle.com/DataCenter/ConfigStd" oms_version="12.1.0.1.0" name="sample_rule1">
    <DisplayName nlsid="SAMPLE_RULE_1_NAME">Sample Rule 1</DisplayName>
    <TargetType>oracle_database</TargetType>
    <IsSystem>true</IsSystem>
	<TargetPropertyFilter>
        <PropertyItem>
            <PropertyName>orcl_gtp_operating_system</PropertyName>
            <ValueList>
                <Value>Windows</Value>
            </ValueList>
        </PropertyItem>
        <PropertyItem>
            <PropertyName>orcl_gtp_target_version</PropertyName>
            <ValueList>
                <Value>8.1.6+</Value>
            </ValueList>
        </PropertyItem>
    </TargetPropertyFilter>
    <Description nlsid="SAMPLE_RULE_1_DESC">Checks for use of a single control file</Description>
    <Impact nlsid="SAMPLE_RULE_1_IMPACT">The control file is one of the most
important files in an Oracle database. It maintains many physical characteristics
and important recovery information about the database. If you lose the only copy
of the control file due to a media error, there will be unnecessary down time and
other risks.</Impact>
    <Recommendation nlsid="SAMPLE_RULE_1_RECO">Use at least two control files that are multiplexed on different disks.</Recommendation>
    <ViolationContextList>
        <Column type="String" name="FILE_LIST">
            <DisplayLabel nlsid="SAMPLE_RULE_1_COL_1">FILE_LIST</DisplayLabel>
            <IsHidden>false</IsHidden>
            <IsKey>false</IsKey>
        </Column>
        <Column type="Number" name="CONTROL_FILE_COUNT">
            <DisplayLabel nlsid="SAMPLE_RULE_1_COL_2">CONTROL_FILE_COUNT</DisplayLabel>
            <IsHidden>false</IsHidden>
            <IsKey>false</IsKey>
        </Column>
    </ViolationContextList>
    <CheckSource>
        <RepositoryCheckDefinition>
            <Metric>
    <TargetType>oracle_database</TargetType>
    <MetricName>sample_rule1</MetricName>
    <SourceType>SQL</SourceType>
        <Source>select CONTROL_FILE_COUNT, FILE_LIST, TARGET_GUID from MGMT$CS_DB_CONTROL_FILE_COUNT</Source>
    <MetricColumnList>
        <MetricColumnInfo>
                <ColumnName>FILE_LIST</ColumnName>
                <ColumnType>String</ColumnType>
                <isKey>false</isKey>
                <ColumnLabel nlsid="SAMPLE_RULE_1_COL_1">FILE_LIST</ColumnLabel>
                      </MetricColumnInfo>
        <MetricColumnInfo>
                <ColumnName>CONTROL_FILE_COUNT</ColumnName>
                <ColumnType>Number</ColumnType>
                <isKey>false</isKey>
                <ColumnLabel nlsid="SAMPLE_RULE_1_COL_2">CONTROL_FILE_COUNT</ColumnLabel>
        </MetricColumnInfo>
    </MetricColumnList>
               </Metric>
            <ParameterList>
                <RuleParameter>
                    <ParamName>CONTROL_FILE_COUNT</ParamName>
                    <ParamType>Number</ParamType>
                </RuleParameter>
            </ParameterList>
            <ParameterDefaultSettings>
                <ParamValue>
                    <ParamName>CONTROL_FILE_COUNT</ParamName>
                    <MinorWarnThreshold>1</MinorWarnThreshold>
                </ParamValue>
            </ParameterDefaultSettings>
            <TestCondition>
                <ThresholdCriteria>
                    <ColumnName>CONTROL_FILE_COUNT</ColumnName>
                    <TestOperator>EQ</TestOperator>
                    <ThresholdValue>1</ThresholdValue>
                    <ThresholdType>Number</ThresholdType>
                </ThresholdCriteria>
            </TestCondition>
        </RepositoryCheckDefinition>
    </CheckSource>
   <Severity>MinorWarning</Severity>
    <LifeCycleStatus>Production</LifeCycleStatus>
    <KeywordList>
        <Keyword nlsid="CONFIGURATION">Configuration</Keyword>
    </KeywordList>
    <ViolationMessage nlsid="SAMPLE_RULE_1_VIOL_MSG">The database has an insufficient number of control files.</ViolationMessage>
    <ClearViolationMessage nlsid="SAMPLE_RULE_1_VIOL_CLEAR_MSG">The database has sufficient number of control files.</ClearViolationMessage>
    <Author>SYSMAN</Author>
</Rule>

表13-1で、リポジトリ・ルールの定義に使用するタグについて説明します。

表13-1 リポジトリ・ルールの定義用の主要なタグ

タグ サブタグ 説明

DisplayName

ルールの表示名。メッセージの翻訳をサポートするためのnlsid属性を提供します。

TargetType

このルールを関連付けることのできるターゲットのタイプ

IsSystem

即時利用可能なルールの場合はTrue。それ以外の場合はFalseです

IsHidden

デフォルトは、falseです。

Trueに設定した場合、IsHiddenルールはUIに表示されず、イベントは生成されません。この要素は、即時利用可能なルールに対してtrueに設定する必要があります。

Description

ルールの説明。メッセージの翻訳をサポートするためのnlsid属性を提供します。

Impact

ルールに違反した場合(ルールが非コンプライアンスの場合)の影響。メッセージの翻訳をサポートするためのnlsid属性を提供します。

ViolationContextList

違反コンテキストは、ルールの違反を一意に定義します。違反コンテキストは、違反の一部として表示される<Source>問合せの列をリストします。各列は、キーまたは非キーとしてマークする必要があります。

<Source>問合せの必須のtarget_guid列は、違反コンテキストに暗黙的に追加されるため、違反コンテキストに明示的に含める必要はありません。

Column

メトリック列名。属性名とタイプを使用します。

  • DisplayLabel: 列の表示名。メッセージの翻訳をサポートするためのnlsid属性を提供します。

  • IsHidden: この列を違反コンテキストの一部として表示しない場合はTrue。それ以外の場合はFalseです。

  • IsKey: この列がキーの場合はTrue。

CheckSource

ルール評価のデータ・ソースを定義します。

..RepositoryCheckDefinition

リポジトリ・ルールのデータソースを定義します。

Metric

データ・ソース問合せを定義します。

  • MetricName: メトリックの名前

  • SourceType: SQL。サポートされる唯一のSourceTypeです。

  • Source: これは、MGMT$_%ビューに対して記述されたSQL問合せです。(Enterprise ManagerはMGMT$_%ビューを提供します。『Oracle Enterprise Manager Cloud Control管理リポジトリ・ビュー・リファレンス』を参照してください。)必要に応じて、このSQL問合せは、Enterprise ManagerのMGMT_VIEWユーザーに対する直接のSELECT権限を持つ他の提供されたビューに対して記述できます。

    注意: ルール・ソース問合せ内でtarget_guidを指定できます。これで、実行時にtarget_guidが問合せにバインドされるようになります。これにより、パフォーマンスが向上します。

    次に例を示します。

    select a.cm_target_guid as target_guid, a.SESS_LAZY_DESER_ENABLED from MGMT$WEBLOGIC_CLUSTER a, mgmt$target_flat_members mtfm where mtfm.member_target_guid = a.cm_target_guid and mtfm.aggregate_target_type = 'exalogic_system' and a.cm_target_guid = :target_guid
    
  • MetricColumnList: ソース問合せの列のリスト

  • MetricColumnInfo: メトリック列

    ColumnName: メトリック列名

    ColumnType: メトリック列タイプ

    isKey: 列がキー列の場合はTrue。それ以外の場合はFalseです。

    ColumnLabel: 列の表示名

ParameterList

パラメータのリスト

注意: パラメータが指定され、where句で使用されている場合は、コンプライアンス標準ルールとターゲット・タイプ・レベルまたはコンプライアンス標準ルールとターゲット・インスタンス・レベルでパラメータ値をカスタマイズできます。これにより、ユーザーはターゲット・インスタンスごと、またはターゲット・タイプ・レベルでチェック定義の動作をカスタマイズまたは制御できます。

RuleParameter

パラメータ定義

ParamName

パラメータの名前

ParamType

パラメータ・タイプ(文字列または数値)

ParameterDefaultSettings

パラメータのデフォルト値

ParamValue

パラメータのデフォルト値を定義します。

  • ParamName: パラメータの名前

  • CritThreshold/WarnThreshold/MinorWarnThreshold: パラメータのデフォルト値。クリティカル重大度の場合は、CritThresholdを使用します。警告重大度の場合は、WarnThresholdを使用します。マイナー警告重大度の場合は、MinorWarnThresholdを使用します。

TestCondition

TestConditionタグは、メトリックの<Source>問合せを実行することでフェッチされたデータ・ソースを操作します。条件を満たすデータ・ソース行はルールに違反します。

ThresholdCriteria

列値をしきい値に関連付けるにはSource問合せの列、しきい値、および演算子(=、<、>など)が必要です。

SqlWhereClauseCriteria

<Source>問合せの列に対するSQL条件が必要です。オプションで、この条件に1つ以上のパラメータを含めることができます。

Severity

ルールの重大度(Critical、Warning、MinorWarning)

LifeCycleStatus

ルールのライフサイクル・ステータス(「開発」または「本番」)

UrlLink

ルールに関する詳細を含む、ルールの詳細URL

ViolationMessage

違反で記録されたメッセージ(ルールの場合)。通知に使用されます。メッセージの翻訳をサポートするためのnlsid属性を提供します。

ClearViolationMessage

違反のクリアで記録されたメッセージ(ルールの場合)。通知に使用されます。メッセージの翻訳をサポートするためのnlsid属性を提供します。

KeywordList

ルールに関連付けられているキーワードのリスト。

Keyword

コンプライアンス標準に適用できるキーワード

Author

ルールの作成者。

13.2.2 リアルタイム監視ルールの定義

リアルタイム監視ルールを使用して、ファイル、データベース・オブジェクトまたはMicrosoft Windowsレジストリ・キーに対して実行できるアクションを監視できます。プロセスの開始と停止、ログイン、ログアウトおよびユーザーのユーザー(su)アクティビティの切替えも監視できます。監視のリアルタイムの側面は、アクションが実行された正確な時刻と、アクションを実行したユーザーの取得を意味します。

リアルタイム監視からの結果は、BMC Remedyなどの変更管理システムと調整できます。この調整では、アクションが発生する(認可)と想定されたか、または発生しない(未認可)と想定されたかを自動的に判別できます。顧客が変更管理サーバーを持っていない場合、この監査ステータス注釈はUIを通じて自動で行うことができます。

ITコンプライアンス構想の主要な部分は、IT運用スタッフが企業ポリシーに従って環境を変更および管理することです。環境で顧客の変更管理プロセスに何が起きるかを調整するため、リアルタイム監視は、高リスク環境につながるポリシー外のアクションまたは監査を失敗させるコンプライアンス制御の識別に役立ちます。

リアルタイム監視ルールの作成には、次の手順が必要です。これらについて後で詳細に説明します。

  • 監視されるターゲット・タイプとエンティティ・タイプを選択します。ルールは、特定のターゲット・タイプ・プロパティ(OS、ターゲット・バージョン、ハードウェア・プラットフォームおよびターゲット・ライフサイクル)に基づいて制限することもできます。

  • 監視する1つ以上のターゲット・タイプ・ファセットを選択します。

  • 監視する1つ以上の監視を選択します。

  • 監視される結果をフィルタするゼロ以上のファセットを選択します。

  • 変更管理調整オプションを選択します。

この領域の統合点は次のとおりです。

  • ターゲット・タイプの(1つ以上の)ファセットの定義。ファセットは、監視される低レベルのアーティファクトを定義します。

  • 新規または既存のコンプライアンス標準に対する新しいコンプライアンス標準ルールの定義

  • コンプライアンス標準ルールとコンプライアンス標準から、業界標準フレームワークに関連する即時利用可能なコンプライアンス・フレームワークへのマッピング。

  • 新しいチケッティング・システムをサポートするためのコネクタの作成(カスタム・リージョンの定義を含む)。これを使用して、即時利用可能な変更調整サポートを拡張することもできます(現在はRemedy 7.xに制限されています)。新規コネクタの作成プロセスの詳細は、Oracle Enterprise Managerコネクタ統合ガイドを参照してください。

13.2.2.1 監視できるエンティティ・タイプ

リアルタイム監視ルールを定義する場合、最初に、ホスト上の監視するエンティティ・タイプを決定する必要があります。Oracle Enterprise Manager Cloud Control 12cでは、次のエンティティ・タイプをリアルタイム監視ルールで監視できます。

  • OSファイル

  • OSプロセス

  • OSユーザー

  • Microsoft Windowsレジストリ

  • Microsoft Active Directoryユーザー

  • Microsoft Active Directoryコンピュータ

  • Microsoft Active Directoryグループ

  • Oracleデータベース表

  • Oracleデータベース・ビュー

  • Oracleデータベース・プロシージャ

  • Oracleデータベース・ユーザー

  • Oracleデータベース索引

  • Oracleデータベース順序

  • Oracleデータベース関数

  • Oracleデータベース・パッケージ

  • Oracleデータベース・ライブラリ

  • Oracleデータベース・トリガー

  • Oracleデータベース表領域

  • Oracleデータベースのマテリアライズド・ビュー

  • Oracleデータベース・クラスタ

  • Oracleデータベース・リンク

  • Oracleデータベースのディメンション

  • Oracleデータベース・プロファイル

  • Oracleデータベース・パブリックDBリンク

  • Oracleデータベースのシノニム

  • Oracleデータベースのパブリック・シノニム

  • Oracleデータベース・セグメント

  • Oracleデータベース・タイプ

  • Oracleデータベース・ロール

  • OracleデータベースのSQL問合せ文

これらのエンティティ・タイプは現在のリリースの機能によって固定されており、拡張はできません。ただし、ファセットおよびリアルタイム監視ルールの作成時にこれらを使用できます。

何を監視できるかを定義するファセットに加えて、フィルタ処理に使用できるエンティティのセットもあります。次のリストは、最もよく使用されるフィルタリング・エンティティ・タイプを示しています。

  • OSプロセス

  • OSユーザー

  • Oracleデータベース・ユーザー

  • 時間ウィンドウ

  • ホスト

リアルタイム監視ルールの作成時に、監視の対象(つまり、ファイル)を選択します。次に、特定のユーザーによって実行されたアクション、または特定の期間のみ監視されるようにフィルタリングを使用するかどうかを選択します。

13.2.2.2 リアルタイム監視ファセットについて

ターゲット・タイプ・ファセットを使用して、監視するエンティティのリストを指定します。これらのファセットは、後で任意の数のルールで再び使用できます。これらは独自に作成するか、リアルタイム監視ルールに従ってインラインで作成できます。

OSのファイルの監視の場合、ファセットは、個別の単一ファイルのリスト、多数のファイルを含むワイルドカードを使用したパターン、または単にディレクトリ全体になります。

これらのパターンにパラメータをデフォルとともに含めることもできますが、各ターゲットの必要に応じて上書きできます。

次に、HOSTターゲット・タイプとOS FILEエンティティ・タイプに対して定義できるファセットの例を示します。

ユーザー資格証明ファイル

  • /etc/passwd

  • /etc/shadow

  • /etc/mail/trusted-users

ネットワーク構成ファイル

  • /etc/hosts

  • /etc/resolv.conf

  • /etc/hosts.*

  • /etc/defaultrouter

  • /etc/nsswitch.conf

  • /etc/netmasks

    {app_install_directory}/network/config

次に、HOSTターゲット・タイプとOS PROCESSンティティ・タイプに対して定義できるファセットの例を示します。本番サーバーで開始されたこれらのプロセスはいずれも重大なセキュリティ・リスクを引き起こす可能性があるため、これらをリアルタイムで監視できます。

ネットワーク構成ツール

  • ifconfig

  • xhost

次の表に、特定のターゲット・タイプに対して作成できる仮説ファセットのリストを示します。ファセット名には任意の名前を使用できます。一部のプラグイン開発者は、これらの限定された例よりも多くのファセットを使用している場合があります。各ファセットについて、含まれるパターンの説明があります。

ターゲット・タイプ・ファセット 説明

ログ・ファイル

ターゲット・タイプが持つ各ログ・ファイルをリストします。

顧客は(システム・ユーザーではなく)通常のユーザーがいつログ・ファイルを変更するかの監視を望みます。

バイナリ・ファイル

ターゲット・タイプが持つ各バイナリ・ファイルをリストします。

バイナリが改ざんされたかどうか、またはバイナリにパッチがいつ適用されたかを監視するためのルールを作成できます。個々のバイナリをリストするかわりに、頻繁に変更されるファイルを除外してディレクトリ全体をリストすることもできます。

ライブラリ・ファイル

ターゲット・タイプが持つ各ライブラリをリストします。

ライブラリが改ざんされたかどうか、またはライブラリにパッチがいつ適用されたかを監視するためのルールを作成できます。個々のライブラリをリストするかわりに、頻繁に変更されるファイルを除外してディレクトリ全体をリストすることもできます。

一般構成ファイル

通常はユーザーが変更できるがユーザーが変更を取得することが必要な場合がある構成ファイルをリストします。

セキュリティ・キー・ファイル

証明書やキーなどを格納するファイルをリストします。

これをディレクトリ全体にして、定期的に変更されるファイルを除外することもできます。ユーザーが証明書の内容の取得の試行でファイルを読み取るかどうかを監視します。

セキュリティ構成ファイル

暗号化構成など、ターゲット・タイプでのセグメントの動作を構成するファイルをリストします。

アプリケーション・ユーザー

通常のアプリケーション・ユーザー(Oracle、root)などをリストします。

ユーザーは、このファセットを使用して、アプリケーション・ユーザーが変更を行うかどうかを考慮しない場合にその変更の監視をフィルタできます。

ユーティリティ・プロセス

通常はメンテナンス期間中に実行され、本番中は実行する必要のないユーティリティ・プロセス。

レジストリ・キー

ターゲットの構成に影響するMicrosoft Windowsレジストリ・キー

構成表

構成データを格納するデータベース表。

13.2.2.3 リアルタイム監視ファセットの作成

ここでは、リアルタイム監視ファセットの作成で使用されるXMLタグの概要と、ファセット作成を示すXMLフラグメントの例を示します。ファセットは、この例で示すように自身で作成するか、リアルタイム監視ルールに従ってインラインで作成できます。

表13-2では、リアルタイム監視ファセットの定義に使用するタグについて説明します。

表13-2 リアルタイム監視ファセットの定義に使用する主要なタグ

タグ サブタグ 説明

Name

ファセットの内部名。これは、存在するすべてのファセット間で一意である必要があり、UIには表示されません。

DisplayName

ファセットの表示名。メッセージの翻訳をサポートするためのnlsid属性を提供します。

TargetType

このルールを関連付けることのできるターゲットのタイプ。

EntityType

ファセットを作成するエンティティ・タイプ(osfileosprocessosuserなど)

IsSystem

即時利用可能なルールの場合はTrue。それ以外の場合はFalseです。

Description

ファセットの説明。メッセージの翻訳をサポートするためのnlsid属性を提供します。

Author

ファセットの作成者であるEnterprise Managerユーザー。

LastUpdatedBy

ファセットを最後に更新したEnterprise Managerユーザー。これは、最初に作成されたデータの作成者と同じである必要があります。

SourcePattern/GeneralPattern:

ファセットを構成するパターン定義を保持するコンテナ

Patterns/Pattern

ファセットを定義するパターンのコレクション。単一のファセットは含めるおよび除外パターンで構成できます。

  • Value: 実際のパターン。このパターンには、ワイルドカードとパラメータを含めることができます。パラメータは、指定されるか、{および}でバインドされます。パラメータには、XMLでさらに定義されるデフォルト値が必要です。

    エンティティ・タイプは、ワイルドカードの使用方法に関する制限を決定します。製品ドキュメントは、エンティティ・タイプごとのこれらの制限を概説します。

  • Description: パターンの説明。メッセージの翻訳をサポートするためのnlsid属性を提供します。

  • IsIncluded: このパターンが含めるパターンと除外パターンのどちらであるか。含めるまたは除外の表記はワイルドカードに役立ちます。ディレクトリ全体を含め、その含めるディレクトリ下のサブディレクトリまたは個々のファイルを除外するパターンを指定できます。値0は、このパターンが除外パターンであることを示します。1は含めるパターンを指定します。

Parameters/Parameter

パターンに導入された各パターンのパターン・デフォルト値のコレクション。パラメータは、ファセット間で共有されません。2つのファセットで同じパラメータ名を使用する場合、各ファセットでは固有のデフォルト値を定義する必要があります。

  • Name: XMLで定義された上記のパターンで使用されるパラメータ名。

  • Value: このパラメータのデフォルト値。ユーザーは、このファセットが使用されている1つ以上のターゲットにコンプライアンス標準を関連付けるときに、ターゲットごとにこのパラメータ値をオーバーライドできます。

  • Description: パラメータの説明。メッセージの翻訳をサポートするためのnlsid属性を提供します。

  • isActive: このパラメータがパターンのリストで現在使用されているかどうか。パターンで使用せずに新規パラメータを定義することはないため、これは常に1である必要があります。

例: サンプル・ファセット定義

<Facet xmlns="http://www.oracle.com/DataCenter/ConfigStd" is_time_window="0">
    <Name>network_configuration_files</Name>
    <DisplayName nlsid="SAMPLE_FACET_DNAME">Networking configuration files</DisplayName>
    <TargetType>host</TargetType>
    <EntityType>osfile</EntityType>
    <IsSystem>1</IsSystem>
    <Description nlsid="SAMPLE_FACET_DESC">Files on a standard UNIX operating system that contain configuration relevant to the networking operations.</Description>
    <Author>SYSMAN</Author>
    <LastUpdatedBy>SYSMAN</LastUpdatedBy>
    <SourcePattern>
        <GeneralPattern>
            <Patterns>
                <Pattern>
                    <Value>{ETCDIR}/hosts</Value>
                    <Description nlsid="SAMPLE_FACET_PATTERN_1_DESC">Contains IP to hostname mappings</Description>
                    <IsIncluded>1</IsIncluded>
                </Pattern>
                <Pattern>
                    <Value>{ETCDIR}/resolv.conf</Value>
                    <Description nlsid="SAMPLE_FACET_PATTERN_2_DESC">Contains local name resolution mappings.</Description>
                    <IsIncluded>1</IsIncluded>
                </Pattern>
                <Pattern>
                    <Value>{ETCDIR}/appsecurity/*</Value>
                    <Description nlsid="SAMPLE_FACET_PATTERN_3_DESC">All files in a directory used for my custom application.</Description>
                    <IsIncluded>1</IsIncluded>
                </Pattern>
                <Pattern>
                    <Value>{ETCDIR}/appsecurity/sample.conf</Value>
                    <Description nlsid="SAMPLE_FACET_PATTERN_4_DESC">Excluding one file that is not a production configuration file that does not need to be monitored.</Description>
                    <IsIncluded>0</IsIncluded>
                </Pattern>
 
            <Parameters>
                <Parameter>
                    <Name>ETCDIR</Name>
                    <Description nlsid="SAMPLE_FACET_PARAMETER_1_DESC">Location where all base Unix configuration files sit.</Description>
                    <Value>/etc</Value>
                    <IsActive>1</IsActive>
                </Parameter>
            </Parameters>
        </GeneralPattern>
    </SourcePattern>
</Facet>

13.2.2.4 時間ウィンドウのリアルタイム監視ファセットの作成

時間ウィンドウは、リアルタイム監視のフィルタに使用される特殊なタイプのファセットです。通常、Enterprise Managerエンド・ユーザーは独自の操作スケジュールに固有であるため時間ウィンドウ・ファセットを作成しますが、このドキュメントには参照目的のコンテンツが含まれます。

表13-3で、時間ウィンドウ・ファセットのタグについて説明します。

表13-3 時間ウィンドウ・ファセットの定義に使用する主要なタグ

タグ サブタグ 説明

Name

ファセットの内部名。これは、存在するすべてのファセット間で一意である必要があり、UIには表示されません。

DisplayName

ファセットの表示名。メッセージの翻訳をサポートするためのnlsid属性を提供します。

TargetType

このルールが関連付けられるターゲットのタイプ

EntityType

ファセットを作成するエンティティ・タイプ。この例ではtimewindowです。

IsSystem

即時利用可能なルールの場合はTrue。それ以外の場合はFalseです。

Description

ファセットの説明。メッセージの翻訳をサポートするためのnlsid属性を提供します。

Author

ファセットの作成者であるEnterprise Managerユーザー。

LastUpdatedBy

ファセットを最後に更新したEnterprise Managerユーザー。これは、最初に作成されたデータの作成者と同じである必要があります。

SourcePattern/SchedulePattern

TZDisplayName

英語のタイム・ゾーンの表示名。たとえば、グリニッジ標準時(UTC+0)です。

Duration

  • DurStartMinute: 00:00 (午前0時)から時間ウィンドウの開始時刻までの分。たとえば、1439 = 11:59PMです

  • DurEndMinute: 00:00 (午前0時)から時間ウィンドウの終了時刻までの分。

  • DurMinute: 特に2日にわたる場合に、時間ウィンドウの記述に使用できる事前に計算された期間。期間は1440 (24時間)以下である必要があります。

Recurrence

  • RecStartDate: 時間ウィンドウが開始する日付

  • RecurrencePattern:

    RecPattern: 繰返しのタイプ。オプションは、"Single"、"Daily"、"Weekly"、"Monthly"または"Yearly"です。

    RecPatternDays: 曜日をカンマ区切り値で表します。Sunday = 1、Saturday = 7です。

    RecPatternFrequency: 繰返しのタイプが"Every X of some pattern"の場合に繰り返す頻度。

例: 時間ウィンドウ・ファセット定義のサンプル

    <Facet is_time_window="1>
        <Name>general_working_hours</Name>
        <DisplayName>General Working Hours</DisplayName>
        <TargetType>host</TargetType>
        <EntityType>timewindow</EntityType>
        <IsSystem>0</IsSystem>
        <Description>Define the work hour from 9:00 am to 5:00 pm</Description>
        <Author>SYSMAN</Author>
        <LastUpdatedBy>SYSMAN</LastUpdatedBy>
        <SourcePattern>
            <SchedulePattern>
                <TZDisplayName/>
                <Duration>
                    <DurStartMinute>540</DurStartMinute>
                    <DurEndMinute>1020</DurEndMinute>
                    <DurMinute>480</DurMinute>
                </Duration>
                <Recurrence>
                    <RecStartDate>2010-07-26</RecStartDate>
                    <RecurrencePattern>
                        <RecPattern>WEEKLY</RecPattern>
                        <RecPatternDays>1,2,5</RecPatternDays>
                        <RecPatternFrequency>1</RecPatternFrequency>
                    </RecurrencePattern>
                </Recurrence>
            </SchedulePattern>
        </SourcePattern>
    </Facet>

13.2.2.5 リアルタイム監視ルールの作成

ここでは、リアルタイム監視ルールの作成で使用されるXMLタグの概要と、ルール作成を示すXMLフラグメントの例を示します。このXMLフラグメントでは、ファセットがすでに作成され、このルールで参照されていることを想定します。

表13-4で、リアルタイム・ルールの定義に使用するタグについて説明します。

表13-4 リアルタイム・ルールの定義に使用する主要なタグ

タグ サブタグ 説明

DisplayName

ルールの表示名。メッセージの翻訳をサポートするためのnlsid属性を提供します。

TargetType

このルールが関連付けられるターゲットのタイプ

IsSystem

即時利用可能なルールの場合はTrue。それ以外の場合はFalseです。

Description

ルールの説明。メッセージの翻訳をサポートするためのnlsid属性を提供します。

Impact

ルールに違反した場合(ルールが非コンプライアンスの場合)の影響。メッセージの翻訳をサポートするためのnlsid属性を提供します。

ViolationContextList

違反コンテキストは、ルールの違反を一意に定義します。違反コンテキストは、違反の一部として表示される<Source>問合せの列をリストします。各列は、キーまたは非キーとしてマークする必要があります。

<Source>問合せの必須のtarget_guid列は、違反コンテキストに暗黙的に追加されるため、違反コンテキストに明示的に含める必要はありません。

Column

メトリック列名。属性名とタイプを使用します。

  • DisplayLabel: 列の表示名。メッセージの翻訳をサポートするためのnlsid属性を提供します。

  • IsHidden: この列を違反コンテキストの一部として表示しない場合はTrue。それ以外の場合はFalseです。

  • IsKey: この列がキーの場合はTrue。

CheckSource

ルール評価のデータ・ソースを定義します。

RealTimeMonitoringLogicDefinition

リアルタイム監視ルールのデータ・ソースを定義します。

EntityType

実行される監視のタイプ(osfileosprocessosuserなど)。完全なリストは「監視できるエンティティ・タイプ」を参照してください。

Facets

このルールで参照するファセットのコレクション。ファセットには、監視ファセットとフィルタリング・ファセットがあります。

  • Facet Reference: ファセットの内部参照名

    Name: ルールで参照されるファセットの内部参照名

    TargetType: 参照されるファセットのターゲット・タイプ。これは常にコンテンツのルール・ターゲット・タイプと同じである必要があります。

    EntityType: 参照されるファセットのエンティティ・タイプ

    IsFilteredFacet: 0は、このファセット参照を使用して監視対象を決定することを示します。1は、ファセット参照がフィルタであることを示します。

    InvertedFilteredFacet: IsFilteredFacet=1の場合にのみ適用されます。これは、ファセット定義のパターンが逆(1)か逆でない(0)かを指定します。フィルタ・ファセットが本番時間に対するもので、それが反転された場合、監視は本番時間に対して定義されたパターンの外部でのみ行われます。

ObservationTypes/ObservationType

リアルタイムで監視する監視のタイプ。

Name: このルールで監視する監視タイプの内部参照名。

Settings

  • CMSetting: 変更管理調整のパフォーマンスに関連する設定。

    auto_authorized=0属性は、手動調整のみを指定します。1は、変更管理サーバーとの統合を指定します。通常は、コネクタがまだ存在しないため、このフィールドを使用できません。CM設定のないルールを作成する場合、顧客はルールをオーバーライドし、ルールをコンプライアンス標準に関連付けた後で独自のカスタムCM設定を設定できます。

    CMConnector: ルールが自動調整に使用する必要のあるコネクタ。

    AnnotateAuthObservation: 変更管理コネクタが、監視を認可したリクエストに認可された監視の注釈を付ける必要があるかどうかを指定します。

AdvancedSetting

拡張ルール設定

  • GroupSetting: 監視バンドルを終了する方法に関する設定。監視バンドルは、同じユーザーによって同じルールに対して短期間に同じターゲット上で行われた一連のアクションを収集します。

    ObsGroupIdleTimeout: 最後のユーザー・アクションが行われてからバンドルが終了するまでのタイムアウト期間(分単位)。

    ObsGroupMaxAge: 監視バンドルの最大継続時間(分単位)。

    ObsGroupMaxObservations: 監視バンドル内の監視の最大数。

  • GenerateEventByManualAuth: 手動調整を使用している場合、監視の発生時に情報レベルのイベントを生成するオプションがあります。1は、情報イベントが各監視グループに対して作成されることを示します。0は、情報イベントが作成されないことを示します。

Options

エンティティ・タイプに基づいて構成できる追加オプション。一部のエンティティ・タイプにはオプションがありません。

  • Option (名前/値): オプション設定の単一の名前または値のペア。

Severity

ルールの重大度(Critical、WarningまたはMinorWarning)

LifeCycleStatus

ルールのライフサイクル・ステータス(「開発」または「本番」)

UrlLink

ルールに関する詳細を含む、ルールの詳細URL

ViolationMessage

違反で記録されたメッセージ(ルールの場合)。通知に使用されます。メッセージの翻訳をサポートするためのnlsid属性を提供します。

ClearViolationMessage

違反のクリアで記録されたメッセージ(ルールの場合)。通知に使用されます。メッセージの翻訳をサポートするためのnlsid属性を提供します。

KeywordList

ルールに関連付けられているキーワードのリスト

Keyword

コンプライアンス標準に適用できるキーワード

Author

ルールの作成者

例: ルール定義のサンプル

<Rule xmlns="http://www.oracle.com/DataCenter/ConfigStd" Name="monitor_critical_os_config_files">
    <DisplayName nlsid="SAMPLE_RULE_NAME">Monitor critical OS configuration files</DisplayName>
    <TargetType>host</TargetType>
    <IsSystem>True</IsSystem>
        <Description nlsid="SAMPLE_RULE_DESC">Monitor several critical
        configuration areas of a Linux host to ensure no configuration changes are
        happening out of bounds. Monitoring is only done during production
        hours.</Description>
    <Impact nlsid="SAMPLE_RULE_IMPACT">Capturing real-time changes to these files may indicate a serious security issue.</Impact>
    <Recommendation nlsid="SAMPLE_RULE_RECO">Ensure that change management policy documents how and when changes should be made in production. 
        Create compensating controls to address these out of bound issues.</Recommendation>
    <ViolationContextList/>
    <CheckSource>
        <RealTimeMonitoringLogicDefinition>
            <EntityType>osfile</EntityType>
            <Facets>
                <FacetReference>
                    <Name>network_configuration_files</Name>
                    <TargetType>host</TargetType>
                    <EntityType>osfile</EntityType>
                    <IsFilteredFacet>0</IsFilteredFacet>
                    <InvertFilteredFacet>0</InvertFilteredFacet>
                </FacetReference>
                <FacetReference>
                    <Name>maild_configuration_files</Name>
                    <TargetType>host</TargetType>
                    <EntityType>osfile</EntityType>
                    <IsFilteredFacet>0</IsFilteredFacet>
                    <InvertFilteredFacet>0</InvertFilteredFacet>
                </FacetReference>
                <FacetReference>
                    <Name>sshd_configuration_files</Name>
                    <TargetType>host</TargetType>
                    <EntityType>osfile</EntityType>
                    <IsFilteredFacet>0</IsFilteredFacet>
                    <InvertFilteredFacet>0</InvertFilteredFacet>
                </FacetReference>                
                <FacetReference>
                    <Name>crontab_configuration_files</Name>
                    <TargetType>host</TargetType>
                    <EntityType>osfile</EntityType>
                    <IsFilteredFacet>0</IsFilteredFacet>
                    <InvertFilteredFacet>0</InvertFilteredFacet>
                </FacetReference>
                <FacetReference>
                    <Name>kernel_configuration_files</Name>
                    <TargetType>host</TargetType>
                    <EntityType>osfile</EntityType>
                    <IsFilteredFacet>0</IsFilteredFacet>
                    <InvertFilteredFacet>0</InvertFilteredFacet>
                </FacetReference>
                <FacetReference>
                    <Name>production_hours</Name>
                    <TargetType>host</TargetType>
                    <EntityType>timewindow</EntityType>
                    <IsFilteredFacet>1</IsFilteredFacet>
                    <InvertFilteredFacet>0</InvertFilteredFacet>
                </FacetReference>
            </Facets>
            <ObservationTypes>
                <ObservationType>
                    <Name>osfile_create_suc</Name>
                </ObservationType>
                <ObservationType>
                    <Name>osfile_content_modified_suc</Name>
                </ObservationType>
                <ObservationType>
                    <Name>osfile_delete_suc</Name>
                </ObservationType>
                <ObservationType>
                    <Name>osfile_content_mod_archive_suc</Name>
                </ObservationType>
            </ObservationTypes>
            <Settings>
                <CMSetting auto_authorized="0">
                    <CMConnector></CMConnector>
                    <AnnotateAuthObservation></AnnotateAuthObservation>
                </CMSetting>
                <AdvancedSetting>
                    <GroupSetting>
                        <ObsGroupIdleTimeout>15</ObsGroupIdleTimeout>
                        <ObsGroupMaxAge>30</ObsGroupMaxAge>
                        <ObsGroupMaxObservations>1000</ObsGroupMaxObservations>
                    </GroupSetting>
                    <GenerateEventByManualAuth>0</GenerateEventByManualAuth>
                </AdvancedSetting>
            </Settings>
            <Options>
                <Option value="10" name="osfile_archivenumber"/>
                <Option value="50000" name="osfile_polling_maxfilealert"/>
                <Option value="100" name="osfile_archive_maxsrcfilealert"/>                      
            </Options>
        </RealTimeMonitoringLogicDefinition>
    </CheckSource>
    <Severity>MinorWarning</Severity>
    <LifeCycleStatus>Development</LifeCycleStatus>
    <KeywordList>
        <Keyword nlsid="CONFIGURATION">Configuration</keyword>
        <Keyword nlsid="SECURITY">Security</keyword>
    </KeywordList>
    <ViolationMessage nlsid="SAMPLE_RULE_VIOL_MSG">Violation due to change in critical OS configuration files during production hours.</ViolationMessage>
    <ClearViolationMessage nlsid="SAMPLE_RULE_VIOL_CLRMSG">Cleared violation due to change in critical OS configuration files during production hours.</ClearViolationMessage>
    <Author>SYSMAN</Author>
</Rule>

13.3 コンプライアンス標準の定義

コンプライアンス標準は、階層形式のコンプライアンス標準ルール(リポジトリ・ルールまたはリアルタイム監視ルール)にマップされます。

次の例では、コンプライアンス標準を定義する構文を示し、さらにその次の例でコンプライアンス標準の定義例を示します。

注意:

完全なコンプライアンスXSDについては、次のJARファイルを参照してください。

$ORACLE_HOME/sysman/jlib/gccomplianceCommon.jar

注意:

他の例については、「その他のコンプライアンス例」を参照してください。

例: コンプライアンス標準定義の構文

<xsd:complexType name="StandardT">
    <xsd:sequence>
      <xsd:element name="DisplayName" type="std:DisplayString128Def" minOccurs="0"/>
      <xsd:element name="TargetType" type="std:Name128Def" minOccurs="1" maxOccurs="1"/>
      <xsd:element ref="std:TargetPropertyFilter" minOccurs="0"/>
      <xsd:element name="Author" type="std:Name256Def" default="ORACLE" minOccurs="0"/>
      <xsd:element name="Version" type="xsd:nonNegativeInteger" default="1" minOccurs="0"/>
      <xsd:element name="LifeCycleStatus" default="Development" minOccurs="0">
        <xsd:simpleType>
          <xsd:restriction base="xsd:string">
            <xsd:enumeration value="Development"/>
            <xsd:enumeration value="Production"/>
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:element>
      <xsd:element name="IsHidden" type="std:BooleanDef" minOccurs="0" default="false"/>
      <xsd:element name="IsSystem" type="std:BooleanDef" minOccurs="0" default="false"/>
      <xsd:element name="IsAutoEnable" type="std:BooleanDef" minOccurs="0" default="false"/>
      <xsd:element name="Description" type="std:DisplayString800Def" minOccurs="0"/>
      <xsd:element name="KeywordList" type="std:KeywordListT" minOccurs="0"/>
      <xsd:element name="ReferenceURL" type="std:String4000Def" minOccurs="0"/>
      <xsd:element name="FrontMatter" type="std:DisplayString800Def" minOccurs="0"/>
      <xsd:element name="RearMatter" type="std:DisplayString800Def" minOccurs="0"/>
      <xsd:element name="Notice" type="std:DisplayString800Def" minOccurs="0"/>
      <xsd:element name="Body" type="std:BodyT" minOccurs="0"/>
      <xsd:element name="ExtraInfo" type="xsd:string" minOccurs="0" maxOccurs="1"/>
    </xsd:sequence>
    <xsd:attribute name="name" type="std:NameDef" use="required"/>
    <xsd:attribute name="oms_version" type="std:Name32Def" use="required"/>
  </xsd:complexType>

表13-5で、コンプライアンス標準の定義に使用するタグについて説明します。

表13-5 コンプライアンス標準の定義に使用する主要なタグ

タグ サブタグ 説明

DisplayName

コンプライアンス標準の表示名。メッセージの翻訳をサポートするためのnlsid属性を提供します。

注意: nlsid属性は、メタデータ・プラグインには適用されません。

TargetType

このコンプライアンス標準を関連付けることのできるターゲットのタイプ

Author

コンプライアンス標準の作成者

Version

コンプライアンス標準のバージョン

LifeCycleStatus

コンプライアンス標準のライフサイクル・ステータス(「開発」または「本番」)

IsSystem

コンプライアンス標準が即時利用可能として提供されている場合はTrue。それ以外の場合はFalseです。

Description

コンプライアンス標準の説明。メッセージの翻訳をサポートするためのnlsid属性を提供します。

IsAutoEnable

Trueに設定されている場合、コンプライアンス標準は定義されたターゲット・タイプのすべての既存のターゲットに関連付けられます。(TargetTypeを使用して定義)

KeywordList

コンプライアンス標準に適用できるキーワードのリスト

Keyword

コンプライアンス標準に適用できるキーワード

ReferenceURL

コンプライアンス標準の参照URL

FrontMatter

前付けメッセージ。メッセージの翻訳をサポートするためのnlsid属性を提供します。

RearMatter

後付けメッセージ。メッセージの翻訳をサポートするためのnlsid属性を提供します。

Notice

通知メッセージ。メッセージの翻訳をサポートするためのnlsid属性を提供します。

Body

コンプライアンス標準の本文。次にリストする要素の1つ以上を使用できます。

RuleFolder

ルール・フォルダを定義します。RuleFolderは次のものを持つことができます。

RuleFolder

RuleReference

Include Standard Reference

  • DisplayName: ルール・フォルダの表示名。メッセージの翻訳をサポートするためのnlsid属性を提供します。

  • Description: ルール・フォルダの説明。メッセージの翻訳をサポートするためのnlsid属性を提供します。

    注意: nlsid属性は、メタデータ・プラグインには適用されません。

  • ReferenceURL: ルール・フォルダの参照URL

  • Importance: ルール・フォルダの重要性(低/標準/高)

Include

含めるコンプライアンス標準に別のコンプライアンス標準参照を含めます。

RuleReference

コンプライアンス標準にルール参照を含めます。

例: コンプライアンス標準のサンプル1

<Standard xmlns="http://www.oracle.com/DataCenter/ConfigStd" oms_version="12.1.0.1.0" name="sample_cs1">
     <DisplayName nlsid="SAMPLE_CS_1_NAME">Sample Compliance Standard 1</DisplayName>
    <TargetType>oracle_database</TargetType>
            		<TargetPropertyFilter>
                    			<PropertyItem>
                            				<PropertyName>orcl_gtp_target_version</PropertyName>
                              				<ValueList>
                                    					<Value>8.1.6+</Value>
                              				</ValueList>
                    			</PropertyItem>
            </TargetPropertyFilter>
     <Author>SYSTEM</Author>
     <Version>1</Version>
     <LifeCycleStatus>Production</LifeCycleStatus>
     <IsSystem>true</IsSystem>
     <Description nlsid="SAMPLE_CS_1_DESC">Sample Description</Description>
     <KeywordList>
         <Keyword nlsid="CONFIGURATION">Configuration</Keyword>
     </KeywordList>
     <ReferenceURL>http://sampleurl.com</ReferenceURL>
     <Body>
             			<RuleFolder name="sample_RF_1">
                     				<DisplayName nlsid="SAMPLE_RF_1_NAME">Sample Rulefolder</DisplayName>
                     				<Description nlsid="SAMPLE_RF_1_DESC">This includes rules that checks for use of a single control file</Description>
                     				<ReferenceURL>http://www.oracle.com/db_rf1</ReferenceURL>
                     				<Importance>Normal</Importance>
                     				<RuleReference>
                     				<Name>sample_rule1</Name>
                     				<TargetType>oracle_database</TargetType>
                     				<Importance>Normal</Importance>
                     				</RuleReference>
             			</RuleFolder>
     </Body>
</Standard>

13.4 コンプライアンス・フレームワークの定義

注意:

コンプライアンス・フレームワークという用語はこのドキュメント全体で使用されていますが、XML APIではGroupまたはSubGroupという用語が使用されます。これは、Enterprise Manager UIでは公開されないXML構造に使用される内部的な名前です。

次の例では、コンプライアンス・フレームワークを定義する構文を示し、さらにその次の例でコンプライアンス・フレームワークの定義例を示します。

注意:

完全なコンプライアンスXSDについては、次のJARファイルを参照してください。

$ORACLE_HOME/sysman/jlib/gccomplianceCommon.jar

注意:

他の例については、「その他のコンプライアンス例」を参照してください。

例: コンプライアンス・フレームワーク定義の構文

<xsd:complexType name="StandardGroupT">
    <xsd:sequence>
      <xsd:element name="DisplayName" type="std:DisplayString128Def" minOccurs="0"/>
      <xsd:element name="Author" type="std:Name256Def" default="ORACLE" minOccurs="0"/>
      <xsd:element name="Version" type="xsd:nonNegativeInteger" default="1" minOccurs="0"/>
      <xsd:element name="LifeCycleStatus" default="Development"minOccurs="0">
        <xsd:simpleType>
          <xsd:restriction base="xsd:string">
            <xsd:enumeration value="Development"/>
            <xsd:enumeration value="Production"/>
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:element>
      <xsd:element name="Description" type="std:DisplayString800Def" minOccurs="0"/>
      <xsd:element name="KeywordList" type="std:KeywordListT" minOccurs="0"/>
      <xsd:element name="ReferenceURL" type="std:String4000Def" minOccurs="0"/>
      <xsd:element name="FrontMatter" type="std:DisplayString800Def" minOccurs="0"/>
      <xsd:element name="RearMatter" type="std:DisplayString800Def" minOccurs="0"/>
      <xsd:element name="Notice" type="std:DisplayString800Def" minOccurs="0"/>
      <xsd:element name="IsHidden" type="std:BooleanDef" minOccurs="0"default="false"/>
      <xsd:element name="IsSystem" type="std:BooleanDef" minOccurs="0"default="false"/>
      <xsd:element name="GroupBody" type="std:GroupBodyT" minOccurs="0"/>
      <xsd:element name="ExtraInfo" type="xsd:string" minOccurs="0"maxOccurs="1"/>
    </xsd:sequence>
    <xsd:attribute name="name" type="std:NameDef" use="required"/>
    <xsd:attribute name="oms_version" type="std:Name32Def" use="required"/>
  </xsd:complexType>

表13-6では、コンプライアンス・フレームワークの定義に使用するタグについて説明します。

表13-6 コンプライアンス・フレームワークの定義に使用する主要なタグ

タグ サブタグ 説明

DisplayName

 

コンプライアンス・フレームワークの表示名。メッセージの翻訳をサポートするためのnlsid属性を提供します。

Author

 

コンプライアンス・フレームワークの作成者

Version

 

コンプライアンス・フレームワークのバージョン

LifeCycleStatus

 

コンプライアンス・フレームワークのライフサイクル・ステータス(「開発」または「本番」)

IsSystem

 

コンプライアンス・フレームワークが即時利用可能として提供されている場合はTrue。それ以外の場合はFalseです。

Description

 

コンプライアンス・フレームワークの説明。メッセージの翻訳をサポートするためのnlsid属性を提供します。

注意: nlsid属性は、メタデータ・プラグインには適用されません。

KeywordList

 

コンプライアンス・フレームワークに適用できるキーワードのリスト

Keyword

コンプライアンス標準に適用できるキーワード

ReferenceURL

 

コンプライアンス・フレームワークの参照URL

FrontMatter

 

前付けメッセージ。メッセージの翻訳をサポートするためのnlsid属性を提供します。

RearMatter

 

後付けメッセージ。メッセージの翻訳をサポートするためのnlsid属性を提供します。

Notice

 

通知メッセージ。メッセージの翻訳をサポートするためのnlsid属性を提供します。

ExtraInfo

 

コンプライアンス・フレームワークに関する追加情報。

GroupBody

 

コンプライアンス・フレームワークの本体を定義します。次の要素の1つ以上を使用できます。

 

SubGroup

子フレームワーク要素を定義します。子フレームワーク要素には次のものを含めることができます。

子フレームワーク

標準参照を含みます

  • DisplayName: 子フレームワークの表示名

  • Description: 子フレームワークの説明。

  • ReferenceURL: 子フレームワークの参照URL

  • Importance: 子フレームワークの重要性(「低」、「標準」または「高」)

 

StandardReference

コンプライアンス・フレームワークにコンプライアンス標準参照を含めます。

例: コンプライアンス・フレームワークのサンプル

<StandardGroup xmlns="http://www.oracle.com/DataCenter/ConfigStd" name="sample_csg" oms_version="12.1.0.1.0">
        <DisplayName nlsid="SAMPLE_CSG_NAME">Sample Compliance Framework</DisplayName>
        <Author>SYSTEM</Author>
        <Version>1</Version>
        <LifeCycleStatus>Production</LifeCycleStatus>
        <Description nlsid="SAMPLE_CSG_DESC">Sample Description</Description>
        <KeywordList>
            <Keyword nlsid="SECURITY">Security</Keyword>
        </KeywordList>
        <ReferenceURL>http://sampleurl.com</ReferenceURL>
        <IsHidden>false</IsHidden>
        <IsSystem>true</IsSystem>
        <GroupBody>
            <SubGroup name="SampleSubgroup">
                <DisplayName nlsid="SAMPLE_CSG_SUBGROUP_NAME">Sample Child Framework</DisplayName>
                <Description nlsid="SAMPLE_CSG_SUBGROUP_DESC">Sample Child framework Description</Description>
                <ReferenceURL>http://sampleurl.com</ReferenceURL>
                <Importance>Normal</Importance>
                <StandardReference>
                    <Name>sample_cs3</Name>
                    <Author>SYSTEM</Author>
                    <Version>1</Version>
                    <Importance>Normal</Importance>
                </StandardReference>
            </SubGroup>
        </GroupBody>
 </StandardGroup>

13.5 コンプライアンス・コンテンツの定義

次の例では、コンプライアンス・コンテンツを定義する構文を示し、「XMLコンプライアンス・メタデータのサンプル」の例ではXMLコンプライアンス・メタデータの例を示します。

注意:

他の例については、「その他のコンプライアンス例」を参照してください。

例: コンプライアンス・コンテンツ定義の構文

<xsd:complexType name="ComplianceContentT">
  <xsd:sequence>

    <!-- Cummulative change since the first release.-->
    <xsd:element ref="std:ChangeList" minOccurs="0" maxOccurs="1"/>
    <!-- End Cummulative change since the first release -->

    <!-- Current state of entities -->
    <xsd:element ref="std:Facet" minOccurs="0" maxOccurs="unbounded"/>
    <xsd:element ref="std:Rule" minOccurs="0" maxOccurs="unbounded"/>
    <xsd:element ref="std:Standard" minOccurs="0" maxOccurs="unbounded"/>
    <xsd:element ref="std:StandardGroup" minOccurs="0" maxOccurs="unbounded"/>
    <!-- Current state of entities -->
  </xsd:sequence>
  <xsd:attribute name="oms_version" type="std:Name32Def" use="required"/>
  <xsd:attribute name="name" type="std:Name64Def" use="required"/>
  <!-- content_version of compliance content should be equal to version of last change tag if any. -->
  <xsd:attribute name="content_version" type="std:Name64Def" use="optional" default = "12.1.0.0.0"/>
  <xsd:attribute name="IsCompareEnabled" type="std:BooleanDef" use="optional" default = "true"/>  
</xsd:complexType>

<xsd:element name="ComplianceContent" type="std:ComplianceContentT"/>

表13-7で、コンプライアンス・コンテンツの定義に使用する属性の一部について説明します。

表13-7 コンプライアンス・コンテンツ属性

属性 説明

oms_version

Oracle Management Service (OMS)のバージョン

name

コンプライアンス・コンテンツの名前

content_version

コンプライアンス・コンテンツのバージョン

IsCompareEnabled

ルールまたはコンプライアンス標準が増分的に更新されるか、ルールまたはコンプライアンス標準全体が再生成されるかを指定します。

使用可能な値:

  • True: 各ルールおよび標準タグについて、ソフトウェアは増分変更を自動的に探し、エンティティを増分的に更新します。たとえば、コンプライアンス標準で1つのルールのみが更新された場合は、そのルールがコンプライアンス標準で更新されてから、更新されたルールが、ルールの更新時にコンプライアンス標準に関連付けられているすべてのターゲットに対して再評価されます(ルールがリポジトリ・ルールの場合)。

  • False: ユーザーは、<ChangeList><Change..>....</ChangeList></Change>タグ内に<UpdateRule>を指定する必要があります。これにより、ルール(つまり、すべての属性と定義)が上書きされます。

    同様に、コンプライアンス標準が更新された場合は、それによって標準が完全にオーバーライドされ、結果が再生成されます(リポジトリ・チェックベースの標準の場合)。

注意: isCompareEnabled = falseを設定した場合は、コンプライアンス・コンテンツが作成された後で各バージョンで累積的に行われたすべての変更を提供する必要があります。これは、メタデータの一貫性を保つために非常に重要です。

isCompareEnabled属性がtrueに設定されている場合でも、各バージョンの変更を常に要約することをお薦めします。後でisCompareEnabled= true (デフォルト)からisCompareEnabled=falseに切り替える必要がある場合に、コンプライアンス・コンテンツの異なるバージョン間ですべての履歴変更が使用可能になるためです。

例: XMLコンプライアンス・メタデータのサンプル

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE ComplianceContent [
<!ENTITY rule SYSTEM "SampleRuleThresholdCondition.xml">
<!ENTITY standard SYSTEM "SampleComplianceStandard.xml">
<!ENTITY standardgroup SYSTEM "SampleComplianceStandardGroup.xml">
]>
<ComplianceContent xmlns="http://www.oracle.com/DataCenter/ConfigStd" name="Sample Compliance Framework" oms_version="11.2.0.1.0">
<ChangeList>
        		<Change version="12.2.0.0.0">
                		<UpdateRule>
                        			<RuleName>sample_rule</RuleName>
                        			<TargetType>oracle_database</TargetType>
                		</UpdateRule>
                		<UpdateStandardGroup>
                			        <StandardGroupName>sample_csg</StandardGroupName>
                        			<StandardGroupAuthor>SYSTEM</StandardGroupAuthor>
                        			<StandardGroupVersion>1</StandardGroupVersion>
                		</UpdateStandardGroup>
        	</Change>
</ChangeList>
&rule;
&standard;
&standardgroup;
</ComplianceContent>

13.6 コンプライアンス・コンテンツの削除

コンプライアンス・コンテンツを削除するには、次のコマンドを入力します。

emctl deregister oms metadata -sysman_pwd sysman -core -service gccompliance -file DeleteComplianceContent.xml

前のコマンドで、DeleteComplianceContent.xmlはコンプライアンス・コンテンツの削除XMLファイルの名前を表します。

次の例ではコンプライアンス・コンテンツの削除を定義する構文と、コンプライアンス・コンテンツの削除XMLファイルの例を示します。

例: コンプライアンス・コンテンツの削除の構文

<!-- delete compliance metadata corresponding to the compliance content name provided. -->
  <xsd:complexType name="DeleteComplianceContentT">
    <xsd:attribute name="name" type="std:Name64Def" use="required"/>
  </xsd:complexType>
<xsd:element name="DeleteComplianceContent" type="std:DeleteComplianceContentT"/>

例: DeleteComplianceContent XML

  <DeleteComplianceContent xmlns="http://www.oracle.com/DataCenter/ConfigStd" name="Sample Compliance Framework" />
 

13.7 翻訳のサポート

注意:

翻訳は、Oracle Fusion Middlewareプラグインに対してのみサポートされます。

XMLサンプルの各nlsid属性について、データ・ロード形式(DLF)マップ・エントリを指定する必要があります。DLFファイルには、定義された各nlsid属性の英語の文字列が含まれます。これらの文字列は翻訳に使用できます。

例: DLFファイルのサンプル

<?xml version="1.0" encoding="UTF-8"?>
<table xml:lang="en" name="MGMT_MESSAGES">
 
<!-- lookup-key indicates which columns are used by
     TransX to recognize a row as a duplicate -->
<lookup-key>
  <column name="MESSAGE_ID"/>
  <column name="SUBSYSTEM"/>
  <column name="LANGUAGE_CODE"/>
  <column name="COUNTRY_CODE"/>
</lookup-key>
 
<!-- columns field indicates which columns will be loaded as
     part of processing the dataset and which should be
     translated by the Translation Group -->
<columns>
  <column name="MESSAGE_ID" type="string" maxsize="64"/>
  <column name="SUBSYSTEM" type="string" maxsize="64"/>
  <column name="LANGUAGE_CODE" type="string" language="%l"/>
  <column name="COUNTRY_CODE" type="string" language="%Cs"/>
  <column name="MESSAGE" type="string" maxsize="1000" translate="yes"/>
</columns>
 
<!-- dataset specifies the data to be loaded into the repository -->
<dataset>
 
  <row>
    <col name="MESSAGE_ID">SAMPLE_RULE_NAME</col>
    <col name="SUBSYSTEM">POLICY</col>
    <col name="MESSAGE">Sample Rule</col>
  </row>
 
  <row>
    <col name="MESSAGE_ID">SAMPLE_RULE_DESC</col>
    <col name="SUBSYSTEM">POLICY</col>
    <col name="MESSAGE">Checks for use of a single control file</col>
  </row>
 
 <row>
    <col name="MESSAGE_ID">SAMPLE_RULE_IMPACT</col>
    <col name="SUBSYSTEM">POLICY</col>
    <col name="MESSAGE">The control file is one of the most important files in an
Oracle database. It maintains many physical characteristics and important
recovery information about the database. If you lose the only copy of the control
file due to a media error, there will be unnecessary down time and other risks.</col>
 </row>
 
<row>
    <col name="MESSAGE_ID">SAMPLE_RULE_RECO</col>
    <col name="SUBSYSTEM">POLICY</col>
    <col name="MESSAGE">Use at least two control files that are multiplexed on different disks.</col>
 </row>
 
<row>
    <col name="MESSAGE_ID">SAMPLE_RULE_COL_1</col>
    <col name="SUBSYSTEM">POLICY</col>
    <col name="MESSAGE">FILE_LIST</col>
 </row>
 
 <row>
    <col name="MESSAGE_ID">SAMPLE_RULE_COL_2</col>
    <col name="SUBSYSTEM">POLICY</col>
    <col name="MESSAGE">CONTROL_FILE_COUNT</col>
 </row>
 
<row>
    <col name="MESSAGE_ID">SAMPLE_RULE_VIOL_MSG</col>
    <col name="SUBSYSTEM">POLICY</col>
    <col name="MESSAGE">The database has an insufficient number of control files.</col>
 </row>

<row>
    <col name="MESSAGE_ID">SAMPLE_RULE_VIOL_CLEAR_MSG</col>
    <col name="SUBSYSTEM">POLICY</col>
    <col name="MESSAGE">The database has sufficient number of control files.</col>
</row>
 
<!-- Standard NLSID Mappings -->
 
<row>
    <col name="MESSAGE_ID">SAMPLE_CS_NAME</col>
    <col name="SUBSYSTEM">POLICY</col>
    <col name="MESSAGE">Sample Compliance Standard</col>
 </row>
 
 <row>
    <col name="MESSAGE_ID">SAMPLE_CS_DESC</col>
    <col name="SUBSYSTEM">POLICY</col>
    <col name="MESSAGE">Sample Description</col>
 </row>

<row>
    <col name="MESSAGE_ID">SAMPLE_RF_NAME</col>
    <col name="SUBSYSTEM">POLICY</col>
    <col name="MESSAGE">Sample Rulefolder</col>
</row>

 <row>
    <col name="MESSAGE_ID">SAMPLE_RF_DESC</col>
    <col name="SUBSYSTEM">POLICY</col>
    <col name="MESSAGE">This includes rules that checks for use of a single control file.</col>
 </row>
 
<!-- Standard Group NLSID Mappings -->
 
 <row>
    <col name="MESSAGE_ID">SAMPLE_CSG_NAME</col>
    <col name="SUBSYSTEM">POLICY</col>
    <col name="MESSAGE">Sample Compliance Framework</col>
 </row>
 
 <row>
    <col name="MESSAGE_ID">SAMPLE_CSG_DESC</col>
    <col name="SUBSYSTEM">POLICY</col>
    <col name="MESSAGE">Sample Description</col>
 </row>
 
 <row>
    <col name="MESSAGE_ID">SAMPLE_CSG_SUBGROUP_NAME</col>
    <col name="SUBSYSTEM">POLICY</col>
    <col name="MESSAGE">Sample Child Framework</col>
 </row>
 
  <row>
    <col name="MESSAGE_ID">SAMPLE_CSG_SUBGROUP_DESC</col>
    <col name="SUBSYSTEM">POLICY</col>
    <col name="MESSAGE">Sample Child Framework Description</col>
 </row>
 
</dataset>
</table>

注意:

DLFエントリがリアルタイム監視ファセットまたはパターンに対するものである場合、サブシステムはGCCOMPLIANCE_CCCです。他のすべてのルールでは、サブシステムはPOLICYです。

13.8 コンプライアンスXMLのパッケージ

ここでは、XMLおよびDLFファイルの場所を示します。

  • XMLファイル

    すべてのXMLファイルを次のディレクトリに格納します。

    plugin_stage/oms/metadata/gccompliance/
    

    前のディレクトリ・パスで、plugin_stageはプラグイン・ステージング・ディレクトリです。

    プラグイン・ステージング・ディレクトリの詳細は、「プラグインのステージング」を参照してください。

  • DLFファイル

    すべてのDLFファイルを次のディレクトリに格納します。

    plugin_stage/oms/rsc/area/gccompliance
    

    前のディレクトリ・パスで、plugin_stageプラグイン・ステージング・ディレクトリであり、areaは、データベースを表すdbや構成管理を表すecmなど、サブコンポーネントを表します。

13.9 コンプライアンス標準およびルールの設定とテスト

コンプライアンス標準またはルールをテストするには、次のことを行います。

13.9.1 コンプライアンス・コンテンツのインストール

コンプライアンス・コンテンツのインストールの手順:

  1. 次のコマンドを使用して、コンプライアンス・コンテンツをインストールします。
    emctl register oms metadata -sysman_pwd password -core -service gccompliance -file ComplianceContent.xml
    
  2. バックエンド処理に対して次のジョブを送信します。
    begin em_compliance_util.trigger_rule_dependency_job;end;
    

13.9.2 コンプライアンス標準のテスト

コンプライアンス標準のテストの手順:

  1. Cloud Controlコンソールにログインします。
  2. 「エンタープライズ」メニューから「コンプライアンス」を選択し、「ライブラリ」を選択します。

    「コンプライアンス・ライブラリ」ページが表示されます。

  3. 「コンプライアンス標準」をクリックします。
  4. 必要なコンプライアンス標準を選択し、「ターゲットの関連付け」をクリックします。

    「コンプライアンス標準へのターゲット・アソシエーション: Compliance Standard Name」ページが表示されます(Compliance Standard Nameは選択したコンプライアンス標準の名前です)。

  5. 「追加」をクリックします。

    「検索と選択: ターゲット」ウィンドウが表示されます。

  6. 評価するターゲットを選択し、「選択」をクリックします。
  7. 「コンプライアンス標準へのターゲット・アソシエーション: Compliance Standard Name」ページで、「OK」をクリックします。
  8. 「アソシエーションの保存」メッセージに対して「はい」をクリックします。

    「コンプライアンス標準」ページが表示されます。

    前の手順で、バックグラウンド・ジョブとして行われる評価がトリガーされます。

  9. 数分後に、「エンタープライズ」メニューから「コンプライアンス」を選択し、「結果」を選択します。

    「コンプライアンス基準評価結果」ページが表示されます。

  10. コンプライアンス標準を選択し、「詳細を表示」をクリックします。

    「コンプライアンス標準結果詳細」ページが表示されます。

  11. ページの左側から、「コンプライアンス標準名」を展開してノードを表示し、ノードをクリックしてそのノードの結果を表示します。

    図13-1 コンプライアンス標準結果詳細



13.9.3 テストの制約

コンプライアンス標準またはルールをテストする際には、次の制約に注意してください。

  • MGMT_VIEWユーザーには、問合せで使用したビューに対するSELECT権限が必要です。

  • target_guidは、問合せのSELECT属性の1つである必要があります。

  • 別名またはselect句は64文字未満である必要があります。

  • コンプライアンス標準からの標準参照を最初にインポートします。コンプライアンス・コンテンツ・リストでは標準参照を最初に配置します。

  • SQLソースのSELECT句の少なくとも1つの列が、違反コンテキスト定義およびメトリック定義で非キー列としてマークされている必要があります。

  • target_guid列は、違反コンテキスト列またはメトリック定義に対して指定しないでください

  • 問合せが包含プラグインの外部のビューを参照する場合、ビューはEDKによってプラグインに(プラグインEDKレベルで)公開する必要があります。

  • リポジトリ・ルールのSQLソース問合せがPLSQL関数を参照する場合、グローバルPLSQL関数のみ参照し、パッケージ関数を参照しないこと(つまり、これらのPLSQL関数が、更新するとルール評価がトリガーされる表に依存するかどうか)を確認します。これは、ルール評価の結果が依存する表のリストを正しく生成するために必要です。mgmt_viewユーザーに、この関数に対する実行権限を付与する必要があります。

  • コンプライアンス標準に含まれるルールのターゲット・タイプは、直接の親標準のターゲット・タイプと同じである必要があります。

  • STRING型のキー列には、64文字未満が含まれている必要があります。

13.10 その他のコンプライアンス例

ここでは、コンプライアンス・コンテンツ、ルール、コンプライアンス標準およびコンプライアンス・フレームワークのその他の例を示します。

注意:

この章の例は、Enterprise Manager 12cおよびEnterprise Manager 13cの両方に適用されます。

次の例では、コンプライアンス・コンテンツ・バージョン1の例を示し、さらにその次の例でコンプライアンス・コンテンツ・バージョン2の例を示します。バージョン1はコンプライアンス・コンテンツの初期バージョンです。コンテンツ・バージョン番号は12.1.0.1.0ですが、「コンプライアンス・コンテンツ・バージョン2」の例のコンテンツ・バージョンは12.1.0.2.0であることに注意してください。

コンプライアンス・コンテンツにはChangeList要素が含まれます。ChangeList要素は、更新されたルール、標準など、コンプライアンス・コンテンツの最初のバージョン以降に発生した変更を記述します。

例: コンプライアンス・コンテンツ・バージョン1

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE ComplianceContent [
<!ENTITY rule1 SYSTEM "SampleRule1.xml">
<!ENTITY rule2 SYSTEM "SampleRule2.xml">
<!ENTITY rule3 SYSTEM "SampleRule3.xml">
<!ENTITY rule4 SYSTEM "SampleRule4.xml">
<!ENTITY rule5 SYSTEM "SampleRule5.xml">
<!ENTITY rule6 SYSTEM "SampleRule6.xml">
<!ENTITY standard1 SYSTEM "SampleComplianceStandard1.xml">
<!ENTITY standard2 SYSTEM "SampleComplianceStandard2.xml">
<!ENTITY standard3 SYSTEM "SampleComplianceStandard3.xml">
<!ENTITY standardgroup SYSTEM "SampleComplianceFramework.xml">]
]>
<ComplianceContent xmlns="http://www.oracle.com/DataCenter/ConfigStd" name="SampleComplianceContent" oms_version="12.1.0.1.0" content_version="12.1.0.1.0">
<ChangeList>
    <!-- ChangeList tag process each of the Change Tag with respect to the version of the ComplianceContent installed in repository. -->
	         <Change version="12.1.0.1.0">
         <!-- AddSubGroupWithinStandardGroup will introduce a subgroup within an existing  compliance framework/standard group in repository. -->
         <!-- AddStandardReferenceToStandardGroup will introduce a reference to a standard within an existing  compliance framework/standard group in repository. -->
        		<AddSubGroupWithinStandardGroup order="2">
            			<StandardGroupName>oracle_pci</StandardGroupName>
            			<StandardGroupAuthor>ORACLE</StandardGroupAuthor>
            			<StandardGroupVersion>1</StandardGroupVersion>
            			<SubGroup name="sampleSubgroup1">
                    					<DisplayName>sub1</DisplayName>
                    					<ReferenceURL>http://sampleAddedSubgroup.com</ReferenceURL>
                    					<Importance>High</Importance>
            			</SubGroup>
        </AddSubGroupWithinStandardGroup>
            		<AddStandardReferenceToStandardGroup>
            			<StandardGroupName>oracle_pci</StandardGroupName>
            			<StandardGroupAuthor>ORACLE</StandardGroupAuthor>
            			<StandardGroupVersion>1</StandardGroupVersion>
            			<SubGroupListInfo>
                    					<SubGroupElem>oracle_pci_ctrlobj_a</SubGroupElem>
            			</SubGroupListInfo>
            			<StandardReference>
                    					<Name>sample_cs1</Name>
                    					<Author>SYSTEM</Author>
                    					<Version>1</Version>
            			</StandardReference>
    </AddStandardReferenceToStandardGroup>
    	</Change>
</ChangeList>
<!--List of compliance standard rules -->
&rule1;
&rule2;
&rule3;
&rule4;
&rule5;
&rule6;
<!--List of compliance standards -->
&standard1;
&standard2;
&standard3;
<!--List of compliance standard groups/frameworks-->
&standardgroup;
</ComplianceContent>

次に、単一のコントロール・ファイルの使用をチェックするコンプライアンス・ルールの例を示します

例: サンプル・ルール1

<Rule xmlns="http://www.oracle.com/DataCenter/ConfigStd" oms_version="12.1.0.1.0" name="sample_rule1">
    <DisplayName nlsid="SAMPLE_RULE_1_NAME">Sample Rule 1</DisplayName>
    <TargetType>oracle_database</TargetType>
    <IsSystem>true</IsSystem>
	<TargetPropertyFilter>
        <PropertyItem>
            <PropertyName>orcl_gtp_operating_system</PropertyName>
            <ValueList>
                <Value>Windows</Value>
            </ValueList>
        </PropertyItem>
        <PropertyItem>
            <PropertyName>orcl_gtp_target_version</PropertyName>
            <ValueList>
                <Value>8.1.6+</Value>
            </ValueList>
        </PropertyItem>
    </TargetPropertyFilter>
    <Description nlsid="SAMPLE_RULE_1_DESC">Checks for use of a single control file</Description>
    <Impact nlsid="SAMPLE_RULE_1_IMPACT">The control file is one of the most
important files in an Oracle database. It maintains many physical characteristics
and important recovery information about the database. If you lose the only copy
of the control file due to a media error, there will be unnecessary down time and
other risks.</Impact>
    <Recommendation nlsid="SAMPLE_RULE_1_RECO">Use at least two control files that are multiplexed on different disks.</Recommendation>
    <ViolationContextList>
        <Column type="String" name="FILE_LIST">
            <DisplayLabel nlsid="SAMPLE_RULE_1_COL_1">FILE_LIST</DisplayLabel>
            <IsHidden>false</IsHidden>
            <IsKey>false</IsKey>
        </Column>
        <Column type="Number" name="CONTROL_FILE_COUNT">
            <DisplayLabel nlsid="SAMPLE_RULE_1_COL_2">CONTROL_FILE_COUNT</DisplayLabel>
            <IsHidden>false</IsHidden>
            <IsKey>false</IsKey>
        </Column>
    </ViolationContextList>
    <CheckSource>
        <RepositoryCheckDefinition>
            <Metric>
    <TargetType>oracle_database</TargetType>
    <MetricName>sample_rule1</MetricName>
    <SourceType>SQL</SourceType>
        <Source>select CONTROL_FILE_COUNT, FILE_LIST, TARGET_GUID from MGMT$CS_DB_CONTROL_FILE_COUNT</Source>
    <MetricColumnList>
        <MetricColumnInfo>
                <ColumnName>FILE_LIST</ColumnName>
                <ColumnType>String</ColumnType>
                <isKey>false</isKey>
                <ColumnLabel nlsid="SAMPLE_RULE_1_COL_1">FILE_LIST</ColumnLabel>
                      </MetricColumnInfo>
        <MetricColumnInfo>
                <ColumnName>CONTROL_FILE_COUNT</ColumnName>
                <ColumnType>Number</ColumnType>
                <isKey>false</isKey>
                <ColumnLabel nlsid="SAMPLE_RULE_1_COL_2">CONTROL_FILE_COUNT</ColumnLabel>
        </MetricColumnInfo>
    </MetricColumnList>
               </Metric>
            <ParameterList>
                <RuleParameter>
                    <ParamName>CONTROL_FILE_COUNT</ParamName>
                    <ParamType>Number</ParamType>
                </RuleParameter>
            </ParameterList>
            <ParameterDefaultSettings>
                <ParamValue>
                    <ParamName>CONTROL_FILE_COUNT</ParamName>
                    <MinorWarnThreshold>1</MinorWarnThreshold>
                </ParamValue>
            </ParameterDefaultSettings>
            <TestCondition>
                <ThresholdCriteria>
                    <ColumnName>CONTROL_FILE_COUNT</ColumnName>
                    <TestOperator>EQ</TestOperator>
                    <ThresholdValue>1</ThresholdValue>
                    <ThresholdType>Number</ThresholdType>
                </ThresholdCriteria>
            </TestCondition>
        </RepositoryCheckDefinition>
    </CheckSource>
   <Severity>MinorWarning</Severity>
    <LifeCycleStatus>Production</LifeCycleStatus>
    <KeywordList>
        <Keyword nlsid="CONFIGURATION">Configuration</Keyword>
    </KeywordList>
    <ViolationMessage nlsid="SAMPLE_RULE_1_VIOL_MSG">The database has an insufficient number of control files.</ViolationMessage>
    <ClearViolationMessage nlsid="SAMPLE_RULE_1_VIOL_CLEAR_MSG">The database has sufficient number of control files.</ClearViolationMessage>
    <Author>SYSMAN</Author>
</Rule>

次に、単一のコントロール・ファイルの使用をチェックするサンプル・コンプライアンス・ルールの例を示します。

例: サンプル・ルール2

<Rule xmlns="http://www.oracle.com/DataCenter/ConfigStd" oms_version="12.1.0.1.0" name="sample_rule2">
    <DisplayName nlsid="SAMPLE_RULE_2_NAME">Sample Rule 2</DisplayName>
    <TargetType>oracle_database</TargetType>
    <IsSystem>true</IsSystem>
	<TargetPropertyFilter>
        <PropertyItem>
            <PropertyName>orcl_gtp_operating_system</PropertyName>
            <ValueList>
                <Value>Windows</Value>
            </ValueList>
        </PropertyItem>
        <PropertyItem>
            <PropertyName>orcl_gtp_target_version</PropertyName>
            <ValueList>
                <Value>8.1.6+</Value>
            </ValueList>
        </PropertyItem>
    </TargetPropertyFilter>
    <Description nlsid="SAMPLE_RULE_2_DESC">Checks for use of a single control file</Description>
    <Impact nlsid="SAMPLE_RULE_2_IMPACT">The control file is one of the most important files in an Oracle database.
It maintains many physical characteristics and important recovery information
about the database. If you lose the only copy of the control file due to a media
error, there will be unnecessary down time and other risks.</Impact>
    <Recommendation nlsid="SAMPLE_RULE_2_RECO">Use at least two control files that are multiplexed on different disks.</Recommendation>
    <ViolationContextList>
        <Column type="String" name="FILE_LIST">
            <DisplayLabel nlsid="SAMPLE_RULE_2_COL_1">FILE_LIST</DisplayLabel>
            <IsHidden>false</IsHidden>
            <IsKey>false</IsKey>
        </Column>
        <Column type="Number" name="CONTROL_FILE_COUNT">
            <DisplayLabel nlsid="SAMPLE_RULE_2_COL_2">CONTROL_FILE_COUNT</DisplayLabel>
            <IsHidden>false</IsHidden>
            <IsKey>false</IsKey>
        </Column>
    </ViolationContextList>
    <CheckSource>
        <RepositoryCheckDefinition>
            <Metric>
    <TargetType>oracle_database</TargetType>
    <MetricName>sample_rule2</MetricName>
    <SourceType>SQL</SourceType>
        <Source>select CONTROL_FILE_COUNT, FILE_LIST, TARGET_GUID from MGMT$CS_DB_CONTROL_FILE_COUNT</Source>
    <MetricColumnList>
        <MetricColumnInfo>
                <ColumnName>FILE_LIST</ColumnName>
                <ColumnType>String</ColumnType>
                <isKey>false</isKey>
                <ColumnLabel nlsid="SAMPLE_RULE_2_COL_1">FILE_LIST</ColumnLabel>
                      </MetricColumnInfo>
        <MetricColumnInfo>
                <ColumnName>CONTROL_FILE_COUNT</ColumnName>
                <ColumnType>Number</ColumnType>
                <isKey>false</isKey>
                <ColumnLabel nlsid="SAMPLE_RULE_2_COL_2">CONTROL_FILE_COUNT</ColumnLabel>
        </MetricColumnInfo>
    </MetricColumnList>
               </Metric>
            <ParameterList>
                <RuleParameter>
                    <ParamName>CONTROL_FILE_COUNT</ParamName>
                    <ParamType>Number</ParamType>
                </RuleParameter>
            </ParameterList>
            <ParameterDefaultSettings>
                <ParamValue>
                    <ParamName>CONTROL_FILE_COUNT</ParamName>
                    <MinorWarnThreshold>1</MinorWarnThreshold>
                </ParamValue>
            </ParameterDefaultSettings>
            <TestCondition>
                <ThresholdCriteria>
                    <ColumnName>CONTROL_FILE_COUNT</ColumnName>
                    <TestOperator>EQ</TestOperator>
                    <ThresholdValue>1</ThresholdValue>
                    <ThresholdType>Number</ThresholdType>
                </ThresholdCriteria>
            </TestCondition>
        </RepositoryCheckDefinition>
    </CheckSource>
   <Severity>MinorWarning</Severity>
    <LifeCycleStatus>Production</LifeCycleStatus>
    <KeywordList>
        <Keyword nlsid="CONFIGURATION">Configuration</Keyword>
    </KeywordList>
    <ViolationMessage nlsid="SAMPLE_RULE_2_VIOL_MSG">The database has an insufficient number of control files.</ViolationMessage>
    <ClearViolationMessage nlsid="SAMPLE_RULE_2_VIOL_CLEAR_MSG">The database has sufficient number of control files.</ClearViolationMessage>
    <Author>SYSMAN</Author>
</Rule>

次に、単一のコントロール・ファイルの使用をチェックするコンプライアンス・ルールの例を示します。

例: サンプル・ルール3

<Rule xmlns="http://www.oracle.com/DataCenter/ConfigStd" oms_version="12.1.0.1.0" name="sample_rule3">
    <DisplayName nlsid="SAMPLE_RULE_3_NAME">Sample Rule 3</DisplayName>
    <TargetType>oracle_database</TargetType>
    <IsSystem>true</IsSystem>
	<TargetPropertyFilter>
        <PropertyItem>
            <PropertyName>orcl_gtp_operating_system</PropertyName>
            <ValueList>
                <Value>Windows</Value>
            </ValueList>
        </PropertyItem>
        <PropertyItem>
            <PropertyName>orcl_gtp_target_version</PropertyName>
            <ValueList>
                <Value>8.1.6+</Value>
            </ValueList>
        </PropertyItem>
    </TargetPropertyFilter>
    <Description nlsid="SAMPLE_RULE_3_DESC">Checks for use of a single control file</Description>
    <Impact nlsid="SAMPLE_RULE_3_IMPACT">The control file is one of the most important files in an Oracle database. 
It maintains many physical characteristics and important recovery information
about the database. If you lose the only copy of the control file due to a media
error, there will be unnecessary down time and other risks.</Impact>
    <Recommendation nlsid="SAMPLE_RULE_3_RECO">Use at least two control files that are multiplexed on different disks.</Recommendation>
    <ViolationContextList>
        <Column type="String" name="FILE_LIST">
            <DisplayLabel nlsid="SAMPLE_RULE_3_COL_1">FILE_LIST</DisplayLabel>
            <IsHidden>false</IsHidden>
            <IsKey>false</IsKey>
        </Column>
        <Column type="Number" name="CONTROL_FILE_COUNT">
            <DisplayLabel nlsid="SAMPLE_RULE_3_COL_2">CONTROL_FILE_COUNT</DisplayLabel>
            <IsHidden>false</IsHidden>
            <IsKey>false</IsKey>
        </Column>
    </ViolationContextList>
    <CheckSource>
        <RepositoryCheckDefinition>
            <Metric>
    <TargetType>oracle_database</TargetType>
    <MetricName>sample_rule3</MetricName>
    <SourceType>SQL</SourceType>
        <Source>select CONTROL_FILE_COUNT, FILE_LIST, TARGET_GUID from MGMT$CS_DB_CONTROL_FILE_COUNT</Source>
    <MetricColumnList>
        <MetricColumnInfo>
                <ColumnName>FILE_LIST</ColumnName>
                <ColumnType>String</ColumnType>
                <isKey>false</isKey>
                <ColumnLabel nlsid="SAMPLE_RULE_3_COL_1">FILE_LIST</ColumnLabel>
        </MetricColumnInfo>
        <MetricColumnInfo>
                <ColumnName>CONTROL_FILE_COUNT</ColumnName>
                <ColumnType>Number</ColumnType>
                <isKey>false</isKey>
                <ColumnLabel nlsid="SAMPLE_RULE_3_COL_2">CONTROL_FILE_COUNT</ColumnLabel>
        </MetricColumnInfo>
    </MetricColumnList>
               </Metric>
            <ParameterList>
                <RuleParameter>
                    <ParamName>CONTROL_FILE_COUNT</ParamName>
                    <ParamType>Number</ParamType>
                </RuleParameter>
            </ParameterList>
            <ParameterDefaultSettings>
                <ParamValue>
                    <ParamName>CONTROL_FILE_COUNT</ParamName>
                    <MinorWarnThreshold>1</MinorWarnThreshold>
                </ParamValue>
            </ParameterDefaultSettings>
            <TestCondition>
                <ThresholdCriteria>
                    <ColumnName>CONTROL_FILE_COUNT</ColumnName>
                    <TestOperator>EQ</TestOperator>
                    <ThresholdValue>1</ThresholdValue>
                    <ThresholdType>Number</ThresholdType>
                </ThresholdCriteria>
            </TestCondition>
        </RepositoryCheckDefinition>
    </CheckSource>
   <Severity>MinorWarning</Severity>
    <LifeCycleStatus>Production</LifeCycleStatus>
    <KeywordList>
        <Keyword nlsid="CONFIGURATION">Configuration</Keyword>
    </KeywordList>
    <ViolationMessage nlsid="SAMPLE_RULE_3_VIOL_MSG">The database has an insufficient number of control files.</ViolationMessage>
    <ClearViolationMessage nlsid="SAMPLE_RULE_3_VIOL_CLEAR_MSG">The database has sufficient number of control files.</ClearViolationMessage>
    <Author>SYSMAN</Author>
</Rule>

次に、意図しないポートが開いたままになっていないことをチェックするコンプライアンス・ルールの例を示します。

例: サンプル・ルール4

<Rule xmlns="http://www.oracle.com/DataCenter/ConfigStd" oms_version="12.1.0.1.0" name="sample_rule4">
    <DisplayName nlsid="SAMPLE_RULE_4_NAME">Sample Rule 4</DisplayName>
    <TargetType>host</TargetType>
    <IsSystem>true</IsSystem>
    <Description nlsid="SAMPLE_RULE_4_DESC">Ensure that no unintended ports are left open</Description>
    <Impact nlsid="SAMPLE_RULE_4_IMPACT">Open ports may allow a malicious user to take over the host.</Impact>
    <Recommendation nlsid="SAMPLE_RULE_4_RECOMM">Do not open insecure ports.</Recommendation>
    <ViolationContextList>
            <Column type="Number" name="port">
                    <DisplayLabel nlsid="SAMPLE_RULE_4_PORT_COL">Port Number</DisplayLabel>
                    <IsHidden>false</IsHidden>
                    <IsKey>true</IsKey>
            </Column>
    </ViolationContextList>
    <CheckSource>
        <RepositoryCheckDefinition>
            <Metric>
                    <TargetType>host</TargetType>
                <MetricName>sample_rule4</MetricName>										
                    <SourceType>SQL</SourceType>
                    <Source>SELECT target_guid, port as port, port as dummy FROM MGMT$ESM_PORTS_LATEST</Source>
                    <MetricColumnList>
                        <MetricColumnInfo>
                            <ColumnName>port</ColumnName>	
                            <ColumnType>Number</ColumnType>
                            <isKey>true</isKey>
                            <ColumnLabel nlsid="SAMPLE_RULE_4_LABEL">Port Number</ColumnLabel>
                        </MetricColumnInfo>
                    </MetricColumnList>
                </Metric>
                <ParameterList>
                    <RuleParameter>
                        <ParamName nlsid="SAMPLE_RULE_4_DFLT_PORT_PNAME">DFLT_PORT</ParamName>	
                        <ParamType>Number</ParamType>	
                    </RuleParameter>
                </ParameterList>
                <ParameterDefaultSettings>
                    <ParamValue>
                        <ParamName>DFLT_PORT</ParamName>
                        <MinorWarnThreshold>655</MinorWarnThreshold>
                    </ParamValue>
                </ParameterDefaultSettings>
                <TestCondition>
                    <SqlWhereClauseCriteria>									
                        <WhereClause>:port &lt; :DFLT_PORT</WhereClause>
                    </SqlWhereClauseCriteria>
                </TestCondition>
        </RepositoryCheckDefinition>
    </CheckSource>
    <Severity>Critical</Severity>
    <LifeCycleStatus>Production</LifeCycleStatus>
    <KeywordList>							
        <Keyword nlsid="SECURITY">Security</Keyword>
    </KeywordList>					
    <ViolationMessage nlsid="SAMPLE_RULE_4_MESG">The host is in an insecure state. Port %port% is open.</ViolationMessage>
    <ClearViolationMessage nlsid="SAMPLE_RULE_4_CLR_MESG">Port %port% is not open.</ClearViolationMessage>
    <Author>ORACLE</Author>
    <LastUpdatedBy>&lt;SYSTEM&gt;</LastUpdatedBy>
</Rule>

次に、意図しないポートが開いたままになっていないことをチェックするコンプライアンス・ルールの例を示します。

例: サンプル・ルール5

<Rule xmlns="http://www.oracle.com/DataCenter/ConfigStd" oms_version="12.1.0.1.0" name="sample_rule5">
    <DisplayName nlsid="SAMPLE_RULE_5_NAME">Sample Rule 5</DisplayName>
    <TargetType>host</TargetType>
    <IsSystem>true</IsSystem>
    <Description nlsid="SAMPLE_RULE_5_DESC">Ensure that no unintended ports are left open</Description>
    <Impact nlsid="SAMPLE_RULE_5_IMPACT">Open ports may allow a malicious user to take over the host.</Impact>
    <Recommendation nlsid="SAMPLE_RULE_5_RECOMM">Do not open insecure ports.</Recommendation>
    <ViolationContextList>
            <Column type="Number" name="port">
                <DisplayLabel nlsid="SAMPLE_RULE_5_PORT_COL">Port Number</DisplayLabel>
                <IsHidden>false</IsHidden>
                <IsKey>true</IsKey>
            </Column>
    </ViolationContextList>
    <CheckSource>
        <RepositoryCheckDefinition>
            <Metric>
                <TargetType>host</TargetType>
            <MetricName>sample_rule5</MetricName>										
                <SourceType>SQL</SourceType>
                <Source>SELECT target_guid, port as port, port as dummy FROM MGMT$ESM_PORTS_LATEST</Source>
                <MetricColumnList>
                    <MetricColumnInfo>
                        <ColumnName>port</ColumnName>
                        <ColumnType>Number</ColumnType>
                        <isKey>true</isKey>
                        <ColumnLabel nlsid="SAMPLE_RULE_5_LABEL">Port Number</ColumnLabel>
                    </MetricColumnInfo>
                </MetricColumnList>
            </Metric>
            <ParameterList>
                <RuleParameter>
                    <ParamName nlsid="SAMPLE_RULE_5_DFLT_PORT_PNAME">DFLT_PORT</ParamName>
                    <ParamType>Number</ParamType>
                </RuleParameter>
            </ParameterList>
            <ParameterDefaultSettings>
                <ParamValue>
                    <ParamName>DFLT_PORT</ParamName>
                    <MinorWarnThreshold>655</MinorWarnThreshold>
                </ParamValue>
            </ParameterDefaultSettings>
            <TestCondition>
                <SqlWhereClauseCriteria>
                    <WhereClause>:port &lt; :DFLT_PORT</WhereClause>
                </SqlWhereClauseCriteria>
            </TestCondition>
        </RepositoryCheckDefinition>
    </CheckSource>
    <Severity>Critical</Severity>
    <LifeCycleStatus>Production</LifeCycleStatus>
    <KeywordList>
        <Keyword nlsid="SECURITY">Security</Keyword>
    </KeywordList>
    <ViolationMessage nlsid="SAMPLE_RULE_5_MESG">The host is in an insecure state. Port %port% is open.</ViolationMessage>
    <ClearViolationMessage nlsid="SAMPLE_RULE_5_CLR_MESG">Port %port% is not open.</ClearViolationMessage>
    <Author>ORACLE</Author>
    <LastUpdatedBy>&lt;SYSTEM&gt;</LastUpdatedBy>
</Rule>

次に、意図しないポートが開いたままになっていないことをチェックするコンプライアンス・ルールの例を示します。

例: サンプル・ルール6

<Rule xmlns="http://www.oracle.com/DataCenter/ConfigStd" oms_version="12.1.0.1.0" name="sample_rule6">
    <DisplayName nlsid="SAMPLE_RULE_6_NAME">Sample Rule 6</DisplayName>
    <TargetType>host</TargetType>
    <IsSystem>true</IsSystem>
    <Description nlsid="SAMPLE_RULE_6_DESC">Ensure that no unintended ports are left open</Description>
    <Impact nlsid="SAMPLE_RULE_6_IMPACT">Open ports may allow a malicious user to take over the host.</Impact>
    <Recommendation nlsid="SAMPLE_RULE_6_RECOMM">Do not open insecure ports.</Recommendation>
    <ViolationContextList>
            <Column type="Number" name="port">
                <DisplayLabel nlsid="SAMPLE_RULE_6_PORT_COL">Port Number</DisplayLabel>
                <IsHidden>false</IsHidden>
                <IsKey>true</IsKey>
            </Column>
    </ViolationContextList>
    <CheckSource>
        <RepositoryCheckDefinition>
            <Metric>
                <TargetType>host</TargetType>
            <MetricName>sample_rule6</MetricName>										
                <SourceType>SQL</SourceType>
                <Source>SELECT target_guid, port as port, port as dummy FROM MGMT$ESM_PORTS_LATEST</Source>
                <MetricColumnList>
                    <MetricColumnInfo>
                        <ColumnName>port</ColumnName>
                        <ColumnType>Number</ColumnType>
                        <isKey>true</isKey>
                        <ColumnLabel nlsid="SAMPLE_RULE_6_LABEL">Port Number</ColumnLabel>
                    </MetricColumnInfo>
                </MetricColumnList>
            </Metric>
            <ParameterList>
                <RuleParameter>
                    <ParamName nlsid="SAMPLE_RULE_6_DFLT_PORT_PNAME">DFLT_PORT</ParamName>
                    <ParamType>Number</ParamType>
                </RuleParameter>
            </ParameterList>
            <ParameterDefaultSettings>
                <ParamValue>
                    <ParamName>DFLT_PORT</ParamName>
                    <MinorWarnThreshold>655</MinorWarnThreshold>
                </ParamValue>
            </ParameterDefaultSettings>
            <TestCondition>
                <SqlWhereClauseCriteria>
                    <WhereClause>:port &lt; :DFLT_PORT</WhereClause>
                </SqlWhereClauseCriteria>
            </TestCondition>
        </RepositoryCheckDefinition>
    </CheckSource>
    <Severity>Critical</Severity>
    <LifeCycleStatus>Production</LifeCycleStatus>
    <KeywordList>
        <Keyword nlsid="SECURITY">Security</Keyword>
    </KeywordList>
    <ViolationMessage nlsid="SAMPLE_RULE_6_MESG">The host is in an insecure state. Port %port% is open.</ViolationMessage>
    <ClearViolationMessage nlsid="SAMPLE_RULE_6_CLR_MESG">Port %port% is not open.</ClearViolationMessage>
    <Author>ORACLE</Author>
    <LastUpdatedBy>&lt;SYSTEM&gt;</LastUpdatedBy>
</Rule>

次に、単一のコントロール・ファイルの使用をチェックするルールを含むコンプライアンス標準の例を示します。

例: コンプライアンス標準のサンプル1

<Standard xmlns="http://www.oracle.com/DataCenter/ConfigStd" oms_version="12.1.0.1.0" name="sample_cs1">
    <DisplayName nlsid="SAMPLE_CS_1_NAME">Sample Compliance Standard 1</DisplayName>
    <TargetType>oracle_database</TargetType>
        <TargetPropertyFilter>
            <PropertyItem>
                <PropertyName>orcl_gtp_target_version</PropertyName>
                <ValueList>
                    <Value>Windows</Value>
                </ValueList>
            </PropertyItem>
            <PropertyItem>
                <PropertyName>orcl_gtp_target_version</PropertyName>
                <ValueList>
                    <Value>8.1.6+</Value>
                </ValueList>
            </PropertyItem>
    </TargetPropertyFilter>
    <Author>SYSTEM</Author>
    <Version>1</Version>
    <LifeCycleStatus>Production</LifeCycleStatus>
    <IsSystem>true</IsSystem>
    <Description nlsid="SAMPLE_CS_1_DESC">Sample Description</Description>
    <KeywordList>
        <Keyword nlsid="CONFIGURATION">Configuration</Keyword>
    </KeywordList>
    <ReferenceURL>http://sampleurl.com</ReferenceURL>
    <Body>
            <RuleFolder name="sample_RF_1">
                <DisplayName nlsid="SAMPLE_RF_1_NAME">Sample Rulefolder</DisplayName>
                <Description nlsid="SAMPLE_RF_1_DESC">This includes rules that checks for use of a single control file</Description>
                <ReferenceURL>http://www.oracle.com/db_rf1</ReferenceURL>
                <Importance>Normal</Importance>
                <RuleReference>
                <Name>sample_rule1</Name>
                <TargetType>oracle_database</TargetType>
                <Importance>Normal</Importance>
                </RuleReference>
            </RuleFolder>
    </Body>
</Standard>

次に、開いたセキュアでないポートをチェックするルールを含むコンプライアンス標準の例を示します。

例: コンプライアンス標準のサンプル2

<Standard xmlns="http://www.oracle.com/DataCenter/ConfigStd" oms_version="12.1.0.1.0" name="sample_cs2">
    <DisplayName nlsid="SAMPLE_CS_2_NAME">Sample Compliance Standard 2</DisplayName>
    <TargetType>host</TargetType>
    <Author>SYSTEM</Author>
    <Version>1</Version>
    <LifeCycleStatus>Production</LifeCycleStatus>
    <IsSystem>true</IsSystem>
    <Description nlsid="SAMPLE_CS_2_DESC">Sample Description</Description>
    <KeywordList>
        <Keyword nlsid="SECURITY">Security</Keyword>
    </KeywordList>
    <ReferenceURL>http://sampleurl.com</ReferenceURL>
    <Body>
        <RuleFolder name="sample_RF_2">
            <DisplayName nlsid="SAMPLE_RF_2_NAME">Sample Rulefolder</DisplayName>
            <Description nlsid="SAMPLE_RF_2_DESC">This includes rules that checks for open insecure ports.</Description>
            <ReferenceURL>http://www.oracle.com/db_rf1</ReferenceURL>
            				<Importance>Normal</Importance>
            				<RuleReference>
            				<Name>sample_rule4</Name>
            <TargetType>host</TargetType>
            <Importance>Normal</Importance>
				            </RuleReference>
        </RuleFolder>
    </Body>
</Standard>

次に、開いたセキュアでないポートをチェックするルールを含むコンプライアンス標準の例を示します。

例: コンプライアンス標準のサンプル3

<Standard xmlns="http://www.oracle.com/DataCenter/ConfigStd" oms_version="12.1.0.1.0" name="sample_cs3">
    <DisplayName nlsid="SAMPLE_CS_3_NAME">Sample Compliance Standard 3</DisplayName>
    <TargetType>host</TargetType>
    <Author>SYSTEM</Author>
    <Version>1</Version>
    <LifeCycleStatus>Production</LifeCycleStatus>
    <IsSystem>true</IsSystem>
    <Description nlsid="SAMPLE_CS_3_DESC">Sample Description</Description>
    <KeywordList>
        <Keyword nlsid="SECURITY">Security</Keyword>
    </KeywordList>
    <ReferenceURL>http://sampleurl.com</ReferenceURL>
    <Body>
            <RuleFolder name="sample_RF_3">
                <DisplayName nlsid="SAMPLE_RF_3_NAME">Sample Rulefolder</DisplayName>
                <Description nlsid="SAMPLE_RF_3_DESC">This includes rules that checks for open insecure ports.</Description>
                <ReferenceURL>http://www.oracle.com/db_rf1</ReferenceURL>
                <Importance>Normal</Importance>
                <RuleReference>
                <Name>sample_rule5</Name>
                <TargetType>host</TargetType>
                <Importance>Normal</Importance>
                </RuleReference>
            </RuleFolder>
    </Body>
</Standard>
]]

次に、コンプライアンス・フレームワークの例を示します。

例: コンプライアンス・フレームワークのサンプル

<StandardGroup xmlns="http://www.oracle.com/DataCenter/ConfigStd" name="sample_csg" oms_version="12.1.0.1.0">
        <DisplayName nlsid="SAMPLE_CSG_NAME">Sample Compliance Framework</DisplayName>
        <Author>SYSTEM</Author>
        <Version>1</Version>
        <LifeCycleStatus>Production</LifeCycleStatus>
        <Description nlsid="SAMPLE_CSG_DESC">Sample Description</Description>
        <KeywordList>
            <Keyword nlsid="SECURITY">Security</Keyword>
        </KeywordList>
        <ReferenceURL>http://sampleurl.com</ReferenceURL>
        <IsHidden>false</IsHidden>
        <IsSystem>true</IsSystem>
        <GroupBody>
            <SubGroup name="SampleSubgroup">
                <DisplayName nlsid="SAMPLE_CSG_SUBGROUP_NAME">Sample Child Framework</DisplayName>
                <Description nlsid="SAMPLE_CSG_SUBGROUP_DESC">Sample Child framework Description</Description>
                <ReferenceURL>http://sampleurl.com</ReferenceURL>
                <Importance>Normal</Importance>
                <StandardReference>
                    <Name>sample_cs3</Name>
                    <Author>SYSTEM</Author>
                    <Version>1</Version>
                    <Importance>Normal</Importance>
                </StandardReference>
            </SubGroup>
        </GroupBody>
 </StandardGroup>

次に、コンプライアンス・コンテンツの例を示します。

例: コンプライアンス・コンテンツ・バージョン2

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE ComplianceContent [
<!ENTITY rule1 SYSTEM "SampleRule1.xml">
<!ENTITY rule2 SYSTEM "SampleRule2.xml">
<!ENTITY rule3 SYSTEM "SampleRule3.xml">
<!ENTITY rule5 SYSTEM "SampleRule5.xml">
<!ENTITY rule6 SYSTEM "SampleRule6.xml">
<!ENTITY standard1 SYSTEM "SampleComplianceStandard1.xml">
<!ENTITY standard3 SYSTEM "SampleComplianceStandard3.xml">
<!ENTITY standardgroup SYSTEM "SampleComplianceFramework.xml">
]>
<ComplianceContent xmlns="http://www.oracle.com/DataCenter/ConfigStd" name="SampleComplianceContent" oms_version="12.1.0.1.0" content_version="12.1.0.2.0">
<ChangeList>
  <!-- ChangeList tag process each of the Change Tag with respect to the version of the ComplianceContent installed in repository. -->

    <Change version="12.1.0.1.0">
 
    <!-- AddSubGroupWithinStandardGroup/AddStandardReferenceToStandardGroup tags will modify StandardGroup definition. -->
    <!-- AddSubGroupWithinStandardGroup will introduce a subgroup within an existing  compliance framework/standard group in repository. -->
    <!-- AddStandardReferenceToStandardGroup will introduce a reference to a standard within an existing  compliance framework/standard group in repository. -->


      <AddSubGroupWithinStandardGroup order="2">
          <StandardGroupName>oracle_pci</StandardGroupName>
          <StandardGroupAuthor>ORACLE</StandardGroupAuthor>
          <StandardGroupVersion>1</StandardGroupVersion>
          <SubGroup name="sampleSubgroup1">
              <DisplayName>sub1</DisplayName>
              <ReferenceURL>http://sampleAddedSubgroup.com</ReferenceURL>
              <Importance>High</Importance>
          </SubGroup>
      </AddSubGroupWithinStandardGroup>
      <AddStandardReferenceToStandardGroup>
          <StandardGroupName>oracle_pci</StandardGroupName>
          <StandardGroupAuthor>ORACLE</StandardGroupAuthor>
          <StandardGroupVersion>1</StandardGroupVersion>
          <SubGroupListInfo>
              <SubGroupElem>oracle_pci_ctrlobj_a</SubGroupElem>
          </SubGroupListInfo>
          <StandardReference>
              <Name>sample_cs1</Name>
              <Author>SYSTEM</Author>
              <Version>1</Version>
          </StandardReference>
      </AddStandardReferenceToStandardGroup>
      </Change>
 
      <Change version="12.1.0.2.0">

          <!-- Delete will be remove rule/standard from repository if present, else it will be noop. -->
 
      <DeleteStandard>
          <StandardName>sample_cs2</StandardName>
          <StandardAuthor>SYSTEM</StandardAuthor>
          <StandardVersion>1</StandardVersion>
      </DeleteStandard>
 
      <DeleteRule>
          <RuleName>sample_rule4</RuleName>
          <TargetType>host</TargetType>
      </DeleteRule>
 
 
      <!-- Entities with Update tag will override definitions if they exist in the repository. -->
      <!-- Please note that if standard/rule is updated then old results are
           replaced by new results based on standard/rule definition after update.  -->
 
      <UpdateRule>
          <RuleName>sample_rule5</RuleName>
          <TargetType>host</TargetType>
      </UpdateRule>
      <UpdateStandard>
          <StandardName>sample_cs3</StandardName>
          <StandardAuthor>SYSTEM</StandardAuthor>
          <StandardVersion>1</StandardVersion>
      </UpdateStandard>
 
      <UpdateStandardGroup>
          <StandardGroupName>sample_csg</StandardGroupName>
          <StandardGroupAuthor>SYSTEM</StandardGroupAuthor>
          <StandardGroupVersion>1</StandardGroupVersion>
      </UpdateStandardGroup>
 
      <!-- AddSubGroupWithinStandardGroup will introduce a subgroup within an existing  compliance framework/standard group in repository. -->
      <!-- AddStandardReferenceToStandardGroup will introduce a reference to a standard within an existing  compliance framework/standard group in repository. -->

      <AddSubGroupWithinStandardGroup order="2">
          <StandardGroupName>oracle_pci</StandardGroupName>
          <StandardGroupAuthor>ORACLE</StandardGroupAuthor>
          <StandardGroupVersion>1</StandardGroupVersion>
          <SubGroup name="sampleSubgroup2">
                  <DisplayName>sub2</DisplayName>
                  <ReferenceURL>http://sampleAddedSubgroup.com</ReferenceURL>
                  <Importance>High</Importance>
          </SubGroup>
      </AddSubGroupWithinStandardGroup>
      <AddStandardReferenceToStandardGroup>
          <StandardGroupName>oracle_pci</StandardGroupName>
          <StandardGroupAuthor>ORACLE</StandardGroupAuthor>
          <StandardGroupVersion>1</StandardGroupVersion>
          <SubGroupListInfo>
                  <SubGroupElem>oracle_pci_ctrlobj_a</SubGroupElem>
          </SubGroupListInfo>
          <StandardReference>
                  <Name>sample_cs3</Name>
                  <Author>SYSTEM</Author>
                  <Version>1</Version>
          </StandardReference>
      </AddStandardReferenceToStandardGroup>
      </Change>
      	 
</ChangeList>
<!--List of compliance standard rules -->
&rule1;
&rule2;
&rule3;
&rule5;
&rule6;
<!--List of compliance standards -->
&standard1;
&standard3;
<!--List of compliance standard groups/frameworks -->
&standardgroup;
</ComplianceContent>

13.11 自己更新を使用したコンプライアンス・コンテンツの公開

プラグインをデプロイせずにコンプライアンス・コンテンツを公開するには、自己更新コンソールを使用します。

自己更新コンソールからコンプライアンス・コンテンツを公開および適用する手順:

  1. 次のコマンドを使用して、XMLコンテンツからコンプライアンス・コンテンツJARファイルを作成します。
    -jar cvfM compliancecontent.jar compliance_content_files
    

    注意:

    同様に、複数のDLFファイルをJARファイルで結合できます。

  2. マニフェスト・ファイルを作成して、コンプライアンス・コンテンツの名前、ラベルおよび公開するコンプライアンス・コンテンツのバージョンを指定します。このマニフェスト・ファイルでは、compliancecontent.jarとcompliancedlf.jarをそれぞれ順番に指定します。

    例: マニフェスト・ファイルのサンプル

    <?xml version="1.0" encoding="utf-8"?>
    <tns:EntityInstance xmlns:tns="http://www.oracle.com/EnterpriseGridControl/SelfUpdateManifest"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" EntityType="param" EntityTypeVersion="12.1.0.1.0" Vendor="Oracle" Maturity="TEST">
    
    <tns:Description><![CDATA[<param>]]></tns:Description>
    
    <tns:AttributeList>
    <tns:Version>12.1.0.1.0</tns:Version>
    <tns:Attribute Name="name" Value="<param>" Label="display_name"/>
    </tns:AttributeList>
    <tns:Readme><![CDATA[ <param>]]>
    </tns:Readme>
    <tns:CustomParamList/>
    <tns:DependsOn/>
    <tns:ArchiveList>
    <tns:Archive Filename="param"/>
    <tns:Archive Filename="param"/>
    </tns:ArchiveList>
    <tns:CustomData/>
    </tns:EntityInstance>
    
  3. 次のコマンドを使用して、マニフェスト・ファイル、compliancecontent.jarおよびcompliancedlf.jarからSAR (自己更新アーカイブ)ファイルを作成します。
    edkutil prepare_update -manifest manifest_file_name -archivedir directory_containing_compliancecontent.jar_and_compliancedlf.jar -out sar_file_name
    

    注意:

    SARファイルをEnterprise Managerにインポートする前に、ソフトウェア・ライブラリが構成されていることを確認します。

    詳細は、「ソフトウェア・ライブラリの設定」を参照してください。

  4. 次のコマンドを使用して、SARファイルをEnterprise Managerにインポートします。
    emcli import_update -omslocal -file=complete_path_to_sar_file
    

    注意:

    -omslocalフラグの使用は、ファイルをOracle Management Server (OMS)ファイル・システムに置く必要があることを意味します。

  5. Enterprise Managerにログインします。「設定」メニューで、「拡張性」「自己更新」の順に選択します。

    「自己更新」ページが表示されます。

  6. 「ステータス」領域で、「コンプライアンス・コンテンツ」の「ダウンロードされた更新」が1に設定されていることを確認します。
  7. 「タイプ」列で、「コンプライアンス・コンテンツ」をクリックします。

    「自己更新: コンプライアンス・コンテンツ」ページが表示されます。

  8. 「ステータス」列が「ダウンロード」の行を選択し、「適用」をクリックします。表示されるウィザードのステップに従います。
  9. 「アクション」リストで、「適用」」を選択し、「ステータス」列が「成功」であることを確認します。
  10. 「コンプライアンス・ライブラリ」から、インポートされたコンプライアンス・コンテンツを確認します。「コンプライアンス・ライブラリ」を表示するには、「エンタープライズ」メニューで、「コンプライアンス」「ライブラリ」の順に選択します。