Configurazione di Terraform per Secrets Manager

Terraform su IBM Cloud consente la creazione prevedibile e coerente di servizi IBM Cloud in modo da poter costruire rapidamente ambienti cloud complessi e multi livello che seguono i principi di Infrastructure as Code ( IaC ). Analogamente a quanto avviene con la CLI, l’API e gli SDK di IBM Cloud, è possibile automatizzare la creazione, l’aggiornamento e l’eliminazione delle istanze di Secrets Manager utilizzando il linguaggio di configurazione di HashiCorp (HCL).

Cerchi una soluzione Terraform gestita su IBM Cloud? Prova IBM Cloud® Schematics. Con Schematics è possibile utilizzare il linguaggio di scripting Terraform che si conosce. Ma non è necessario preoccuparsi di configurare e mantenere la linea di comando di Terraform e il plug-in IBM Cloud Provider. Schematics fornisce anche modelli Terraform predefiniti che si possono installare facilmente dal catalogo IBM Cloud.

Installazione di Terraform e configurazione di risorse per Secrets Manager

Prima di poter creare un'autorizzazione utilizzando Terraform, assicurati di aver completato la seguente procedura:

  • Assicurati di disporre dell'accesso richiesto per creare e gestire le risorse Secrets Manager.
  • Installa la CLI Terraform e configurare il plug-in del provider IBM Cloud per Terraform. Per ulteriori informazioni, vedi l'esercitazione Introduzione a Terraform su IBM Cloud. Il plug-in astrae le API IBM Cloud utilizzate per completare questa attività.
  • Crea un file di configurazione Terraform denominato “ main.tf ”. In questo file, si definiscono le risorse utilizzando il linguaggio di configurazione HashiCorp. Per ulteriori informazioni, vedi la documentazione Terraform.
  1. Dopo aver terminato la creazione del file di configurazione, inizializza la CLI Terraform. Per ulteriori informazioni, consultare la sezione Inizializzazione delle directory di lavoro.

    terraform init
    
  2. Crea un'istanza Secrets Manager utilizzando l'argomento della risorsa ibm_resource_instance nel file main.tf.

    • L'istanza Secrets Manager nel seguente esempio è denominata secrets-manager-london e viene creata con il piano di prova nella regione eu-gb. Al user@ibm.com viene assegnato il ruolo di amministratore nella politica di accesso IAM. Per altre regioni supportate, vedi Regioni ed endpoint. Le opzioni del piano includono trial e standard.
        resource "ibm_resource_instance" "sm_instance" {
            name = "Secrets Manager-London"
            service = "secrets-manager"
            plan = "trial"
            location = "eu-gb"
            timeouts {
             create = "60m"
             delete = "2h"
         },
        }
    

    Per visualizzare un elenco completo degli attributi supportati, vedere ibm_resource_instance.

    Facoltativamente, puoi creare un'origine dati per richiamare le informazioni su un'istanza Secrets Manager esistente da IBM Cloud, immettendo il seguente comando.

         data "ibm_resource_instance" "sm_resource_instance" {
             name              = "Secrets Manager-London"
             location          = "eu-gb"
             service           = "secrets-manager"
         }
    

    Per un elenco completo degli attributi supportati, consultare ibm_resource_instance.

  3. Eseguire il provisioning delle risorse dal file main.tf. Per ulteriori informazioni, vedi Provisioning dell'infrastruttura con Terraform.

    1. Eseguire terraform plan per generare un piano di esecuzione Terraform per visualizzare in anteprima le azioni proposte.
         terraform plan
    
    1. Eseguire terraform apply per creare le risorse definite nel piano.
         terraform apply
    
  4. Definisci i valori locali per la tua istanza Secrets Manager da utilizzare quando stai creando le risorse.

         locals {
             instance_id = data.ibm_resource_instance.sm_resource_instance.guid
             region = data.ibm_resource_instance.sm_resource_instance.location
         }
    
  5. Dall'elenco di risorse IBM Cloud nell'IU, seleziona l'istanza Secrets Manager che hai creato e prendi nota dell'ID istanza.

  6. Verificare che la politica di accesso sia stata assegnata correttamente. Per ulteriori informazioni, vedi Revisione dell'accesso assegnato nella console.

Gestione della deviazione delle risorse

Con Terraform puoi gestire in modo sicuro e prevedibile il ciclo di vita della tua infrastruttura utilizzando i file di configurazione dichiarativi. Una sfida che esiste quando gestisci l'infrastruttura come codice è la deviazione. La deviazione si verifica quando le risorse vengono aggiunte, eliminate o modificate al di fuori dell'applicazione delle modifiche di configurazione Terraform. Ad esempio, quando un segreto scade o viene ruotato. Per evitare la deriva, utilizza sempre Terraform per gestire le risorse inizialmente create con Terraform.

Il file di stato Terraform è un record di tutte le risorse gestite da Terraform. Non devi apportare modifiche manuali alle risorse che sono controllate da Terraform perché in questo modo, il file di stato diventa non sincronizzato o "deriva", dall'infrastruttura reale. Se il tuo stato e la tua configurazione non corrispondono alla tua infrastruttura, Terraform tenta di riconciliare la tua infrastruttura, il che potrebbe involontariamente distruggere o ricreare le risorse.

Quando utilizzi il provider Terraform Secrets Manager, potrebbe verificarsi una deviazione in casi come:

  • Scadenza segreto
  • Rotazione automatica del segreto
  • Modifiche esterne alle risorse di Secret Manager controllate da Terraform

Quando si progetta il progetto Terraform, seguire le best practice di Terraform per la gestione della deriva e delle modifiche al ciclo di vita, per evitare la distruzione o la ricreazione involontaria delle risorse di Secrets Manager.

Operazioni successive

Ora che hai creato correttamente la tua prima istanza del servizio Secrets Manager con Terraform su IBM Cloud, puoi esaminare le risorse e le origini dati Secrets Manager nel registro Terraform. Puoi anche esaminare come gestire le tue risorse Secrets Manager seguendo i passi Terraform inclusi nella sezione How to. Ad esempio, puoi seguire le indicazioni su come creare segreti arbitrari utilizzando Terraform.

Per le implementazioni di produzione, prendere in considerazione la soluzione IBM Cloud® Secrets Manager che fornisce configurazioni pronte per l'impresa. Conoscere i moduli Terraform IBM.