Ressourcen-Principals

Oracle empfiehlt die Verwendung der Resource-Principal-basierten Authentifizierung für Full Stack Disaster Recovery, um zusätzliche Features und Funktionen zu verwenden. Verwenden Sie Resource Principals, um andere Oracle Cloud Infrastructure-Ressourcen zu authentifizieren und darauf zuzugreifen. Um Resource Principals verwenden zu können, müssen Sie oder Ihr Mandantenadministrator die Oracle Cloud Infrastructure-Policys und dynamischen Gruppen definieren, mit denen Principals auf Oracle Cloud Infrastructure-Ressourcen zugreifen können.

Um die Resource-Principal-Authentifizierung für Oracle Cloud Infrastructure (OCI) Full Stack Disaster Recovery zu konfigurieren, gehen Sie wie folgt vor:

1. Dynamische Gruppen erstellen und Zuordnungsregeln wie folgt definieren:

Mit einer dynamischen Gruppe können Sie OCI-Ressourcen gruppieren, sodass ihnen kollektiv Berechtigungen zugewiesen werden können. Durch das Definieren von Übereinstimmungsregeln innerhalb der dynamischen Gruppe wird festgelegt, welche Ressourcen einbezogen werden.

Navigieren Sie zur OCI-Konsole:
  1. Bei OCI-Account anmelden.
  2. Öffnen Sie das Navigationsmenü und wählen Sie Identität & Sicherheit > Domains > [Ihre Domain] > Gruppen > Dynamische Gruppen.
Neue dynamische Gruppe erstellen:
  1. Klicken Sie auf Dynamische Gruppe erstellen.
  2. Geben Sie einen aussagekräftigen Namen und eine Beschreibung an.
  3. Wählen Sie im Abschnitt Übereinstimmungsregeln die Option Mit unten definierten Regeln abgleichen aus. Mit dieser Einstellung wird sichergestellt, dass Ressourcen, die einer der angegebenen Regeln entsprechen, in die dynamische Gruppe aufgenommen werden.

Vergleichsregeln für dynamische Gruppen:

Aktivieren Sie das Optionsfeld {\b Match Any Rules}, und fügen Sie die folgenden Regeln einzeln hinzu.
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>'}

Dynamische Gruppe speichern:

Nachdem Sie die Abgleichsregeln definiert haben, klicken Sie auf Erstellen, um die dynamische Gruppe zu speichern.

Weitere Informationen finden Sie unter Richtlinien für Abgleichsregeln in dynamischen Gruppen für Oracle Cloud Infrastructure (OCI) Full Stack Disaster Recovery.

2. Erstellen Sie die IAM-Policys für die dynamische Gruppe wie folgt:

IAM-Policys erteilen der dynamischen Gruppe die erforderlichen Berechtigungen zum Verwalten von Ressourcen während DR-Vorgängen.

Zu Policys navigieren:

Gehen Sie in der OCI-Konsole zu "Identität und Sicherheit > Domains > [Ihre Domain] > Policys".

Neue Policy erstellen:

  1. Klicken Sie auf Policy erstellen.
  2. Geben Sie einen Namen und die Beschreibung für die Policy an.
  3. Fügen Sie in Policy Builder Anweisungen hinzu, um die erforderlichen Berechtigungen zu erteilen.

Policy-Anweisungen:

Die erforderlichen Policy-Anweisungen hängen von den Ressourcentypen ab, die von Full Stack DR verwaltet werden.

Ersetzen Sie <dynamic_group_name> und <resource_compartment_name> durch die tatsächlichen Namen der dynamischen Gruppe und des Compartments.

Alle Policy-Anweisungen:

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>

Weitere Informationen finden Sie unter Richtlinien für Policy-Anweisungen für Oracle Cloud Infrastructure (OCI) Full Stack Disaster Recovery

Prüfen und erstellen:

Nachdem Sie die erforderlichen Anweisungen hinzugefügt haben, prüfen Sie die Policy, und klicken Sie auf Erstellen, um sie anzuwenden.

Durch die folgenden Schritte können Sie die Resource Principal-Authentifizierung für OCI Full Stack Disaster Recovery einrichten und so eine sichere und effiziente Verwaltung Ihrer Disaster Recovery-Vorgänge ermöglichen.

Referenz:

Richtlinien für den Abgleich von Regeln in dynamischen Gruppen für Oracle Cloud Infrastructure (OCI) Full Stack Disaster Recovery

Zuordnungsregeln definieren:

Richten Sie die Ressourcenabgleichsregeln an dem Ressourcentyp aus, den Sie mit dem Full Stack Disaster Recovery-Service schützen möchten.

Abgleichsregeln für DR-Schutzgruppen:

Dies ist ein erforderlicher Schritt, da dies der Resource Principal ist, der hauptsächlich für die DR-Konfiguration und -Ausführung mit Resource Principal verwendet wird

Alle DR-Schutzgruppen in einem bestimmten Compartment:

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.

Alle DR-Schutzgruppen über mehrere Compartments hinweg:

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

Alle DR-Schutzgruppen in allen Compartments:

All {resource.type='drprotectiongroup'}

Abgleichsregeln für Compute-Instanzen:

Dies ist erforderlich, wenn Compute-Instanzen, entweder gleitende oder nicht gleitende Mitglieder, in der DR-Schutzgruppe vorhanden sind. Verwenden Sie die folgenden Regeln, um Compute-Instanzen in Ihre DR-Konfiguration aufzunehmen:

Alle Instanzen in einem bestimmten Compartment:
Any {instance.compartment.id = '<instance_compartment_ocid>'}
Replace <instance_compartment_ocid> with your compute instance compartment OCID

Instanzen über mehrere Compartments hinweg:

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

Übereinstimmungsregeln für OKE-Cluster und MySQL-DB-Systeme:

Dies ist erforderlich, wenn Sie OKE-Cluster- oder MySQL-DB-Systemmitglieder in der DR-Schutzgruppe haben.

Um OKE-Cluster und MySQL-DB-Systeme zu schützen, verwenden Sie:
Hinweis

Disaster-Recovery-Konfiguration und -Ausführungen werden über Compute-Containerinstanzen ausgeführt

Alle OKE-Clusterinstanzen in einem bestimmten Compartment:

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

Alle MySQL-DB-Systeme in einem bestimmten Compartment:

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

Alle Compute-Containerinstanzen unabhängig vom Compartment (gilt für alle relevanten Ressourcen):

All {resource.type='computecontainerinstance'} 

Diese Regeln stellen sicher, dass eine der angegebenen Bedingungen übereinstimmen kann, sodass die Einbeziehung von Ressourcen flexibel ist.

Richtlinien für Policy-Anweisungen für Oracle Cloud Infrastructure (OCI) Full Stack Disaster Recovery:

Um eine nahtlose Verwaltung von Ressourcen mit Full Stack DR zu ermöglichen, richten Sie IAM-Policys für Ihre dynamische Gruppe ein. Beispiele für verschiedene Elementtypen:

Allgemeine Ressourcen-Policys (für alle Mitgliedstypen anwendbar)

Networking (für: Compute-Instanzen, autonome DB, Load Balancer, Dateisysteme, OKE-Cluster):

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 (für: Compute-Instanzen, autonome DB, Volume-Gruppen, Dateisysteme, OKE-Cluster):

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 (für: Alle Ressourcen):
Allow dynamic-group <dynamic_group_name> to use tag-namespaces in
    tenancy

Für Disaster Recovery-Serviceressourcen (DR-Konfiguration und -Aktionen):

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
Logspeicher (für: OKE-Cluster, MySQL-DB-Systeme, DR-Planausführung):
Allow dynamic-group <dynamic_group_name> to manage object-family in compartment
      <object_storage_bucket_compartment_name>
Spezifische Policys für Ressourcenmitgliedsarten:
  1. Compute-Instanzen (beweglich und nicht beweglich):
    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. Volume-Gruppen
    Allow dynamic-group <dynamic_group_name> to manage volume-family in compartment <volume_group_compartment_name>(Include Vault policies from above)
  3. Dateisysteme
    Allow dynamic-group <dynamic_group_name> to manage file-family in compartment <file_system_compartment_name>(Include Vault policies from above)
  4. Objektspeicher-Buckets
    Allow dynamic-group <dynamic_group_name> to manage object-family in compartment <object_storage_bucket_compartment_name>
  5. Datenbanken
    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. Autonome Containerbank
    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-Systeme
    Allow dynamic-group <dynamic_group_name> to manage mysql-family in compartment <mysql_compartment_name>
  9. Load Balancer
    Allow dynamic-group <dynamic_group_name> to manage load-balancers in compartment <load_balancer_compartment_name>
  10. Network Load Balancer
    Allow dynamic-group <dynamic_group_name> to manage network-load-balancers in compartment <network_load_balancer_compartment_name>
  11. OKE-Cluster
    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. Benutzerdefinierte Schritte
    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. Funktionen (Schrittart: FUNKTIONEN)
    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>

Ersetzen Sie <Dynamic_Group_Name> durch den Namen der dynamischen Gruppe und <resource_compartment_name> durch den entsprechenden Compartment-Namen für jeden Ressourcentyp.

Weitere Informationen zu den im obigen Schritt erstellten Policys finden Sie unter Policys für andere Services, die von Full Stack Disaster Recovery verwaltet werden.

Weitere Informationen zum Hinzufügen von Übereinstimmungsregeln in dynamischen Gruppen, die im obigen Schritt erstellt wurden, finden Sie unter Zuordnungsregeln zum Definieren dynamischer Gruppen schreiben.

Weitere Informationen zum Hinzufügen von Policy-Anweisungen in den Policys für dynamische Gruppen, die im obigen Schritt erstellt wurden, finden Sie unter Policys für dynamische Gruppen schreiben.