Integrazione di Secrets Manager in Schematics

IBM Cloud® Schematics supporta l'integrazione con IBM Cloud® Secrets Manager che permette di gestire in modo sicuro le informazioni sensibili senza visualizzare i valori segreti effettivi nelle configurazioni di Schematics. Invece di codificare i segreti, è possibile fornire il riferimento al segreto direttamente da Secrets Manager per aumentare la sicurezza e semplificare la rotazione dei segreti.

L'integrazione di Secrets Manager in Schematics elimina la necessità di esporre valori segreti in stack di automazione come Terraform, Ansible ed Extensions. Con la rotazione diretta dei segreti e una maggiore sicurezza, Secrets Manager migliora la manutenibilità dei flussi di lavoro di Schematics.

Per integrare Secrets Manager in Schematics e accedere ai segreti, è necessario creare un criterio service to service tra Secrets Manager e Schematics e assegnare i ruoli a Viewer e Secret Reader.

Prima di iniziare

  1. Accedere alla console IBM Cloud.
  2. Fare clic su Gestione > Accesso (IAM) > Autorizzazioni > Crea.
  3. Selezionare un conto sorgente come Questo conto.
  4. Selezionare il servizio come Schematics.
  5. Selezionare Risorse come Tutte le risorse o Risorse specifiche.
  6. Selezionare il servizio di destinazione come Secrets Manager.
  7. Selezionare il ruolo di Visualizzatore e di Lettore segreto.
  8. Selezionare Autorizza servizi dipendenti per consentire la delega dell'autorizzazione da parte dell'origine e dei servizi dipendenti.
  9. Fai clic su Autorizza.

Integrazione di Secrets Manager in Schematics Terraform tramite console

Seguire i passi per abilitare Secrets Manager in Schematics a connettersi in modo sicuro con Schematics Terraform.

  1. Accedere alla console IBM Cloud.
  2. Fare clic sull'icona del menu a forma di hamburger > Automazione della piattaforma > Schematics > Terraform > Crea spazio di lavoro.
    • Nella sezione Specifica modello:
      • GitHub, GitLab, o Bitbucket repository URL- <provide your Terraform template Git repository URL>.
      • Gettone di accesso personale- <leave it blank>. È possibile fare clic su Open reference picker per selezionare la chiave di riferimento Secrets Manager. Per ulteriori informazioni, vedere Creazione di un'istanza Secrets Manager.
  3. Nella pagina Seleziona un riferimento, selezionare Account, Istanza di servizio e Segreto.
  4. Fai clic su OK.
  5. Fare clic su Crea per creare un'area di lavoro.

Osservare il riferimento segreto per una variabile di ingresso, che viene memorizzata come riferimento.

Integrazione di Secrets Manager nella variabile

Seguire i passi per abilitare Secrets Manager in Schematics per aggiornare in modo sicuro la variabile di Terraform Schematics.

  1. Accedere alla console IBM Cloud.
  2. Fare clic sull'icona del menu a forma di hamburger > Automazione della piattaforma Schematics > Terraform.
  3. Fare clic sull'area di lavoro da modificare.
  4. Fai clic su Settings. In Variabili, fare clic sull'icona Modifica per modificare i parametri di api_key.
  5. In Modifica variabile, fare clic su Open reference picker per visualizzare la pagina di riferimento Selezionare una pagina di riferimento, aggiungere , ** Istanza di servizio e Segreto.
  6. Fare clic su Salva per visualizzare il parametro di riferimento segreto come ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME.

Osservare il riferimento segreto per una variabile di ingresso memorizzata come riferimento.

Passi per integrare Secrets Manager in Schematics utilizzando la CLI

Seguire i passi per abilitare Secrets Manager in Schematics per aggiornare in modo sicuro Schematics Terraform.

  1. Scaricate e installate la riga di comando ed eseguite i comandi condivisi per indirizzare la vostra regione, creare un servizio alla politica dei servizi, creare un'istanza Secrets Manager, fare riferimento ai segreti nel vostro codice Terraform e applicare.

    ibmcloud login --sso
    ibmcloud target -r <region>
    ibmcloud iam service-policy-create --source-service-name schematics --target-service-instance-name <your-secrets-manager-name> --roles "Viewer,SecretReader"
    ibmcloud secrets-manager secret-create --secret-type arbitrary --name <secret-name> --payload <secret-value>
    
  2. Fare riferimento al segreto nel codice di Terraform.

     variable "my_secret" {
     default = "ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME"
    }
    
  3. Applicare l'area di lavoro Schematics

    ibmcloud schematics workspace apply --id <WORKSPACE_ID>
    

Integrazione di Secrets Manager in Schematics Terraform tramite API

Seguire i passi per abilitare Secrets Manager in Schematics a connettersi in modo sicuro con Schematics Terraform.

  1. Seguire i passaggi per recuperare il token di accesso IAM e autenticarsi con IBM Cloud Schematics utilizzando l'API.

  2. Creare un'istanza Secrets Manager (se non è già stata creata) utilizzando l'endpoint di destinazione e l'API IBM Cloud Resource Controller.

     curl -X POST /v1/resource_instances -H "Authorization: <iam_access_token>" -d '{"name": "my-secrets-manager",
     "target": "test-eu-de",
     "resource_group": "default",
     "resource_plan_id": "<plan-id-for-secrets-manager>"
     }'
    
  3. Creare un segreto in Secrets Manager utilizzando Secrets Manager API.

     curl -X POST /api/v1/secrets/arbitrary  -H "Authorization: <iam_access_token>" -d '{"name": "my-token-secret","description": "Token for private Git repo","secret_group_id": "<secret-group-id>","resources": [],"payload": "your-token-value"}'
    
  4. Creare un servizio per servire i criteri IAM

     {
       "type": "service",
       "subjects": [{
         "attributes": [{
           "name": "serviceName",
           "value": "schematics"
         }]
       }],
       "roles": [
         { "role_id": "crn:v1:bluemix:public:iam::::role:Viewer" },
         { "role_id": "crn:v1:bluemix:public:iam::::role:SecretReader" }
       ],
       "resources": [{
         "attributes": [{
           "name": "serviceInstance",
           "value": "<secrets-manager-instance-id>"
         }]
       }]
     }
    
  5. Fare riferimento al segreto nel file delle variabili di Terraform utilizzando lo spazio di lavoro Schematics.

     variable "git_token" {
     default = "ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME"
    }
    
  6. Aggiornare lo spazio di lavoro con il modello Terraform per fare riferimento al segreto.

    curl -X PATCH /v1/workspaces/{workspace_id}
    
  7. Applicare lo spazio di lavoro con il modello Terraform.

    curl -X POST /v1/workspaces/{workspace_id}/actions/apply
    

Integrazione di Secrets Manager in Schematics Terraform utilizzando Terraform

Seguire i passi per abilitare Secrets Manager in Schematics a connettersi in modo sicuro con Schematics Terraform.

  1. Definire l'istanza Secrets Manager.

  2. Creare un segreto in Secrets Manager. È possibile utilizzare la CLI o creare manualmente i segreti. In Terraform, i segreti sono tipicamente referenziati, non creati direttamente.

  3. Creare il criterio IAM Service-to-Service.

  4. Fare riferimento al segreto in Variabili Terraform. Sostituire secret-id con l'ID effettivo del segreto memorizzato in Secrets Manager.

     variable "git_token" {
     default = "ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME"
    }
    
  5. Utilizzare il provider Schematics Terraform o la CLI per creare lo spazio di lavoro con la configurazione precedente.