Nota

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.

architettura

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

Prerequisiti

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.

  1. Eseguire il login a OCI Console, fare clic su Identità e sicurezza e Vault.

    img_10.png

  2. Selezionare il compartimento in cui si desidera memorizzare i segreti e fare clic su Crea vault.

    img_29.png

  3. Immettere un nome per il vault, confermare il compartimento e fare clic su Crea vault.

    img_11.png

  4. Verificare che il vault sia stato creato e creare una chiave. Fare clic su Chiavi di cifratura master e su Crea chiave.

    img_12.png

  5. Confermare il compartimento e immettere un nome per la chiave. Ad esempio, immettere autonomouskey come Nome e fare clic su Crea chiave.

    img_13.png

    Verificare che la chiave sia stata creata.

    img_14.png

  6. Fare clic su Segreti e su Crea segreto.

    img_15.png

  7. 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.

    img_16.png

  8. Avrai bisogno dell'OCID segreto. Per copiare l'OCID, fare clic su Copia.

    img_17.png

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.

  1. Andare alla console OCI, fare clic su Identità e sicurezza e sui criteri.

    img_18.png

  2. Fare clic su Crea criterio.

    img_19.png

  3. 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
      

    cloud_shell.png

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.

  1. Vai a OCI Console e fai clic sul menu hamburger.

    img_1.png

  2. Fare clic su Servizi per sviluppatori e Stack.

    img_2.png

  3. Selezionare il compartimento e fare clic su Crea stack.

    CleanShot 2024-04-15 alle 07.47.32.png

  4. Nella pagina Informazioni sullo stack selezionare Modello e fare clic su Seleziona modello per generare uno script Terraform per Oracle Autonomous Database.

    CleanShot 2024-04-15 alle 07.48.19.png

  5. Nella scheda Servizio selezionare Autonomous Transaction Processing Database e fare clic su Seleziona modello.

    CleanShot 2024-04-15 alle 07.49.57.png

  6. 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.

    CleanShot 2024-04-15 alle 07.51.23.png

    Lo stack è stato salvato.

    CleanShot 2024-04-15 alle 07.54.01.png

  7. 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.

    img_3.png

  8. È possibile modificare il codice. Il codice predefinito genera una stringa casuale per la password.

    • File main.tf.

      CleanShot 2024-04-15 alle 08.05.40.png

      CleanShot 2024-04-15 alle 08.08.32.png

      È necessario aggiungere nuovi dati denominati oci_secrets_secretbundle e assegnarli ai seguenti attributi:

      • admin_password nelle sezioni autonomous_data_warehouse e autonomous_database.
      • password nella sezione autonomous_database_wallet.
    • main.tf: sezione autonomous_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)
      

      CleanShot 2024-04-15 alle 08.28.07.png

    • main.tf: sezione autonomous_database.

      img_4.png

    • main.tf: sezione autonomous_database_wallet.

      img_5.png

      CleanShot 2024-04-15 alle 08.30.15 substituir.png

    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.

      CleanShot 2024-04-15 alle 08.30.52.png

    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.

  1. Eseguire il login a OCI Console con le credenziali dell'utente amministratore e rimuovere tutti i criteri per il gruppo TestGroup nel criterio TestPolicy. Fare clic su Elimina e confermare.

    img_7.png

  2. Ora, eseguire il login con l'utente nel gruppo TestGroup e non è possibile visualizzare lo stack, quindi non è possibile eseguirlo.

    CleanShot 2024-04-15 alle 20.02.33.png

  3. 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
    

    img_8.png

    Le istruzioni seguenti concedono all'utente in TestGroup le autorizzazioni per utilizzare lo stack di Resource Manager OCI.

    CleanShot 2024-04-15 alle 20.12.55.png

  4. 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.

    CleanShot 2024-04-15 alle 20.16.39.png

    CleanShot 2024-04-15 alle 20.18.40.png

  5. 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
    

    img_9.png

  6. Fare clic su applica nella pagina dei dettagli dello stack per visualizzare il controllo di tutte le risorse senza dover esporre alcuna password.

    CleanShot 2024-04-15 alle 21.34.57.png

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.

img_20.png

È necessario creare la firma per le richieste REST. Per ulteriori informazioni, consulta la guida alla chiamata REST di Oracle Cloud Infrastructure (OCI) con curl.

  1. Creare un file denominato STACK-RUN.sh. Questa sarà la richiesta REST utilizzando un curl-oci.sh (questo strumento preparerà la stringa di autorizzazione con le informazioni OCI).

    img_1.png

  2. Creare un file denominato request.json con l'ID stack e l'ID compartimento.

    img.png

  3. Aprire il file curl-oci.sh e modificare i seguenti parametri. Questi parametri sono gli stessi dell'installazione CLI OCI.

    img_2.png

    A questo punto, eseguire lo script.

    img_3.png

    Puoi vedere i risultati del successo.

    img_4.png

Conferma

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.