Prácticas recomendadas de Secret Manager

En esta guía se presentan algunas prácticas recomendadas para usar Secret Manager. La guía no es una lista exhaustiva de recomendaciones. Te recomendamos que consultes el resumen de la plataforma para entender el panorama general y el resumen de Secret Manager antes de leer esta guía. Google Cloud

Control de acceso

El acceso a la API Secret Manager está protegido por la gestión de identidades y accesos. Sigue el principio de mínimos accesos al conceder permisos a los secretos.

Se necesitan credenciales para autenticarte en la API Secret Manager. Todas las bibliotecas cliente usan una estrategia similar para buscar las credenciales a las que se hace referencia como credenciales predeterminadas de la aplicación.

Se recomienda usar estos métodos en lugar de exportar una credencial de cuenta de servicio, ya que no requieren almacenar ni acceder de forma segura a un secreto adicional fuera de la API Secret Manager.

Prácticas de programación

No envíes secretos a tu aplicación a través del sistema de archivos ni de las variables de entorno. A continuación, se indican algunos motivos para usar otros métodos para gestionar secretos:

  • Cuando se puede acceder a un secreto en el sistema de archivos, las vulnerabilidades de las aplicaciones, como los ataques de recorrido de directorios, pueden ser más graves, ya que el atacante puede obtener la capacidad de leer el material secreto.

  • Cuando se usa un secreto a través de variables de entorno, las configuraciones incorrectas, como habilitar endpoints de depuración o incluir dependencias que registren detalles del entorno del proceso, pueden filtrar secretos.

  • Cuando sincronices material secreto con otro almacén de datos (como los secretos de Kubernetes), evalúa los controles de acceso que proporciona ese almacén de datos. Ten en cuenta lo siguiente:

    • ¿El almacén de datos amplía el acceso al secreto?

    • ¿Es posible auditar el acceso al secreto?

    • ¿El almacén de datos cumple los requisitos de cifrado de datos en reposo y regionalización?

Te recomendamos que uses la API Secret Manager directamente con una de las bibliotecas de cliente proporcionadas o siguiendo la documentación de REST o GRPC.

Sin embargo, en algunas integraciones de productos, como las integraciones sin servidor, puedes transferir secretos a través del sistema de archivos o de variables de entorno. Para obtener más información, consulta [Usar Secret Manager con otros productos](/secret-manager/docs/using-other-products).

Administración

Elige la política de replicación automática al crear secretos, a menos que tu carga de trabajo tenga requisitos de ubicación específicos (que se pueden aplicar mediante la restricción constraints/gcp.resourceLocations).

Haz referencia a los secretos por su número de versión en lugar de usar el alias más reciente. Implementa actualizaciones en los números de versión mediante tus procesos de lanzamiento. Normalmente, esto significa configurar tu aplicación con una versión secreta específica que se lee al iniciarse. Aunque usar el alias más reciente puede ser práctico, si hay algún problema con la nueva versión del secreto, es posible que tu carga de trabajo no pueda usar la versión del secreto. Al fijar un número de versión, la configuración se puede validar y revertir mediante los procesos de lanzamiento que ya tengas.

Inhabilita las versiones de secretos antes de eliminarlas o de eliminar los secretos. De esta forma, se evitan las interrupciones, ya que el secreto se pone en un estado que parece igual que el de eliminación, pero que se puede revertir. Es decir, puedes inhabilitar la función y esperar una semana para asegurarte de que no haya dependencias antes de eliminar los datos de forma permanente.

No definas la fecha de vencimiento de los secretos de producción a menos que tengas la certeza de que deben eliminarse de forma irreversible. La función de caducidad es la más adecuada para limpiar automáticamente los entornos temporales. Como alternativa a los secretos que caducan, puedes usar condiciones de IAM basadas en el tiempo.

Rota periódicamente tus secretos para hacer lo siguiente:

  • Limitar el impacto en caso de que se filtre un secreto.

  • Asegúrate de que las personas que ya no necesiten acceder a un secreto no puedan seguir usando un secreto al que hayan accedido anteriormente.

  • Reduce la probabilidad de que se produzca una interrupción.

Supervisa los secretos de tu organización con Cloud Asset Inventory por los siguientes motivos:

  • Ayudar a identificar secretos en toda tu organización.

  • Identifica las no conformidades con los requisitos de la organización, como la rotación, la configuración del cifrado y la ubicación.

Habilita los registros de acceso a datos para obtener y analizar la información de las solicitudes AccessSecretVersion. Habilita esta opción a nivel de carpeta u organización para aplicar el registro sin tener que configurarlo en cada secreto o proyecto.

Además de los controles de gestión de identidades y accesos, puedes limitar el acceso a la API Secret Manager con controles basados en la red configurando un perímetro de Controles de Servicio de VPC para tu organización.

La política de organización constraints/iam.allowedPolicyMemberDomains se puede usar para limitar las identidades que se pueden añadir a las políticas de gestión de identidades y accesos de los secretos.

Estima el uso máximo de secretos (teniendo en cuenta una avalancha de solicitudes debido a implementaciones simultáneas de aplicaciones o al autoescalado de tu servicio) y asegúrate de que tu proyecto tenga suficiente cuota para gestionar este tipo de eventos. Si necesitas más cuota, solicita un aumento.

Cumplimiento de la residencia de datos

Elige secretos regionales si tienes requisitos estrictos de residencia y soberanía de los datos. Los secretos regionales te permiten almacenar datos sensibles en una ubicación geográfica concreta, lo que te ofrece garantías completas de protección de los datos en reposo, en uso y en tránsito, y te ayuda a cumplir los requisitos legales, normativos o de la organización relacionados con la residencia de datos.