Integración de Secrets Manager en Schematics

IBM Cloud® Schematics admite la integración con IBM Cloud® Secrets Manager que permite gestionar de forma segura la información confidencial sin mostrar los valores secretos reales en las configuraciones de Schematics. En lugar de codificar los secretos, puede proporcionar la referencia secreta directamente desde Secrets Manager para mejorar la seguridad y simplificar la rotación de secretos.

La integración de Secrets Manager en Schematics elimina la necesidad de exponer valores secretos en pilas de automatización como Terraform, Ansible y Extensions. Gracias a la rotación directa de secretos y a una mayor seguridad, Secrets Manager mejora la capacidad de mantenimiento de sus flujos de trabajo en Schematics.

Para integrar Secrets Manager en Schematics y acceder a los secretos. es necesario crear una política de servicio a servicio entre Secrets Manager y Schematics y asignar roles a Viewer y Secret Reader.

Antes de empezar

  1. Acceda a la consola IBM Cloud.
  2. Haga clic en Gestionar > Acceso (IAM) > Autorizaciones > Crear.
  3. Seleccione una cuenta de origen como Esta cuenta.
  4. Seleccione Servicio como Schematics.
  5. Seleccione Recursos como Todos los recursos o Recursos específicos.
  6. Seleccione el servicio de destino como Secrets Manager.
  7. Seleccione la función de espectador y lector secreto.
  8. Seleccione Autorizar servicios dependientes para permitir que la autorización se delegue por servicios de origen y dependientes.
  9. Pulse Autorizar.

Integración de Secrets Manager en Schematics Terraform mediante consola

Siga los pasos para habilitar Secrets Manager en Schematics para conectarse de forma segura con Schematics Terraform.

  1. Acceda a la consola IBM Cloud.
  2. Haga clic en el icono de menú hamburguesa > Automatización de plataformas > > Terraform > Crear espacio de trabajo Schematics > Terraform > Crear espacio de trabajo.
    • En la sección Especificar plantilla:
      • GitHub, GitLab, o Bitbucket repositorio URL- <provide your Terraform template Git repository URL>.
      • Ficha de acceso personal- <leave it blank>. Puede hacer clic en Open reference picker para seleccionar su referencia de clave Secrets Manager. Para más información, consulte la creación de una instancia Secrets Manager.
  3. En la página Seleccionar una referencia, seleccione Cuenta, Instancia de servicio y Secreto.
  4. Pulse Aceptar.
  5. Haga clic en Crear para crear un espacio de trabajo.

Observar la referencia secreta de una variable de entrada, que se almacena como referencia.

Integrar Secrets Manager en variable

Siga los pasos para habilitar Secrets Manager en Schematics para actualizar de forma segura la variable de Terraform Schematics.

  1. Acceda a la consola IBM Cloud.
  2. Haga clic en el icono de menú hamburguesa > Automatización de la plataforma > Schematics > Terraform.
  3. Haz clic en tu espacio de trabajo para editarlo.
  4. Pulse Valores. En Variables, haga clic en el icono Editar para modificar los parámetros de api_key.
  5. En Editar variable, haga clic en Open reference picker para ver la página Seleccione una referencia, añada , ** Instancia de servicio y Secreto.
  6. Haga clic en Guardar para ver el parámetro de referencia secreto como ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME.

Observar la referencia secreta de una variable de entrada que se almacena como referencia.

Pasos para integrar Secrets Manager en Schematics mediante CLI

Siga los pasos para habilitar Secrets Manager en Schematics para actualizar de forma segura el Terraform Schematics.

  1. Descargue e instale la comando y ejecute los comandos compartidos para orientar su región, crear una política de servicio a servicio, crear una instancia de Secrets Manager, hacer referencia a los secretos en su código Terraform y aplicar.

    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. Haga referencia al secreto en su código Terraform.

     variable "my_secret" {
     default = "ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME"
    }
    
  3. Aplique el espacio de trabajo Schematics

    ibmcloud schematics workspace apply --id <WORKSPACE_ID>
    

Integración de Secrets Manager en Schematics Terraform mediante API

Siga los pasos para habilitar Secrets Manager en Schematics para conectarse de forma segura con Schematics Terraform.

  1. Siga los pasos para recuperar la señal de acceso de IAM y autenticarse en IBM Cloud Schematics utilizando la API.

  2. Cree una instancia de Secrets Manager (si aún no se ha creado) utilizando su punto final de destino y la API del controlador de recursos de IBM Cloud.

     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. Cree un secreto en Secrets Manager utilizando la API Secrets Manager.

     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. Crear un servicio para dar servicio a la Política 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. Haga referencia al secreto en su archivo de variables Terraform en utilizando Schematics espacio de trabajo.

     variable "git_token" {
     default = "ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME"
    }
    
  6. Actualice el espacio de trabajo con la plantilla de Terraform para hacer referencia al secreto.

    curl -X PATCH /v1/workspaces/{workspace_id}
    
  7. Aplique el espacio de trabajo con la plantilla Terraform.

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

Integración de Secrets Manager en Schematics Terraform mediante Terraform

Siga los pasos para habilitar Secrets Manager en Schematics para conectarse de forma segura con Schematics Terraform.

  1. Defina la instancia Secrets Manager.

  2. Crear un secreto en Secrets Manager. Puede utilizar la CLI o crear secretos manualmente. En Terraform, los secretos son típicamente referenciados, no creados directamente.

  3. Cree la política IAM Service-to-Service.

  4. Haga referencia al secreto en Terraform Variables. Sustituya secret-id por el ID real del secreto almacenado en Secrets Manager.

     variable "git_token" {
     default = "ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME"
    }
    
  5. Utilice el proveedor Schematics Terraform o la CLI para crear su espacio de trabajo con la configuración anterior.