リソース・プリンシパル
Oracleでは、追加の機能を使用するために、Full Stack Disaster Recoveryのリソース・プリンシパル・ベースの認証を使用することをお薦めします。リソース・プリンシパルを使用して、他のOracle Cloud Infrastructureリソースを認証およびアクセスします。リソース・プリンシパルを使用するには、ユーザーまたはテナンシ管理者が、プリンシパルがOracle Cloud InfrastructureリソースにアクセスできるようにするOracle Cloud Infrastructureポリシーおよび動的グループを定義する必要があります。
Oracle Cloud Infrastructure (OCI) Full Stack Disaster Recoveryのリソース・プリンシパル認証を構成するには、次の詳細なステップに従います。
- 次のように動的グループを作成し、照合ルールを定義します。
動的グループを使用すると、OCIリソースをグループ化して、それらをまとめて権限を割り当てることができます。動的グループ内で照合ルールを定義すると、含めるリソースが指定されます。
OCIコンソールに移動します。
- OCIアカウントにサインインします
- ナビゲーション・メニューを開き、「Identity & Security」→「Domains」→「[Your Domain]」→「Groups」→「Dynamic Groups」を選択します。
新規動的グループの作成:
- 「動的グループの作成」をクリックします。
- 意味のわかりやすい名前および説明を指定します。
- 「一致ルール」セクションで、「次に定義したルールと一致」を選択します。この設定により、指定したルールのいずれかと一致するリソースが動的グループに確実に含められます。
動的グループ一致ルール
「任意のルールの照合」ラジオ・ボタンを選択し、次のルールを個別に追加します。
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の動的グループでの一致ルールのガイドラインを参照してください。
- 動的グループのIAMポリシーを次のように作成します:
IAMポリシーは、DR操作中にリソースを管理するために必要な権限を動的グループに付与します。
「ポリシー」にナビゲートします:
OCIコンソールで、「Identity & Security」→「Domains」→「[Your Domain]」→「Policies」に移動します。
新規のポリシーの作成:
- ポリシーの作成をクリックします。
- ポリシーの名前および説明を指定します。
- ポリシー・ビルダーで、必要な権限を付与する文を追加します。
ポリシー・ステートメント:
必要なポリシー・ステートメントは、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
Volume Groups
Allow dynamic-group <dynamic_group_name> to manage volume-family in compartment <volume_group_compartment_name>(Include Vault policies from above)
File Systems
Allow dynamic-group <dynamic_group_name> to manage file-family in compartment <file_system_compartment_name>(Include Vault policies from above)
Object Storage Buckets
Allow dynamic-group <dynamic_group_name> to manage object-family in compartment <object_storage_bucket_compartment_name>
Databases
Allow dynamic-group <dynamic_group_name> to manage databases in compartment <database_compartment_name>(Include Vault policies from above)
Autonomous Database
Allow dynamic-group <dynamic_group_name> to manage autonomous-database-family in compartment <autonomous_database_compartment_name>
(Include Vault policies from above)
Autonomous Container Database
Allow dynamic-group <dynamic_group_name> to manage autonomous-container-databases in compartment <autonomous_container_database_compartment_name>
MySQL DB Systems
Allow dynamic-group <dynamic_group_name> to manage mysql-family in compartment <mysql_compartment_name>
Load Balancers
Allow dynamic-group <dynamic_group_name> to manage load-balancers in compartment <load_balancer_compartment_name>
Network Load Balancers
Allow dynamic-group <dynamic_group_name> to manage network-load-balancers in compartment <network_load_balancer_compartment_name>
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>'}
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>
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>
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によって管理される他のサービスのポリシーを参照してください。
前述のステップで作成した動的グループに一致ルールを追加する方法の詳細は、「動的グループを定義するための一致ルールの作成」を参照してください。
前述のステップで作成した動的グループのポリシーにポリシー・ステートメントを追加する方法の詳細は、動的グループのポリシーの記述を参照してください。