リソース・プリンシパル

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. ナビゲーション・メニューを開き、「アイデンティティとセキュリティ」→「ドメイン」→「自分のドメイン」→「グループ」→「動的グループ」を選択します。
新規動的グループの作成:
  1. 「動的グループの作成」をクリックします。
  2. 意味のわかりやすい名前および説明を指定します。
  3. 「一致ルール」セクションで、「次に定義されている任意のルールと一致」を選択します。この設定により、指定したいずれかのルールに一致するリソースが動的グループに含まれます。

動的グループ一致ルール

「Match Any Rules」ラジオ・ボタンを選択し、次のルールを個別に追加します。
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の動的グループでのルールの照合に関するガイドラインを参照してください。

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

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

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

OCIコンソールで、「アイデンティティとセキュリティ」→「ドメイン」→「[自分のドメイン]」→「ポリシー」に移動します。

新規のポリシーの作成:

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

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

必要なポリシー・ステートメントは、フル・スタック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-database-family in compartment <autonomous_container_database_compartment_name>
Allow dynamic-group <dynamic_group_name> to update autonomous-vmclusters in compartment <autonomous_container_database_compartment_name>
Allow dynamic-group <dynamic_group_name> to update autonomousContainerDatabaseDataguardAssociations 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_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>

詳細は、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のポリシー・ステートメントのガイドライン:

フル・スタック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
タグ付け(対象: すべてのリソース):
Allow dynamic-group <dynamic_group_name> to use tag-namespaces in
    tenancy

ディザスタ・リカバリ・サービス・リソース(DR構成およびアクション)の場合:

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
ログ・ストレージ(OKEクラスタ、MySQL DBシステム、DR計画実行の場合):
Allow dynamic-group <dynamic_group_name> to manage object-family in compartment
      <object_storage_bucket_compartment_name>
リソース・メンバー・タイプ固有のポリシー:
  1. コンピュート・インスタンス(移動可能および移動不可):
    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>
  2. ボリューム・グループ
    Allow dynamic-group <dynamic_group_name> to manage volume-family in compartment <volume_group_compartment_name>(Include Vault policies from above)
  3. ファイル・システム
    Allow dynamic-group <dynamic_group_name> to manage file-family in compartment <file_system_compartment_name>(Include Vault policies from above)
  4. オブジェクト・ストレージ・バケット
    Allow dynamic-group <dynamic_group_name> to manage object-family in compartment <object_storage_bucket_compartment_name>
  5. データベース
    Allow dynamic-group <dynamic_group_name> to manage databases in compartment <database_compartment_name>(Include Vault policies from above)
  6. Autonomous Database
    Allow dynamic-group <dynamic_group_name> to manage autonomous-database-family in compartment <autonomous_database_compartment_name>
    (Include Vault policies from above)
  7. Autonomous Container Database
    Allow dynamic-group <dynamic_group_name> to manage autonomous-database-family 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 update autonomous-vmclusters in compartment <autonomous_container_database_compartment_name>
    Allow dynamic-group <dynamic_group_name> to update autonomousContainerDatabaseDataguardAssociations in compartment <autonomous_container_database_compartment_name>
  8. MySQL DBシステム
    Allow dynamic-group <dynamic_group_name> to manage mysql-family in compartment <mysql_compartment_name>
  9. ロード・バランサー
    Allow dynamic-group <dynamic_group_name> to manage load-balancers in compartment <load_balancer_compartment_name>
  10. ネットワーク・ロード・バランサ
    Allow dynamic-group <dynamic_group_name> to manage network-load-balancers in compartment <network_load_balancer_compartment_name>
  11. OKEクラスタ
    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>'}
  12. ユーザー定義ステップ
    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>
  13. 関数(ステップ・タイプ: 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>

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

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

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

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