OS管理ハブ・ポリシーの手動作成
OS管理ハブの場合、サービスが管理できるリソースと、それらのリソースを管理できるユーザーを識別する必要があります。
OS管理ハブを有効にするには、次を定義します:
IAMポリシーは様々な方法で構成できます。次の項では、リソースの動的グループを使用して、OS管理ハブ管理者のグループに対してIAMポリシー・ステートメントを設定する方法について説明します。管理者以外のその他のユースケースについては、ポリシーの例を参照してください。
ユーザー・グループ
ユーザー・グループを作成するか(osmh-admins
など)、テナンシ内のOS管理ハブ・サービスを管理するための既存のユーザー・グループを識別します。次に、必要なポリシー・ステートメントによって、この管理者ユーザー・グループにOS管理ハブ・リソースを管理する権限が付与されます。
アクセスをさらに制限する必要がある場合は、追加のユーザー・グループを作成し、より制限的なポリシー・ステートメントを設定して、特定のリソースへのアクセスを制限できます。管理者以外のユースケースについては、ポリシーの例を参照してください。ユーザー・グループの詳細は、グループの管理を参照してください。
動的グループ
動的グループ(osmh-instances
など)を作成して、OCIおよびオンプレミスまたはサードパーティ・クラウド・インスタンス(OCI以外)のルール文を定義することでOS管理ハブが管理するリソースを指定します。
次のことを理解してください。
動的グループは、OS管理ハブが管理するインスタンスを識別します。サービスで管理するインスタンスを含むコンパートメントおよびサブコンパートメントのルール・ステートメントを追加します。動的グループは、これらのルール文に基づいて動的に増減します。インスタンスがプロビジョニングまたはリタイアされると、それに応じて動的グループが変更されます。次に、必要なポリシー・ステートメントによって、動的グループ内のインスタンスにアクセスする権限がOS管理ハブに付与されます。
動的グループの詳細は、動的グループの管理を参照してください。
各インスタンス・タイプでは、異なるリソース・オブジェクトに対応する異なるエージェントが使用されます。
-
OCIインスタンスはOracle Cloud Agent (OCA)を使用するため、OCI文はコンパートメント内の
instance
リソースを指定します。 -
オンプレミスおよびサードパーティ・クラウド・インスタンスは、管理エージェントCloud Service (MACS)を使用するため、OCI以外の文はコンパートメント内の
managementagent
リソースを指定します。各管理エージェント・リソースは、OCI以外のインスタンスに対応します。したがって、グループ内に管理エージェントを含めることで、関連付けられたインスタンスを含めます。
エージェントの理解も参照してください。
動的グループ・ルール文を記述する前に、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つのリソースは最大5つの動的グループにのみ属することができるため、新しい動的グループを作成するのではなく、サービス全体で可能なかぎり同じ動的グループを再利用します。
-
照合ルール設定全体について、「次で定義されているルールに一致」を選択します。
-
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インスタンスが含まれます。
- 「作成」(作成する場合)または「保存」(更新する場合)を選択します。
ポリシー・ステートメント
ポリシー・ビルダーの使用
ポリシー・ビルダーには、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管理ハブ・リソースを管理します。
- 管理エージェントを作成、更新および削除し、テナンシにキーをインストールします。
ポリシーを作成する場所:ルート・コンパートメント。
ポリシー・ステートメント: <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管理ハブ・リソースを管理します。
- ルート・コンパートメント内のプロファイルおよびソフトウェア・ソースを読み取ります。これは、ベンダー・ソフトウェア・ソースをレプリケートし、サービス提供のプロファイルを使用するために必要です。
- 管理エージェントを作成、更新および削除し、コンパートメントにキーをインストールします。
ポリシーを作成する場所:このポリシーをルート・コンパートメントに配置する方法が最も簡単です。個々のコンパートメントのユーザーがコンパートメントの個々のポリシー・ステートメントを制御するには、ポリシー・アタッチメントを参照してください。
ポリシー・ステートメント: <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管理ハブ・リソースを読み取ることができます。
ポリシーを作成する場所:ルート・コンパートメント。
ポリシー・ステートメント: <osmh-operators>
をユーザー・グループ名に置き換えます。
Allow group <osmh-operators> to read osmh-family in tenancy
アクセス・タイプ:オペレータ・ユーザー・グループがコンパートメント内のすべての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>