Nota
- Questa esercitazione richiede l'accesso a Oracle Cloud. Per iscriverti a un account gratuito, consulta Inizia a utilizzare Oracle Cloud Infrastructure Free Tier.
- Utilizza valori di esempio per le credenziali, la tenancy e i compartimenti di Oracle Cloud Infrastructure. Al termine del laboratorio, sostituisci questi valori con quelli specifici del tuo ambiente cloud.
Integra Oracle Cloud Infrastructure Resource Manager con il processo di automazione
Introduzione
Il servizio Resource Manager di Oracle Cloud Infrastructure (OCI) automatizza la distribuzione e le operazioni di tutte le risorse OCI. Utilizzando il modello infrastructure-as-code (IaC), il servizio si basa su Terraform, uno standard di settore open source che consente ai tecnici di DevOps di sviluppare e distribuire la propria infrastruttura ovunque.
Una configurazione Terraform codifica l'infrastruttura nei file di configurazione dichiarativi. Il servizio OCI Resource Manager consente di condividere e gestire la configurazione dell'infrastruttura e i file di stato tra più team e piattaforme.
Attraverso OCI Resource Manager è possibile eseguire script Terraform nella console OCI. È anche possibile effettuare una chiamata REST o utilizzare l'interfaccia della riga di comando di Oracle Cloud Infrastructure (OCI CLI), espandendo così le possibilità di integrazione con strumenti di automazione come OCI Devops, Jenkins, GitHub e così via.
In questa esercitazione, automatizzeremo la distribuzione di un'istanza di Oracle Autonomous Database ottenendo la password amministratore del database in modo sicuro tramite i segreti di OCI Vault senza esporla nei file, in modo che l'utente di esecuzione di OCI Resource Manager disponga dell'accesso appropriato per creare il database e la password memorizzata.
Obiettivi
- Configurare l'automazione tramite Terraform in modo da poter creare le istanze con le credenziali di accesso appropriate, ma senza esporre informazioni riservate quali la password devono essere memorizzate in modo che solo gli utenti autorizzati possano utilizzarle nello script Terraform.
Prerequisiti
-
Utente all'interno di un gruppo di utenti senza alcun criterio. A questo utente verranno assegnate le autorizzazioni appropriate per eseguire Terraform in OCI Resource Manager.
-
Bucket di storage degli oggetti OCI in un compartimento specifico (se si desidera generare lo script Terraform in questo bucket).
-
Lo script Terraform verrà eseguito tramite OCI Resource Manager e l'utente deve disporre delle autorizzazioni per:
- Creare risorse nel compartimento.
- Crea un'istanza di Oracle Autonomous Database.
- Leggere una password del vault OCI.
- Esegue lo script Terraform.
Task 1: creare un segreto per Oracle Autonomous Database in OCI Vault
Verrà creata una password in OCI Vault per illustrare come configurare una nuova risorsa in Terraform senza esporre i dati riservati.
I segreti sono credenziali quali password, certificati, chiavi SSH o token di autenticazione utilizzati con i servizi OCI. La memorizzazione dei segreti in un vault OCI offre una sicurezza maggiore rispetto a quella che si potrebbe ottenere memorizzandoli altrove, ad esempio nei file di codice o di configurazione. Puoi recuperare i segreti dal servizio OCI Vault quando ne hai bisogno per accedere alle risorse o ad altri servizi.
Puoi creare segreti utilizzando OCI Console, OCI CLI o API. I contenuti segreti per un segreto vengono importati nel servizio da un'origine esterna. Il servizio OCI Vault memorizza i segreti nei vault.
Nota: per questo task, è necessario eseguire il login come utente amministratore in OCI Console. È necessario disporre dell'autorizzazione per creare una password nel vault OCI.
-
Eseguire il login a OCI Console, fare clic su Identità e sicurezza e Vault.
-
Selezionare il compartimento in cui si desidera memorizzare i segreti e fare clic su Crea vault.
-
Immettere un nome per il vault, confermare il compartimento e fare clic su Crea vault.
-
Verificare che il vault sia stato creato e creare una chiave. Fare clic su Chiavi di cifratura master e su Crea chiave.
-
Confermare il compartimento e immettere un nome per la chiave. Ad esempio, immettere
autonomouskey
come Nome e fare clic su Crea chiave.Verificare che la chiave sia stata creata.
-
Fare clic su Segreti e su Crea segreto.
-
Verrà creata la password Autonomous Admin. Immettere le informazioni seguenti e fare clic su Crea segreto.
- Compartimento: Seleziona compartimento.
- Nome: immettere il nome del primo segreto.
- Selezionare Generazione manuale segreti per includere la password.
- Modello tipo segreto: immettere
Plain-Text
. - Sommario segreto: immettere la password.
-
Avrai bisogno dell'OCID segreto. Per copiare l'OCID, fare clic su Copia.
Task 2: Creare criteri per l'utente OCI
In questa esercitazione si consideri il nome utente TestUser
incluso in un gruppo denominato TestGroup
. A questo punto, creare un criterio con il nome TestPolicy
.
Questo task è importante perché controlla tutti i privilegi necessari per garantire la sicurezza dell'automazione Terraform.
Nota: per questo task, è necessario eseguire il login con un utente amministratore in OCI.
-
Andare alla console OCI, fare clic su Identità e sicurezza e sui criteri.
-
Fare clic su Crea criterio.
-
Nella sezione Rendiconti, immettere i criteri riportati di seguito.
-
Questi criteri concedono l'autorizzazione a raggruppare
TestGroup
creato in precedenza per gestire uno stack e i job in OCI Resource Manager.- 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
-
Questo criterio consente di creare un'istanza di Oracle Autonomous Database nell'integrazione del compartimento.
- Allow group 'Default'/'TestGroup' to manage autonomous-database in compartment integration
-
Il gruppo può leggere la password memorizzata nel vault OCI tramite script Terraform.
- Allow group 'Default'/'TestGroup' to use secret-family in tenancy
-
Questo criterio consente di salvare gli script Terraform in un compartimento specifico.
- Allow group 'Default'/'TestGroup' to manage all-resources in compartment kubernetes
-
Questo criterio consente agli utenti di
TestGroup
di modificare il codice nell'editor di codice OCI.- Allow group 'Default'/'TestGroup' to use cloud-shell in tenancy
-
Task 3: Creare uno stack da un modello
Crea uno stack per un'istanza di Oracle Autonomous Database. Per questo possiamo usare un template. Il primo passo è eseguire il login come utente creato nel task 2.
-
Vai a OCI Console e fai clic sul menu hamburger.
-
Fare clic su Servizi per sviluppatori e Stack.
-
Selezionare il compartimento e fare clic su Crea stack.
-
Nella pagina Informazioni sullo stack selezionare Modello e fare clic su Seleziona modello per generare uno script Terraform per Oracle Autonomous Database.
-
Nella scheda Servizio selezionare Autonomous Transaction Processing Database e fare clic su Seleziona modello.
-
Puoi generare gli script Terraform e memorizzarli nel bucket di storage degli oggetti OCI. Selezionare Usa provider Terraform personalizzati, immettere il compartimento e il nome del bucket e salvare lo stack.
Lo stack è stato salvato.
-
Questo modello non legge il segreto memorizzato nel vault OCI. Per far sì che Terraform legga il segreto, è necessario modificare il codice.
Fare clic su Modifica e selezionare Modifica configurazione Terraform nell'editor di codice.
-
È possibile modificare il codice. Il codice predefinito genera una stringa casuale per la password.
-
File
main.tf
.È necessario aggiungere nuovi dati denominati
oci_secrets_secretbundle
e assegnarli ai seguenti attributi:admin_password
nelle sezioniautonomous_data_warehouse
eautonomous_database
.password
nella sezioneautonomous_database_wallet
.
-
main.tf
: sezioneautonomous_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
: sezioneautonomous_database
. -
main.tf
: sezioneautonomous_database_wallet
.
Aggiungere il codice seguente nel file
variables.tf
e sostituire l'OCID per il segreto generato nel task 1.variable "secret_ocid" { default = "ocid1.vaultsecret.oc1.iad.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" }
-
File
variables.tf
.
Nota: salvare i file. Spostare il cursore del mouse sullo stack (sul lato destro dell'editor, nel titolo Autonomous Transaction Processing....), fare clic con il pulsante destro del mouse e salvare il progetto. Se si esce senza salvare, l'esecuzione presuppone che si utilizzerà la stringa casuale nello script di codice originale.
-
Task 4: Test delle autorizzazioni
Puoi testare i criteri e vedere come hai il controllo delle istanze di OCI Resource Manager, OCI Vault e Oracle Autonomous Database in un compartimento specifico.
-
Eseguire il login a OCI Console con le credenziali dell'utente amministratore e rimuovere tutti i criteri per il gruppo
TestGroup
nel criterioTestPolicy
. Fare clic su Elimina e confermare. -
Ora, eseguire il login con l'utente nel gruppo
TestGroup
e non è possibile visualizzare lo stack, quindi non è possibile eseguirlo. -
Aggiungere le seguenti istruzioni con Utente amministratore.
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
Le istruzioni seguenti concedono all'utente in
TestGroup
le autorizzazioni per utilizzare lo stack di Resource Manager OCI. -
Abbiamo rimosso il privilegio per l'utente per creare un'istanza di Oracle Autonomous Database e leggere il segreto in OCI Vault. Quindi puoi eseguire il tuo stack senza successo. Per eseguire il test, fare clic su applica nella pagina dei dettagli dello stack.
-
Aggiungere le autorizzazioni di Oracle Autonomous Database e OCI Vault su
TestPolicy
.Allow group 'Default'/'TestGroup' to manage all-resources in compartment kubernetes Allow group 'Default'/'TestGroup' to manage autonomous-database in compartment integration
-
Fare clic su applica nella pagina dei dettagli dello stack per visualizzare il controllo di tutte le risorse senza dover esporre alcuna password.
Task 5: Chiama l'automazione di OCI Resource Manager con REST
Tutte le risorse in OCI dispongono di un'API REST OCI o di un comando CLI OCI per chiamare i servizi come viene eseguito nella console OCI.
Per ulteriori informazioni sull'API REST OCI, vedere API REST OCI. Puoi vedere la lista dei comandi CLI OCI qui: Oracle Cloud Infrastructure CLI Command Reference.
Ora possiamo scegliere di eseguire lo stack di Resource Manager OCI con un'API REST OCI o un comando CLI OCI. Per creare un job, vedere CreateJob oppure utilizzare il codice di esempio curl-oci.zip seguente con curl-oci.sh
preparato con i parametri OCI.
È necessario creare la firma per le richieste REST. Per ulteriori informazioni, consulta la guida alla chiamata REST di Oracle Cloud Infrastructure (OCI) con curl.
-
Creare un file denominato
STACK-RUN.sh
. Questa sarà la richiesta REST utilizzando uncurl-oci.sh
(questo strumento preparerà la stringa di autorizzazione con le informazioni OCI). -
Creare un file denominato
request.json
con l'ID stack e l'ID compartimento. -
Aprire il file
curl-oci.sh
e modificare i seguenti parametri. Questi parametri sono gli stessi dell'installazione CLI OCI.A questo punto, eseguire lo script.
Puoi vedere i risultati del successo.
Collegamenti correlati
Conferma
- Autore - Cristiano Hoshikawa (Solution Engineer Oracle LAD A-Team)
Altre risorse di apprendimento
Esplora altri laboratori su docs.oracle.com/learn o accedi a più contenuti gratuiti sulla formazione su Oracle Learning YouTube channel. Inoltre, visita education.oracle.com/learning-explorer per diventare Oracle Learning Explorer.
Per la documentazione del prodotto, visitare Oracle Help Center.
Integrate Oracle Cloud Infrastructure Resource Manager with Automation Process
F98156-01
May 2024