リソース・プリンシパル

Oracleでは、追加の機能を使用するために、Full Stack Disaster Recoveryのリソース・プリンシパル・ベースの認証を使用することをお薦めします。リソース・プリンシパルを使用して、他のOracle Cloud Infrastructureリソースを認証およびアクセスします。リソース・プリンシパルを使用するには、ユーザーまたはテナンシ管理者が、プリンシパルがOracle Cloud InfrastructureリソースにアクセスできるようにするOracle Cloud Infrastructureポリシーおよび動的グループを定義する必要があります。

Oracle Cloud Infrastructure (OCI) Full Stack Disaster Recoveryのリソース・プリンシパル認証を構成するには、次の詳細なステップに従います。

  1. 次のように動的グループを作成し、照合ルールを定義します。

動的グループを使用すると、OCIリソースをグループ化して、それらをまとめて権限を割り当てることができます。動的グループ内で照合ルールを定義すると、含めるリソースが指定されます。

OCIコンソールに移動します。

  1. OCIアカウントにサインインします
  2. ナビゲーション・メニューを開き、「Identity & Security」→「Domains」→「[Your Domain]」→「Groups」→「Dynamic Groups」を選択します。

新規動的グループの作成:

  1. 「動的グループの作成」をクリックします。
  2. 意味のわかりやすい名前および説明を指定します。
  3. 「一致ルール」セクションで、「次に定義したルールと一致」を選択します。この設定により、指定したルールのいずれかと一致するリソースが動的グループに確実に含められます。

動的グループ一致ルール

「任意のルールの照合」ラジオ・ボタンを選択し、次のルールを個別に追加します。

Rule 1: All {resource.type='drprotectiongroup', resource.compartment.id='<dr_protection_group_compartment_ocid>'}
Rule 2: Any {instance.compartment.id = '<instance_compartment_ocid>'}
Rule 3: All {resource.type='computecontainerinstance', resource.compartment.id='<mysql_compartment_ocid>'}
Rule 4: All {resource.type='computecontainerinstance', resource.compartment.id='<oke_cluster_compartment_ocid>'}

動的グループを保存します。

一致ルールを定義した後、「作成」をクリックして動的グループを保存します。

詳細は、Oracle Cloud Infrastructure (OCI) Full Stack Disaster Recoveryの動的グループでの一致ルールのガイドラインを参照してください。

  1. 動的グループのIAMポリシーを次のように作成します:

IAMポリシーは、DR操作中にリソースを管理するために必要な権限を動的グループに付与します。

「ポリシー」にナビゲートします:

OCIコンソールで、「Identity & Security」→「Domains」→「[Your Domain]」→「Policies」に移動します。

新規のポリシーの作成:

  1. ポリシーの作成をクリックします。
  2. ポリシーの名前および説明を指定します。
  3. ポリシー・ビルダーで、必要な権限を付与する文を追加します。

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

必要なポリシー・ステートメントは、Full Stack DRによって管理されるリソースのタイプによって異なります。

<dynamic_group_name>および<resource_compartment_name>を実際の動的グループおよびコンパートメント名に置き換えます。

すべてのポリシー・ステートメント:

Allow dynamic-group <dynamic_group_name> to manage disaster-recovery-family in compartment <dr_protection_group_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage object-family in compartment <object_storage_bucket_compartment_name>
Allow dynamic-group <dynamic_group_name> to use tag-namespaces in tenancy
Allow dynamic-group <dynamic_group_name> to read all-resources in tenancy
Allow dynamic-group <dynamic_group_name> to manage instance-family in compartment <instance_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage instance-agent-command-execution-family in compartment <instance_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage instance-agent-command-family in compartment <instance_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage instance-agent-plugins in compartment <instance_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage virtual-network-family in compartment <network_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage volume-family in compartment <volume_group_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage file-family in compartment <file_system_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage database-family in compartment <database_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage autonomous-database-family in compartment <autonomous_database_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage autonomous-container-databases in compartment <autonomous_container_database_compartment_name>
Allow dynamic-group <dynamic_group_name> to update cloud-autonomous-vmclusters in compartment <autonomous_container_database_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage mysql-family in compartment <mysql_compartment_name>
Allow dynamic-group <dynamic_group> to manage postgres-db-systems in compartment <compartment_name>
Allow dynamic-group <dynamic_group_name> to manage load-balancers in compartment <load_balancer_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage network-load-balancers in compartment <network_load_balancer_compartment_name>
Allow dynamic-group <dynamic_group_name> to read secret-family in compartment <vault_compartment_name>
Allow dynamic-group <dynamic_group_name> to read vaults in compartment <vault_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage cluster-family in compartment <oke_cluster_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage cluster-virtualnode-pools in compartment <oke_cluster_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage compute-container-family in compartment <oke_cluster_compartment_name>
Allow any-user to manage objects in compartment <object_storage_bucket_compartment_name> where all { request.principal.type = 'workload', request.principal.namespace = 'brie', request.principal.service_account = 'brie-creator', request.principal.cluster_id = '<cluster_ocid>'}
Allow any-user to manage objects in compartment <object_storage_bucket_compartment_name> where all { request.principal.type = 'workload', request.principal.namespace = 'brie', request.principal.service_account = 'brie-reader', request.principal.cluster_id = '<cluster_ocid>'}
Allow dynamic-group <dynamic_group_name> to read fn-app in compartment <function_compartment_name>
Allow dynamic-group <dynamic_group_name> to read fn-function in compartment <function_compartment_name>
Allow dynamic-group <dynamic_group_name> to use fn-invocation in compartment <function_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage integration-instance in compartment <oic_compartment_name>
Allow dynamic-group <dynamic_group_name> to use compute-capacity-reservations in compartment <capacity_reservation_compartment_name>
Allow dynamic-group <dynamic_group_name> to use instance-images in tenancy

詳細は、Oracle Cloud Infrastructure (OCI) Full Stack Disaster Recoveryのポリシー・ステートメントのガイドラインを参照してください

確認および作成:

必要なステートメントを追加したら、ポリシーを確認し、「作成」をクリックして適用します。

これらのステップに従うことで、OCI Full Stack Disaster Recoveryのリソース・プリンシパル認証を設定し、ディザスタ・リカバリ操作をセキュアかつ効率的に管理できます。

参照:

Oracle Cloud Infrastructure (OCI) Full Stack Disaster Recoveryの動的グループでの一致ルールのガイドライン

一致ルールの定義:

Full Stack Disaster Recoveryサービスで保護するリソースのタイプに応じて、リソースの一致ルールを調整します。

DR保護グループ照合ルール:

これは、主にリソース・プリンシパルを使用したDR構成および実行に使用されるリソース・プリンシパルであるため、必須ステップです

特定のコンパートメント内のすべてのDR保護グループ:

All {resource.type='drprotectiongroup', resource.compartment.id='<dr_protection_group_compartment_ocid>'}
Replace <dr_protection_group_compartment_ocid> with your DR protection group compartment OCID.

複数のコンパートメントにわたるすべてのDR保護グループ:

All {resource.type='drprotectiongroup', resource.compartment.id='<dr_protection_group_compartment_ocid1>'}
All {resource.type='drprotectiongroup', resource.compartment.id='<dr_protection_group_compartment_ocid2>'}

すべてのコンパートメントにわたるすべてのDR保護グループ:

All {resource.type='drprotectiongroup'}

コンピュート・インスタンス一致ルール:

これは、DR保護グループにメンバーを移動または非移動のいずれかのコンピュート・インスタンスがある場合に必要です。DR構成にコンピュート・インスタンスを含めるには、次のルールを使用します:

特定のコンパートメント内のすべてのインスタンス:

Any {instance.compartment.id = '<instance_compartment_ocid>'}
Replace <instance_compartment_ocid> with your compute instance compartment OCID

複数のコンパートメントにわたるインスタンス:

Any {instance.compartment.id = '<instance_compartment_ocid1>'}
Any {instance.compartment.id = '<instance_compartment_ocid2>'}

OKEクラスタおよびMySQL DB System一致ルール:

これは、DR保護グループにOKEクラスタまたはMySQL DB Systemメンバーがある場合に必要です。

OKEクラスタおよびMySQL DBシステムを保護するには、次を使用します:

ノート

ディザスタ・リカバリの構成および実行は、コンピュート・コンテナ・インスタンスを介して実行されます

特定のコンパートメント内のすべてのOKEクラスタ・インスタンス:

All {resource.type='computecontainerinstance', resource.compartment.id='<oke_cluster_compartment_ocid>'}
Replace <oke_cluster_compartment_ocid> with your OKE cluster compartment OCID

特定のコンパートメント内のすべてのMySQL DBシステム:

All {resource.type='computecontainerinstance', resource.compartment.id='<mysql_compartment_ocid>'}
Replace <mysql_compartment_ocid> with the relevant MySQL compartment OCID

コンパートメントに関係なくすべてのコンピュート・コンテナ・インスタンス(関連するすべてのリソースに適用):

All {resource.type='computecontainerinstance'}

これらのルールにより、指定された条件のいずれかが一致することが保証され、リソースの包含を柔軟に行うことができます。

Oracle Cloud Infrastructure (OCI) Full Stack Disaster Recoveryのポリシー・ステートメントのガイドライン:

Full Stack DRでリソースをシームレスに管理できるようにするには、動的グループにIAMポリシーを設定します。様々なメンバー・タイプの例を次に示します。

共通リソース・ポリシー(メンバー・タイプ全体に適用可能)

ネットワーク(コンピュート・インスタンス、Autonomous DB、ロード・バランサ、ファイル・システム、OKEクラスタの場合):

Allow dynamic-group <dynamic_group_name> to use virtual-network-family in compartment <network_compartment_name>
Allow dynamic-group <dynamic_group_name> to use subnets in compartment <network_compartment_name>
Allow dynamic-group <dynamic_group_name> to use vnics in compartment <network_compartment_name>
Allow dynamic-group <dynamic_group_name> to use network-security-groups in compartment <network_compartment_name>
Allow dynamic-group <dynamic_group_name> to use private-ips in compartment <network_compartment_name>
Allow dynamic-group <dynamic_group_name> to use public-ips in compartment <network_compartment_name>
Allow dynamic-group <dynamic_group_name> to use tag-namespaces in compartment <tag_compartment_name>

Vault (コンピュート・インスタンス、Autonomous DB、ボリューム・グループ、ファイル・システム、OKEクラスタの場合):

Allow dynamic-group <dynamic_group_name> to read vaults in compartment <vault_compartment_name>
Allow dynamic-group <dynamic_group_name> to read secret-family in compartment <vault_compartment_name

Tagging (For: All resources):

Allow dynamic-group <dynamic_group_name> to use tag-namespaces in
    tenancy

For Disaster Recovery Service Resources (DR Configuration & Actions):

Allow dynamic-group <dynamic_group_name> to manage disaster-recovery-family in compartment <dr_protection_group_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage objects in compartment <dr_protection_group_compartment_name>
Allow dynamic-group <dynamic_group_name> to read all-resources in tenancy

Log Storage (For: OKE Clusters, MySQL DB Systems, DR Plan Execution):

Allow dynamic-group <dynamic_group_name> to manage object-family in compartment
      <object_storage_bucket_compartment_name>

Resource Member-Type Specific Policies:

Compute Instances (Movable & Non-Movable)

Allow dynamic-group <dynamic_group_name> to manage instance-family in compartment <instance_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage volume-family in compartment <volume_group_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage virtual-network-family in compartment <instance_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage instance-agent-command-execution-family in compartment <instance_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage instance-agent-command-family in compartment <instance_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage instance-agent-plugins in compartment <instance_compartment_name>
Allow dynamic-group <dynamic_group_name> to use compute-capacity-reservations in compartment <capacity_reservation_compartment_name
Allow dynamic-group <dynamic_group_name> to use instance-images in tenancy
  1. Volume Groups
Allow dynamic-group <dynamic_group_name> to manage volume-family in compartment <volume_group_compartment_name>(Include Vault policies from above)
  1. File Systems
Allow dynamic-group <dynamic_group_name> to manage file-family in compartment <file_system_compartment_name>(Include Vault policies from above)
  1. Object Storage Buckets
Allow dynamic-group <dynamic_group_name> to manage object-family in compartment <object_storage_bucket_compartment_name>
  1. Databases
Allow dynamic-group <dynamic_group_name> to manage databases in compartment <database_compartment_name>(Include Vault policies from above)
  1. Autonomous Database
Allow dynamic-group <dynamic_group_name> to manage autonomous-database-family in compartment <autonomous_database_compartment_name>
(Include Vault policies from above)
  1. Autonomous Container Database
Allow dynamic-group <dynamic_group_name> to manage autonomous-container-databases in compartment <autonomous_container_database_compartment_name>
  1. MySQL DB Systems
Allow dynamic-group <dynamic_group_name> to manage mysql-family in compartment <mysql_compartment_name>
  1. Load Balancers
Allow dynamic-group <dynamic_group_name> to manage load-balancers in compartment <load_balancer_compartment_name>
  1. Network Load Balancers
Allow dynamic-group <dynamic_group_name> to manage network-load-balancers in compartment <network_load_balancer_compartment_name>
  1. OKE Clusters
Allow dynamic-group <dynamic_group_name> to manage cluster-family in compartment <oke_cluster_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage cluster-virtualnode-pools in compartment <oke_cluster_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage compute-container-family in compartment <oke_cluster_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage object-family in compartment <object_storage_bucket_compartment_name>
With Virtual Node Pool:
Allow any-user to manage objects in compartment <object_storage_bucket_compartment_name> where all { request.principal.type = 'workload', request.principal.namespace = 'brie', request.principal.service_account = 'brie-reader', request.principal.cluster_id = '<cluster_ocid>'}
Allow any-user to manage objects in compartment <object_storage_bucket_compartment_name> where all { request.principal.type = 'workload', request.principal.namespace = 'brie', request.principal.service_account = 'brie-creator', request.principal.cluster_id = '<cluster_ocid>'}
  1. User Defined Steps
Allow dynamic-group <dynamic_group_name> to manage instance-agent-command-execution-family in compartment <instance_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage instance-agent-command-family in compartment <instance_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage instance-agent-plugins in compartment <instance_compartment_name>
Allow dynamic-group <dynamic_group_name> to manage objects in compartment <object_storage_bucket_compartment_name>
  1. Functions (Step Type: FUNCTIONS)
Allow dynamic-group <dynamic_group_name> to read fn-app in compartment <function_compartment_name>
Allow dynamic-group <dynamic_group_name> to read fn-function in compartment <function_compartment_name>
Allow dynamic-group <dynamic_group_name> to use fn-invocation in compartment <function_compartment_name>
  1. Integration-instance
Allow dynamic-group <dynamic_group_name> to manage integration-instance in compartment compartment_name

<Dynamic_Group_Name>を動的グループの名前に、<resource_compartment_name>を各リソース・タイプの適切なコンパートメント名に置き換えます。

前述のステップで作成したポリシーの詳細は、Full Stack Disaster Recoveryによって管理される他のサービスのポリシーを参照してください。

前述のステップで作成した動的グループに一致ルールを追加する方法の詳細は、「動的グループを定義するための一致ルールの作成」を参照してください。

前述のステップで作成した動的グループのポリシーにポリシー・ステートメントを追加する方法の詳細は、動的グループのポリシーの記述を参照してください。