OS管理ハブ・ポリシーの手動作成

OS管理ハブの場合、サービスが管理できるリソースと、それらのリソースを管理できるユーザーを識別する必要があります。

OS管理ハブを有効にするには、次を定義します:

重要

リソース検出およびモニタリング機能を有効にするには、次の項で説明するポリシーに加えてポリシーを構成する必要があります。リソース検出およびモニタリングの開始を参照してください。

IAMポリシーは様々な方法で構成できます。次の項では、リソースの動的グループを使用して、OS管理ハブ管理者のグループに対してIAMポリシー・ステートメントを設定する方法について説明します。管理者以外のその他のユースケースについては、ポリシーの例を参照してください。

ヒント

グループおよびポリシー・ステートメントを手動で作成するかわりに、ポリシー・アドバイザを使用して、コンパートメントのOS管理ハブをすばやく有効にします。

ユーザー・グループ

ユーザー・グループを作成するか(osmh-adminsなど)、テナンシ内のOS管理ハブ・サービスを管理するための既存のユーザー・グループを識別します。次に、必要なポリシー・ステートメントによって、この管理者ユーザー・グループにOS管理ハブ・リソースを管理する権限が付与されます。

アクセスをさらに制限する必要がある場合は、追加のユーザー・グループを作成し、より制限的なポリシー・ステートメントを設定して、特定のリソースへのアクセスを制限できます。管理者以外のユースケースについては、ポリシーの例を参照してください。ユーザー・グループの詳細は、グループの管理を参照してください。

動的グループ

動的グループ(osmh-instancesなど)を作成して、OCIおよびオンプレミスまたはサードパーティ・クラウド・インスタンス(OCI以外)のルール文を定義することでOS管理ハブが管理するリソースを指定します。

次のことを理解してください。

動的グループは何をしますか。

動的グループは、OS管理ハブが管理するインスタンスを識別します。サービスで管理するインスタンスを含むコンパートメントおよびサブコンパートメントのルール・ステートメントを追加します。動的グループは、これらのルール文に基づいて動的に増減します。インスタンスがプロビジョニングまたはリタイアされると、それに応じて動的グループが変更されます。次に、必要なポリシー・ステートメントによって、動的グループ内のインスタンスにアクセスする権限がOS管理ハブに付与されます。

動的グループの詳細は、動的グループの管理を参照してください。

OCIとOCI以外の文が異なるのはなぜですか。

各インスタンス・タイプでは、異なるリソース・オブジェクトに対応する異なるエージェントが使用されます。

  • OCIインスタンスはOracle Cloud Agent (OCA)を使用するため、OCI文はコンパートメント内のinstanceリソースを指定します。

  • オンプレミスおよびサードパーティ・クラウド・インスタンスは、管理エージェントCloud Service (MACS)を使用するため、OCI以外の文はコンパートメント内のmanagementagentリソースを指定します。各管理エージェント・リソースは、OCI以外のインスタンスに対応します。したがって、グループ内に管理エージェントを含めることで、関連付けられたインスタンスを含めます。

エージェントの理解も参照してください。

動的グループに対してANYおよびALLを使用する場合

動的グループ・ルール文を記述する前に、ANYとALLの違いを理解することが重要です。

動的グループを定義する場合、グループ内で定義されたルールとグループがどのように一致するかを設定します。

  • 「下で定義したいずれかのルールに一致」には、動的グループ内のいずれかのルールに一致するリソースが含まれます。複数のコンパートメントまたは複数のインスタンス・タイプ(OCIインスタンスやOCI以外のインスタンスなど)のルールを含むグループを定義する場合は、これを選択します。この設定は、ルール1またはルール2またはルール3に一致するリソースを含めるようにグループに指示します。
  • 「下で定義したすべてのルールに一致」には、動的グループ内のすべてのルールに一致するリソースが含まれます。1つのコンパートメントのみを含む可変幅の狭い動的グループを定義する場合は、これを選択します。この設定は、ルール1およびルール2およびルール3に一致するリソースを含めるようにグループに指示します。

動的グループ内で個々のルール文を定義する場合は、各文の条件を設定します。

  • 次のすべて(ALL)には、ルールのすべての条件に一致するリソースのみが含まれます。ALL文では、各条件がtrueである必要があります。それ以外の場合、リソースはルールに含まれません。

  • 次のいずれか(ANY)には、ルールのいずれかの条件に一致するリソースが含まれます。

個々のルール文のANYおよびALLの例

OCI以外のインスタンスに使用されるルールについて考えてみます。

Correct usage:
ALL {resource.type='managementagent', resource.compartment.id='<compartment_ocid>'}

ALLを使用する場合、ルールには、指定したコンパートメント内の管理エージェント・リソースのみが含まれます。この文は、管理エージェント・タイプと一致し、指定したコンパートメント内にあるリソースを含めるように動的グループに指示します。

Incorrect usage. Do not use:
ANY {resource.type='managementagent', resource.compartment.id='<compartment_ocid>'}

ANYを使用する場合、ルールには、テナンシ全体のすべての管理エージェント・リソースと、指定したコンパートメントに存在するすべてのOCIリソースが含まれます。この文にはOS管理ハブに必要なリソースが含まれますが、非常に広範で、通常は好ましくありません。

複数のコンパートメントを指定するときにOCIインスタンスに使用されるルールについて考えてみます。

Correct usage:
ANY {instance.compartment.id='<compartment_ocid>',instance.compartment.id='<subcompartment_ocid>'}

ANYを使用する場合、ルールには、指定した各コンパートメントのすべてのインスタンスが含まれます。この文は、<compartment_ocid>または<subcompartment_ocid>にインスタンスを含めるように動的グループに指示します。

Incorrect usage. Do not use:
ALL {instance.compartment.id='<compartment_ocid>',instance.compartment.id='<subcompartment_ocid>'}

ALLを使用する場合、ルールは、<compartment_ocid>および<subcompartment_ocid>にあるインスタンスを含めるように動的グループに指示します。インスタンスを複数のコンパートメントに同時に配置することはできないため、このルールにはインスタンスが含まれません。複数のコンパートメントを指定するルール文では、ALLを使用しないでください。

動的グループの作成

  1. ステップに従って、動的グループを作成するか、既存の動的グループを更新し、次のように一致ルールを構成します。

    ヒント

    1つのリソースは最大5つの動的グループにのみ属することができるため、新しい動的グループを作成するのではなく、サービス全体で可能なかぎり同じ動的グループを再利用します。

  2. 照合ルール設定全体について、「次で定義されているルールに一致」を選択します。

  3. OS管理ハブが管理するインスタンスのルール・ステートメントを作成します。

    重要

    動的グループ・ルールはコンパートメント継承を使用しません。サービスで管理するインスタンスを含むコンパートメントおよびサブコンパートメントごとにルール・ステートメントを指定する必要があります。

    OCIインスタンスのルール

    インスタンスを含む各コンパートメント(およびサブコンパートメント)を含むルール・ステートメントを追加します。

    ANY {instance.compartment.id='<compartment_ocid>',instance.compartment.id='<subcompartment_ocid>'}

    このルールには、指定されたコンパートメント内のすべてのOCIインスタンスが含まれます。

    非OCIインスタンスのルール

    インスタンスで使用される管理エージェントを含むコンパートメント(およびサブコンパートメント)ごとに、個別のルール・ステートメントを追加します。

    ALL {resource.type='managementagent', resource.compartment.id='<compartment_ocid>'}
    ALL {resource.type='managementagent', resource.compartment.id='<subcompartment_ocid>'}

    各ルール文には、指定したコンパートメント内のすべての管理エージェント・リソースが含まれます。各非OCIインスタンスには対応するエージェント・リソースがあるため、文にはコンパートメント内の非OCIインスタンスが含まれます。

  4. 「作成」(作成する場合)または「保存」(更新する場合)を選択します。

ポリシー・ステートメント

インスタンスがOS管理ハブに登録し、ユーザーがサービスを管理および操作できるようにする文を含むポリシーの作成(osmh-policiesなど)。

重要

グループまたは動的グループ名の前にアイデンティティ・ドメインを定義しないかぎり、ポリシー・ステートメントはデフォルトのアイデンティティ・ドメインを使用します(たとえば、<identity_domain_name>/<dynamic_group_name>)。詳細は、ポリシー構文を参照してください。
前提条件

ポリシーを作成する前に、次があることを確認してください:

ポリシー・ビルダーの使用

ポリシー・ビルダーには、OS管理ハブに使用される共通ポリシーのテンプレートが用意されています。ユースケースを選択し、動的グループやコンパートメントなどの必要な情報を入力してポリシー・ステートメントを完了します。ポリシー・ビルダーを使用したポリシー・ステートメントの記述を参照してください。

  1. 「ポリシーの作成」のステップに従って、次の例外に注意してください。
  2. 「ポリシーのユースケース」で、「OS管理ハブ」を選択します。
  3. 「共通ポリシー・テンプレート」で、OS管理ハブの共通ポリシーのいずれかを選択します。

共通ポリシー・テンプレート

ポリシー・ビルダーには、次のOS管理ハブ共通ポリシー・テンプレートが用意されています。

OS管理ハブで動的グループ内のインスタンスを管理できるようにします

アクセス・タイプ:管理対象インスタンスのサービス・エージェントがOS管理ハブと対話できるようにします。

ポリシーを作成する場所:ルート・コンパートメント。

ポリシー・ステートメント: <osmh-instances>を動的グループ名に置き換えます。

Allow dynamic-group <osmh-instances> to {OSMH_MANAGED_INSTANCE_ACCESS} in tenancy where request.principal.id = target.managed-instance.id
ユーザーがテナンシ内のOS管理ハブ・リソースを管理できるようにします

アクセス・タイプ:テナンシ・アクセス権を持つ管理ユーザー・グループは、次のものにアクセスできます。

  • テナンシ内のすべてのOS管理ハブ・リソースを管理します。
  • 管理エージェントを作成、更新および削除し、テナンシにキーをインストールします。

ポリシーを作成する場所:ルート・コンパートメント。

ポリシー・ステートメント: <osmh-admins>をユーザー・グループ名に置き換えます。

Allow group <osmh-admins> to manage osmh-family in tenancy
Allow group <osmh-admins> to manage management-agents in tenancy
Allow group <osmh-admins> to manage management-agent-install-keys in tenancy
ユーザーがコンパートメント内のOS管理ハブ・リソースを管理できるようにします

アクセス・タイプ:コンパートメント・アクセス権を持つ管理ユーザー・グループは、次のことを実行できます:

  • コンパートメント内のすべてのOS管理ハブ・リソースを管理します。
  • ルート・コンパートメント内のプロファイルおよびソフトウェア・ソースを読み取ります。これは、ベンダー・ソフトウェア・ソースをレプリケートし、サービス提供のプロファイルを使用するために必要です。
  • 管理エージェントを作成、更新および削除し、コンパートメントにキーをインストールします。

ポリシーを作成する場所:このポリシーをルート・コンパートメントに配置する方法が最も簡単です。個々のコンパートメントのユーザーがコンパートメントの個々のポリシー・ステートメントを制御するには、ポリシー・アタッチメントを参照してください。

ポリシー・ステートメント: <osmh-admins>をユーザー・グループ名で、<compartment>をコンパートメント名で置き換えます。手動エディタを使用して、<tenancy-ocid>をテナンシOCIDに置き換えます。

Allow group <osmh-admins> to read osmh-profiles in tenancy where target.profile.compartment.id = '<tenancy-ocid>'
Allow group <osmh-admins> to read osmh-software-sources in tenancy where target.softwareSource.compartment.id = '<tenancy-ocid>'
Allow group <osmh-admins> to manage osmh-family in compartment <compartment> 
Allow group <osmh-admins> to manage management-agents in compartment <compartment>
Allow group <osmh-admins> to manage management-agent-install-keys in compartment <compartment>
ユーザーがテナンシ内のOS管理ハブ・リソースを読み取れるようにします

アクセス・タイプ:オペレータ・ユーザー・グループがテナンシ内のすべてのOS管理ハブ・リソースを読み取ることができます。

ポリシーを作成する場所:ルート・コンパートメント。

ポリシー・ステートメント: <osmh-operators>をユーザー・グループ名に置き換えます。

Allow group <osmh-operators> to read osmh-family in tenancy
ユーザーがコンパートメント内のOS管理ハブ・リソースを読み取れるようにします

アクセス・タイプ:オペレータ・ユーザー・グループがコンパートメント内のすべてのOS管理ハブ・リソースを読み取ることができます。

ポリシーを作成する場所:このポリシーをルート・コンパートメントに配置する方法が最も簡単です。個々のコンパートメントのユーザーがコンパートメントの個々のポリシー・ステートメントを制御するには、ポリシー・アタッチメントを参照してください。

ポリシー・ステートメント: <osmh-operators>をユーザー・グループ名で、<compartment>をコンパートメント名で置き換えます。

Allow group <osmh-operators> to read osmh-family in compartment <compartment>

ポリシー・ステートメントの手動定義

ポリシー・ビルダーを使用しない場合は、ポリシー・ステートメントを手動で定義できます。新規ポリシーを作成するか、既存のポリシーを変更して次のポリシー・ステートメントを含めます。

次のポリシー・ステートメントは、管理者にサービスへのアクセスを提供する方法の例を示しています。その他のユースケースについては、ポリシーの例を参照してください。

テナンシ・レベルのポリシー・ステートメント

テナンシ・レベルで必要なIAMポリシーを適用するには、次のポリシー・ステートメントを使用します:

allow dynamic-group <osmh-instances> to {OSMH_MANAGED_INSTANCE_ACCESS} in tenancy where request.principal.id = target.managed-instance.id
allow group <osmh-admins> to manage osmh-family in tenancy

オンプレミスまたはサードパーティ・クラウド・インスタンスを管理する場合は、次の追加の文を含めます。これらは、OCIインスタンスのみを管理する場合には必要ありません。

allow group <osmh-admins> to manage management-agents in tenancy
allow group <osmh-admins> to manage management-agent-install-keys in tenancy
コンパートメント・レベルのポリシー・ステートメント(テナンシ・レベルを使用していない場合)

テナンシ管理者がテナンシ・レベルでのIAMポリシーの設定を許可しない場合は、OS管理ハブ・リソースの使用をコンパートメントとそのサブコンパートメントに制限できます(ポリシーはコンパートメント継承を使用します)。ユーザーがベンダー・ソフトウェア・ソースをレプリケートし、サービス提供のプロファイルを使用できるようにするには、ユーザー・グループでルート・コンパートメント内のプロファイルおよびソフトウェア・ソースへの読取りアクセス権が必要です。

IAMポリシーをテナンシ内のコンパートメントに適用するには、次のポリシー・ステートメントを使用します:

allow dynamic-group <osmh-instances> to {OSMH_MANAGED_INSTANCE_ACCESS} in compartment <compartment_name> where request.principal.id = target.managed-instance.id
allow group <osmh-admins> to manage osmh-family in compartment <compartment_name>
allow group <osmh-admins> to read osmh-profiles in tenancy where target.profile.compartment.id = '<tenancy_ocid>'
allow group <osmh-admins> to read osmh-software-sources in tenancy where target.softwareSource.compartment.id = '<tenancy_ocid>'

オンプレミスまたはサードパーティ・クラウド・インスタンスを管理する場合は、次の追加の文を含めます。これらは、OCIインスタンスのみを管理する場合には必要ありません。

allow group <osmh-admins> to manage management-agents in compartment <compartment_name>
allow group <osmh-admins> to manage management-agent-install-keys in compartment <compartment_name>