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
- Dovete avere i vostri segreti chiave-valore. Per creare i segreti, vedere Creare un'istanza Secrets Manager.
- Per integrare Secrets Manager nel servizio Schematics è necessario configurare l'autorizzazione da servizio a servizio.
- Procedere come segue per concedere l'accesso di autorizzazione da servizio a servizio al servizio Schematics.
- Accedere alla console IBM Cloud.
- Fare clic su Gestione > Accesso (IAM) > Autorizzazioni > Crea.
- Selezionare un conto sorgente come Questo conto.
- Selezionare il servizio come Schematics.
- Selezionare Risorse come Tutte le risorse o Risorse specifiche.
- Selezionare il servizio di destinazione come Secrets Manager.
- Selezionare il ruolo di Visualizzatore e di Lettore segreto.
- Selezionare Autorizza servizi dipendenti per consentire la delega dell'autorizzazione da parte dell'origine e dei servizi dipendenti.
- 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.
- Accedere alla console IBM Cloud.
- Fare clic sull'icona del menu
> Automazione della piattaforma > Schematics > Terraform > Crea spazio di lavoro.
- Nella sezione Specifica modello:
- GitHub, GitLab, o
Bitbucketrepository URL-<provide your Terraform template Git repository URL>. - Gettone di accesso personale-
<leave it blank>. È possibile fare clic suOpen reference pickerper selezionare la chiave di riferimento Secrets Manager. Per ulteriori informazioni, vedere Creazione di un'istanza Secrets Manager.
- GitHub, GitLab, o
- Nella sezione Specifica modello:
- Nella pagina Seleziona un riferimento, selezionare Account, Istanza di servizio e Segreto.
- Fai clic su OK.
- 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.
- Accedere alla console IBM Cloud.
- Fare clic sull'icona del menu
> Automazione della piattaforma Schematics > Terraform.
- Fare clic sull'area di lavoro da modificare.
- Fai clic su Settings. In Variabili, fare clic sull'icona Modifica per modificare i parametri di
api_key. - In Modifica variabile, fare clic su
Open reference pickerper visualizzare la pagina di riferimento Selezionare una pagina di riferimento, aggiungere , ** Istanza di servizio e Segreto. - 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.
-
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> -
Fare riferimento al segreto nel codice di Terraform.
variable "my_secret" { default = "ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME" } -
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.
-
Seguire i passaggi per recuperare il token di accesso IAM e autenticarsi con IBM Cloud Schematics utilizzando l'API.
-
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>" }' -
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"}' -
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>" }] }] } -
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" } -
Aggiornare lo spazio di lavoro con il modello Terraform per fare riferimento al segreto.
curl -X PATCH /v1/workspaces/{workspace_id} -
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.
-
Definire l'istanza Secrets Manager.
-
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.
-
Creare il criterio IAM Service-to-Service.
-
Fare riferimento al segreto in Variabili Terraform. Sostituire
secret-idcon l'ID effettivo del segreto memorizzato in Secrets Manager.variable "git_token" { default = "ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME" } -
Utilizzare il provider Schematics Terraform o la CLI per creare lo spazio di lavoro con la configurazione precedente.