Resource Principals

DB-Systeme können Resource Principals zur Authentifizierung und zum Zugriff auf andere Oracle Cloud Infrastructure-Ressourcen verwenden. Um Resource Principals verwenden zu können, müssen Sie oder der Mandantenadministrator die Oracle Cloud Infrastructure-Policys und dynamischen Gruppen definieren, mit denen Principals auf Oracle Cloud Infrastructure-Ressourcen zugreifen können.

Resource Principal wird in den folgenden HeatWave-Servicefeatures verwendet:

  • Eigenes Zertifikat bereithalten: Ermöglicht DB-Systemen das Lesen der in Oracle Cloud Infrastructure (OCI) Certificates Service definierten Zertifikate.
  • Netzwerksicherheitsgruppen: Damit können DB-Systeme oder Lesereplikate Netzwerksicherheitsregeln verwenden, die in mindestens einer Netzwerksicherheitsgruppe angegeben sind.
  • HeatWave Lakehouse: Ermöglicht DB-Systemen das Lesen von Daten aus Object Storage.
  • Abfrageergebnisse in Object Storage exportieren: Ermöglicht dem HeatWave-Service den Export von Abfrageergebnissen in Object Storage.
  • Auf OCI Generative AI Service zugreifen: Ermöglicht HeatWave GenAI die Verwendung aller vortrainierten grundlegenden Modelle, die im OCI Generative AI-Service verfügbar sind.

Resource Principals bestehen aus zwei Komponenten:

Dynamische Gruppen

Mit dynamischen Gruppen können Sie HeatWave-Service-DB-Systeme als Principal-Darsteller gruppieren, ähnlich wie Benutzergruppen.

Sie können dann Policys erstellen, mit denen DB-Systeme in den dynamischen Gruppen API-Aufrufe für Oracle Cloud Infrastructure-Services wie Zertifikate oder Object Storage ausführen können. Die Mitgliedschaft in der Gruppe wird durch eine Gruppe von definierten Kriterien bestimmt, die als Vergleichsregeln bezeichnet werden.

Das folgende Beispiel zeigt eine Übereinstimmungsregel, die alle DB-Systeme im definierten Compartment enthält:
"ALL{resource.type='mysqldbsystem', resource.compartment.id = 'ocid1.compartment.oc1..alphanumericString'}"

Weitere Informationen finden Sie unter Abgleichsregeln zum Definieren dynamischer Gruppen schreiben.

Dynamische Gruppen erfordern einen Namen, eine Beschreibung und eine Übereinstimmungsregel. Siehe Dynamische Gruppen erstellen.

Policys

Policys definieren, was Ihre Gruppen oder dynamischen Gruppen tun können und was nicht.

Policy für Bring Your Own Certificate definieren

Damit DB-Systeme über den Certificates-Service auf Zertifikate zugreifen können, müssen Sie eine Policy definieren, mit der die dynamische Gruppe die Zertifikate lesen kann.

Beispiel: Die folgende Policy erteilt der dynamischen Gruppe MYSQL_DG das Lesen der Sicherheitszertifikate in Compartment C8:
Allow dynamic-group MYSQL_DG to read leaf-certificate-family in compartment C8

Policy für Netzwerksicherheitsgruppen definieren

Um Netzwerksicherheitsgruppen zu DB-Systemen hinzuzufügen oder Replikate zu lesen, müssen Sie eine Policy definieren, mit der die dynamische Gruppe die folgenden Berechtigungen verwenden kann:
  • NETWORK_SECURITY_GROUP_UPDATE_MEMBERS im Compartment mit den Netzwerksicherheitsgruppen
  • VNIC_CREATE, VNIC_UPDATE, VNIC_ASSOCIATE_NETWORK_SECURITY_GROUP, VNIC_DISASSOCIATE_NETWORK_SECURITY_GROUP, VNIC_ASSOCIATE_NETWORK_SECURITY_GROUP im Compartment des Subnetzes des DB-Systems.
Beispiel: Die folgenden Policys erteilen der dynamischen Gruppe MYSQL_DG die erforderlichen Berechtigungen, um die Netzwerksicherheitsgruppen in Compartment C8 mit dem Subnetz des DB-Systems in Compartment C9 zu verwenden:
Allow dynamic-group MYSQL_DG to {NETWORK_SECURITY_GROUP_UPDATE_MEMBERS} 
    in compartment C8
Allow dynamic-group MYSQL_DG to {VNIC_CREATE, VNIC_UPDATE, VNIC_ASSOCIATE_NETWORK_SECURITY_GROUP, 
    VNIC_DISASSOCIATE_NETWORK_SECURITY_GROUP} in compartment C9
Alternativ können Sie die folgenden Policys erstellen, die Principals enthalten, ohne eine dynamische Gruppe zu verwenden:
Allow any-user to {NETWORK_SECURITY_GROUP_UPDATE_MEMBERS} in compartment C8 where all 
    {request.principal.type='mysqldbsystem', request.resource.compartment.id='ocid1.compartment.oc1..alphanumericString'}
Allow any-user to {VNIC_CREATE, VNIC_UPDATE, VNIC_ASSOCIATE_NETWORK_SECURITY_GROUP, 
    VNIC_DISASSOCIATE_NETWORK_SECURITY_GROUP} in compartment C9 where all 
    {request.principal.type='mysqldbsystem', request.resource.compartment.id='ocid1.compartment.oc1..alphanumericString'}

Policy für HeatWave Lakehouse definieren

Damit HeatWave Lakehouse auf Object Storage zugreifen kann, müssen Sie eine Policy definieren, mit der die dynamische Gruppe auf Buckets und deren Inhalte zugreifen kann.

Beispiel: Die folgende Policy erteilt der dynamischen Gruppe MYSQL_DG schreibgeschützten Zugriff auf die Buckets und Objekte, die in diesen Buckets in Compartment C8 enthalten sind:
Allow dynamic-group MYSQL_DG to read buckets in compartment C8
Allow dynamic-group MYSQL_DG to read objects in compartment C8

Policy zum Exportieren von Abfrageergebnissen in Object Storage definieren

Damit HeatWave Abfrageergebnisse in Object Storage exportieren kann, muss die Policy der dynamischen Gruppe Berechtigungen zum Erstellen und Löschen von Objekten im Bucket erteilen.

Beispiel: Die folgende Policy erteilt der dynamischen Gruppe MYSQL_DG Berechtigungen zum Erstellen, Prüfen und Löschen von Objekten in einem beliebigen Bucket in Compartment C8:
Allow dynamic-group MYSQL_DG to read buckets in compartment C8
Allow dynamic-group MYSQL_DG to manage objects in compartment C8 where 
  any {request.permission='OBJECT_CREATE', request.permission='OBJECT_INSPECT', 
       request.permission='OBJECT_DELETE'}
Sie können die Berechtigungen auf einen bestimmten Bucket beschränken. Die folgende Policy erteilt der dynamischen Gruppe MYSQL_DG Berechtigungen zum Erstellen, Prüfen und Löschen von Objekten im Bucket BucketA in Compartment C8:
Allow dynamic-group MYSQL_DG to read buckets in compartment C8
Allow dynamic-group MYSQL_DG to manage objects in compartment C8 where 
  all {target.bucket.name='BucketA',
    any {request.permission='OBJECT_CREATE', request.permission='OBJECT_INSPECT', 
         request.permission='OBJECT_DELETE'} }

Policy für den Zugriff auf den OCI Generative AI-Service definieren

Damit HeatWave GenAI alle vortrainierten grundlegenden Modelle verwendet, die in OCI Generative AI verfügbar sind, müssen Sie eine Policy definieren, mit der die dynamische Gruppe auf den OCI Generative AI-Service zugreifen kann.

Beispiel: Die folgende Policy erteilt der dynamischen Gruppe MYSQL_DG Zugriff auf den OCI Generative AI-Service in Compartment C8:
Allow dynamic-group MYSQL_DG to use generative-ai-chat in compartment C8
Allow dynamic-group MYSQL_DG to use generative-ai-text-embedding in compartment C8
Hinweis

Die Nutzung von OCI Generative AI wird im ausgewählten Compartment gemessen und abgerechnet.
Weitere Informationen finden Sie unter Policys für dynamische Gruppen schreiben.