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
- Debes tener tus secretos clave-valor. Para crear los secretos, consulte crear instancia Secrets Manager.
- Es necesario configurar la autorización de servicio a servicio para integrar Secrets Manager en el servicio Schematics.
- Siga estos pasos para conceder acceso de autorización de servicio a servicio al servicio Schematics.
- Acceda a la consola IBM Cloud.
- Haga clic en Gestionar > Acceso (IAM) > Autorizaciones > Crear.
- Seleccione una cuenta de origen como Esta cuenta.
- Seleccione Servicio como Schematics.
- Seleccione Recursos como Todos los recursos o Recursos específicos.
- Seleccione el servicio de destino como Secrets Manager.
- Seleccione la función de espectador y lector secreto.
- Seleccione Autorizar servicios dependientes para permitir que la autorización se delegue por servicios de origen y dependientes.
- 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.
- Acceda a la consola IBM Cloud.
- Haga clic en el icono de menú
> Automatización de plataformas > > Terraform > Crear espacio de trabajo Schematics > Terraform > Crear espacio de trabajo.
- En la sección Especificar plantilla:
- GitHub, GitLab, o
Bitbucketrepositorio URL-<provide your Terraform template Git repository URL>. - Ficha de acceso personal-
<leave it blank>. Puede hacer clic enOpen reference pickerpara seleccionar su referencia de clave Secrets Manager. Para más información, consulte la creación de una instancia Secrets Manager.
- GitHub, GitLab, o
- En la sección Especificar plantilla:
- En la página Seleccionar una referencia, seleccione Cuenta, Instancia de servicio y Secreto.
- Pulse Aceptar.
- 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.
- Acceda a la consola IBM Cloud.
- Haga clic en el icono de menú
> Automatización de la plataforma > Schematics > Terraform.
- Haz clic en tu espacio de trabajo para editarlo.
- Pulse Valores. En Variables, haga clic en el icono Editar para modificar los parámetros de
api_key. - En Editar variable, haga clic en
Open reference pickerpara ver la página Seleccione una referencia, añada , ** Instancia de servicio y Secreto. - 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.
-
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> -
Haga referencia al secreto en su código Terraform.
variable "my_secret" { default = "ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME" } -
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.
-
Siga los pasos para recuperar la señal de acceso de IAM y autenticarse en IBM Cloud Schematics utilizando la API.
-
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>" }' -
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"}' -
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>" }] }] } -
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" } -
Actualice el espacio de trabajo con la plantilla de Terraform para hacer referencia al secreto.
curl -X PATCH /v1/workspaces/{workspace_id} -
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.
-
Defina la instancia Secrets Manager.
-
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.
-
Cree la política IAM Service-to-Service.
-
Haga referencia al secreto en Terraform Variables. Sustituya
secret-idpor el ID real del secreto almacenado en Secrets Manager.variable "git_token" { default = "ref://secrets-manager.<REGION>.<INSTANCE_NAME>/<SECRET_GROUP>/SECRET_NAME" } -
Utilice el proveedor Schematics Terraform o la CLI para crear su espacio de trabajo con la configuración anterior.