Hinweis:
- Dieses Tutorial erfordert Zugriff auf Oracle Cloud. Informationen zum Registrieren eines kostenlosen Accounts finden Sie unter Erste Schritte mit Oracle Cloud Infrastructure Free Tier.
- Es verwendet Beispielwerte für Oracle Cloud Infrastructure-Zugangsdaten, -Mandanten und -Compartments. Wenn Sie Ihre Übung abgeschlossen haben, ersetzen Sie diese Werte durch spezifische Werte für Ihre Cloud-Umgebung.
Oracle Cloud Infrastructure Resource Manager in den Automatisierungsprozess integrieren
Einführung
Der Oracle Cloud Infrastructure (OCI) Resource Manager-Service automatisiert das Deployment und die Vorgänge aller OCI-Ressourcen. Der Service verwendet das Modell "Infrastruktur als Code" (IaC) und basiert auf Terraform, einem Open-Source-Industriestandard, der es DevOps-Entwicklern ermöglicht, ihre Infrastruktur überall zu entwickeln und bereitzustellen.
Eine Terraform-Konfiguration kodiert Ihre Infrastruktur in deklarative Konfigurationsdateien. Mit dem OCI Resource Manager-Service können Sie Infrastrukturkonfiguration und Statusdateien über mehrere Teams und Plattformen hinweg gemeinsam verwenden und verwalten.
Über OCI Resource Manager können Sie Terraform-Skripte in der OCI-Konsole ausführen. Es ist auch möglich, einen REST-Aufruf durchzuführen oder die Oracle Cloud Infrastructure-Befehlszeilenschnittstelle (OCI-CLI) zu verwenden. Dadurch werden die Integrationsmöglichkeiten mit Automatisierungstools wie OCI Devops, Jenkins, GitHub usw. erweitert.
In diesem Tutorial automatisieren wir das Deployment einer Oracle Autonomous Database-Instanz, indem wir das Datenbank-Admin-Kennwort sicher über OCI Vault Secrets abrufen, ohne es in den Dateien anzugeben, sodass der OCI Resource Manager-Ausführungsbenutzer den richtigen Zugriff zum Erstellen der Datenbank und des gespeicherten Kennworts hat.
Ziele
- Konfigurieren Sie die Automatisierung über Terraform, sodass Sie Instanzen mit den entsprechenden Zugriffszugangsdaten erstellen können, ohne jedoch sensible Informationen wie Kennwort anzugeben, müssen gespeichert werden, damit nur autorisierte Benutzer sie im Terraform-Skript verwenden können.
Voraussetzungen
-
Ein Benutzer innerhalb einer Benutzergruppe ohne Policy. Dieser Benutzer erhält die entsprechenden Berechtigungen zum Ausführen von Terraform in OCI Resource Manager.
-
OCI Object Storage-Bucket in einem bestimmten Compartment (wenn Sie das Terraform-Skript in diesem Bucket generieren möchten).
-
Das Terraform-Skript wird über OCI Resource Manager ausgeführt, und der Benutzer muss über folgende Berechtigungen verfügen:
- Erstellen Sie Ressourcen im Compartment.
- Erstellen Sie eine Oracle Autonomous Database-Instanz.
- Lesen Sie ein OCI Vault-Kennwort.
- Führen Sie das Terraform-Skript aus.
Aufgabe 1: Secret für Oracle Autonomous Database in OCI Vault erstellen
Wir erstellen ein Kennwort in OCI Vault, um zu veranschaulichen, wie eine neue Ressource in Terraform konfiguriert wird, ohne sensible Daten anzugeben.
Secrets sind Zugangsdaten wie Kennwörter, Zertifikate, SSH-Schlüssel oder Authentifizierungstoken, die Sie mit OCI-Services verwenden. Das Speichern von Secrets in einem OCI-Vault ist sicherer als die Speicherung an anderer Stelle, wie z.B. in Code oder Konfigurationsdateien. Sie können Geheimnisse aus dem OCI Vault-Service abrufen, wenn Sie sie für den Zugriff auf Ressourcen oder andere Services benötigen.
Sie können Geheimnisse mit der OCI-Konsole, OCI-CLI oder API erstellen. Geheiminhalte für ein Secret werden aus einer externen Quelle in den Service importiert. Der OCI Vault-Service speichert Secrets in Vault.
Hinweis: Für diese Aufgabe müssen wir uns als Admin-Benutzer in der OCI-Konsole anmelden. Sie müssen über die Berechtigung zum Erstellen eines Kennworts in OCI Vault verfügen.
-
Melden Sie sich bei der OCI-Konsole an, und klicken Sie auf Identität und Sicherheit und Vault.
-
Wählen Sie das Compartment aus, in dem Sie die Secrets speichern möchten, und klicken Sie auf Vault erstellen.
-
Geben Sie einen Namen für den Vault ein, bestätigen Sie das Compartment, und klicken Sie auf Vault erstellen.
-
Bestätigen Sie, dass der Vault erstellt wurde, und erstellen Sie einen Schlüssel. Klicken Sie auf Masterschlüssel und Schlüssel erstellen.
-
Bestätigen Sie das Compartment, und geben Sie einen Namen für den Schlüssel ein. Beispiel: Geben Sie
autonomouskey
als Name ein, und klicken Sie auf Schlüssel erstellen.Vergewissern Sie sich, dass der Schlüssel erstellt wurde.
-
Klicken Sie auf Secrets und dann auf Secret erstellen.
-
Wir erstellen das Autonomous Admin-Kennwort. Geben Sie die folgenden Informationen ein, und klicken Sie auf Secret erstellen.
- Compartment: Compartment auswählen.
- Name: Geben Sie den Namen für das erste Secret ein.
- Wählen Sie Manuelle Secret-Generierung aus, um das Kennwort aufzunehmen.
- Secret-Typvorlage: Geben Sie
Plain-Text
ein. - Secret-Inhalt: Geben Sie Ihr Kennwort ein.
-
Sie benötigen die Secret-OCID. Um die OCID zu kopieren, klicken Sie auf Kopieren.
Aufgabe 2: Policys für den OCI-Benutzer erstellen
Berücksichtigen Sie in diesem Tutorial Ihren Benutzernamen TestUser
in einer Gruppe mit dem Namen TestGroup
. Erstellen Sie jetzt eine Policy mit dem Namen TestPolicy
.
Diese Aufgabe ist wichtig, da dadurch alle erforderlichen Berechtigungen kontrolliert werden, um die Sicherheit der Terraform-Automatisierung zu gewährleisten.
Hinweis: Für diese Aufgabe müssen wir uns mit einem Admin-Benutzer in OCI anmelden.
-
Gehen Sie zur OCI-Konsole, und klicken Sie auf ID und Sicherheit und Policys.
-
Klicken Sie auf Policy erstellen.
-
Geben Sie im Abschnitt Anweisungen die folgenden Policys ein.
-
Diese Policys erteilen die Berechtigung zum Gruppieren von
TestGroup
, das zuvor erstellt wurde, um einen Stack und Jobs in OCI Resource Manager zu verwalten.- Allow group 'Default'/'TestGroup' to manage orm-stacks in compartment integration - Allow group 'Default'/'TestGroup' to manage orm-jobs in compartment integration - Allow group 'Default'/'TestGroup' to read orm-config-source-providers in tenancy
-
Mit dieser Policy können Sie eine Oracle Autonomous Database-Instanz in der Compartment-Integration erstellen.
- Allow group 'Default'/'TestGroup' to manage autonomous-database in compartment integration
-
Die Gruppe kann das in OCI Vault gespeicherte Kennwort über Terraform-Skripte lesen.
- Allow group 'Default'/'TestGroup' to use secret-family in tenancy
-
Mit dieser Policy können Sie die Terraform-Skripte in einem bestimmten Compartment speichern.
- Allow group 'Default'/'TestGroup' to manage all-resources in compartment kubernetes
-
Mit dieser Policy können Benutzer von
TestGroup
Code im OCI-Codeeditor bearbeiten.- Allow group 'Default'/'TestGroup' to use cloud-shell in tenancy
-
Aufgabe 3: Stack aus einer Vorlage erstellen
Erstellen Sie einen Stack für eine Oracle Autonomous Database-Instanz. Dafür können wir eine Vorlage verwenden. Der erste Schritt ist die Anmeldung als Benutzer, der in Aufgabe 2 erstellt wurde.
-
Gehen Sie zur OCI-Konsole, und klicken Sie auf das Hamburger-Menü.
-
Klicken Sie auf Services für Entwickler und Stacks.
-
Wählen Sie das Compartment aus, und klicken Sie auf Stack erstellen.
-
Wählen Sie auf der Seite Stackinformationen die Option Vorlage aus, und klicken Sie auf Vorlage auswählen, um ein Terraform-Skript für Oracle Autonomous Database zu generieren.
-
Wählen Sie auf der Registerkarte Service die Option Autonomous Transaction Processing Database aus, und klicken Sie auf Select template.
-
Sie können die Terraform-Skripte generieren und im OCI Object Storage-Bucket speichern. Wählen Sie Benutzerdefinierte Terraform-Provider verwenden aus, geben Sie das Bucket Compartment und den Namen ein, und speichern Sie den Stack.
Ihr Stack wird gespeichert.
-
Diese Vorlage liest das in Ihrem OCI Vault gespeicherte Secret nicht. Damit Terraform das Secret lesen kann, müssen Sie den Code ändern.
Klicken Sie auf Bearbeiten, und wählen Sie Terraform-Konfiguration im Codeeditor bearbeiten aus.
-
Sie können den Code ändern. Der Standardcode generiert eine zufällige Zeichenfolge für das Kennwort.
-
Datei
main.tf
.Sie müssen neue Daten mit dem Namen
oci_secrets_secretbundle
hinzufügen und diese den folgenden Attributen zuweisen:admin_password
in den Abschnittenautonomous_data_warehouse
undautonomous_database
.password
im Abschnittautonomous_database_wallet
.
-
main.tf
: Abschnittautonomous_data_warehouse
.data "oci_secrets_secretbundle" "bundle" { secret_id = var.secret_ocid } admin_password = base64decode(data.oci_secrets_secretbundle.bundle.secret_bundle_content.0.content)
-
main.tf
: Abschnittautonomous_database
. -
main.tf
: Abschnittautonomous_database_wallet
.
Fügen Sie den folgenden Code in der Datei
variables.tf
hinzu, und ersetzen Sie die OCID für das in Aufgabe 1 generierte Secret.variable "secret_ocid" { default = "ocid1.vaultsecret.oc1.iad.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }
-
Datei
variables.tf
.
Hinweis: Speichern Sie Ihre Dateien. Bewegen Sie den Mauszeiger über Ihren Stack (rechts im Editor im Titel Autonomous Transaction Processing....), klicken Sie mit der rechten Maustaste, und speichern Sie Ihr Projekt. Wenn Sie fortfahren, ohne zu speichern, geht die Ausführung davon aus, dass Sie die zufällige Zeichenfolge im ursprünglichen Codeskript verwenden.
-
Aufgabe 4: Berechtigungen testen
Sie können die Policys testen und sehen, wie Sie die Kontrolle über die OCI Resource Manager-, OCI Vault- und Oracle Autonomous Database-Instanzen in einem bestimmten Compartment haben.
-
Melden Sie sich mit Ihren Zugangsdaten für den Admin-Benutzer bei der OCI-Konsole an, und entfernen Sie alle Policys für die Gruppe
TestGroup
in der PolicyTestPolicy
. Klicken Sie auf Löschen, und bestätigen Sie den Vorgang. -
Melden Sie sich jetzt mit Ihrem Benutzer in der Gruppe
TestGroup
an, und Sie können den Stack nicht sehen. Daher können Sie ihn nicht ausführen. -
Fügen Sie die folgenden Anweisungen mit dem Admin-Benutzer hinzu.
Allow group 'Default'/'TestGroup' to manage orm-stacks in compartment integration Allow group 'Default'/'TestGroup' to manage orm-jobs in compartment integration Allow group 'Default'/'TestGroup' to read orm-config-source-providers in tenancy Allow group 'Default'/'TestGroup' to manage all-resources in compartment kubernetes
Die folgenden Anweisungen erteilen Ihrem Benutzer in
TestGroup
Berechtigungen zur Verwendung des OCI Resource Manager-Stacks. -
Wir haben die Berechtigung für Ihren Benutzer entfernt, eine Oracle Autonomous Database-Instanz zu erstellen und das Secret in OCI Vault zu lesen. So können Sie Ihren Stack ausführen, aber ohne Erfolg. Klicken Sie zum Testen auf der Seite mit den Stackdetails auf Anwenden.
-
Fügen Sie Oracle Autonomous Database- und OCI Vault-Berechtigungen für
TestPolicy
hinzu.Allow group 'Default'/'TestGroup' to manage all-resources in compartment kubernetes Allow group 'Default'/'TestGroup' to manage autonomous-database in compartment integration
-
Klicken Sie auf der Seite mit den Stackdetails auf Anwenden, und Sie können sehen, dass Sie die Kontrolle über alle Ressourcen haben, ohne ein Kennwort anzugeben.
Aufgabe 5: OCI Resource Manager-Automatisierung mit REST aufrufen
Alle Ressourcen in OCI verfügen über eine OCI-REST-API oder einen OCI-CLI-Befehl zum Aufrufen von Services, wie sie in Ihrer OCI-Konsole ausgeführt werden.
Weitere Informationen zur OCI-REST-API finden Sie unter OCI-REST-API. Die Liste der OCI-CLI-Befehle wird hier angezeigt: Oracle Cloud Infrastructure-CLI-Befehlsreferenz.
Jetzt können wir den OCI Resource Manager-Stack mit einer OCI-REST-API oder einem OCI-CLI-Befehl ausführen. Informationen zum Erstellen eines Jobs finden Sie unter CreateJob. Sie können auch den folgenden Beispielcode curl-OCI.zip mit curl-OCI.sh
verwenden, der mit OCI-Parametern vorbereitet wurde.
Sie müssen die Signatur für Ihre REST-Anforderungen erstellen. Weitere Informationen finden Sie unter Oracle Cloud Infrastructure (OCI) REST-Aufrufdurchlauf mit curl.
-
Erstellen Sie eine Datei mit dem Namen
STACK-RUN.sh
. Dies ist Ihre REST-Anforderung mit einercurl-OCI.sh
(dieses Tool bereitet Ihre Autorisierungszeichenfolge mit Ihren OCI-Informationen vor). -
Erstellen Sie eine Datei namens
request.json
mit Ihrer Stack-ID und Compartment-ID. -
Öffnen Sie die Datei
curl-oci.sh
, und ändern Sie die folgenden Parameter. Diese Parameter entsprechen den Parametern der OCI-CLI-Installation.Führen Sie nun das Skript aus.
Die Erfolgsergebnisse werden angezeigt.
Verwandte Links
Bestätigungen
- Autor - Cristiano Hoshikawa (Oracle LAD A-Team Solution Engineer)
Weitere Lernressourcen
Lernen Sie andere Übungen auf docs.oracle.com/learn kennen, oder greifen Sie auf weitere kostenlose Lerninhalte im Oracle Learning YouTube Channel zu. Besuchen Sie außerdem education.oracle.com/learning-explorer, um Oracle Learning Explorer zu werden.
Produktdokumentation finden Sie im Oracle Help Center.
Integrate Oracle Cloud Infrastructure Resource Manager with Automation Process
F98152-01
May 2024