Encriptar datos con claves de encriptado gestionadas por el cliente

De forma predeterminada, Secure Source Manager cifra el contenido del cliente en reposo. Gestor de fuentes seguras se encarga del cifrado sin que tengas que hacer nada más. Esta opción se llama Cifrado predeterminado de Google.

Si quieres controlar tus claves de cifrado, puedes usar claves de cifrado gestionadas por el cliente (CMEKs) en Cloud KMS con servicios integrados con CMEKs, como Secure Source Manager. Si usas claves de Cloud KMS, tendrás control sobre su nivel de protección, ubicación, calendario de rotación, permisos de uso y acceso, y límites criptográficos. Cloud KMS también te permite monitorizar el uso de las claves, ver los registros de auditoría y controlar los ciclos de vida de las claves. En lugar de que Google sea el propietario y el gestor de las claves de cifrado de claves (KEKs) simétricas que protegen tus datos, tú controlas y gestionas estas claves en Cloud KMS.

Una vez que hayas configurado tus recursos con CMEKs, la experiencia de acceso a tus recursos de Secure Source Manager será similar a la de usar el cifrado predeterminado de Google. Para obtener más información sobre las opciones de encriptado, consulta Claves de encriptado gestionadas por el cliente (CMEK).

Cloud KMS puede ejecutarse en un proyecto independiente en el que gestiones de forma centralizada las claves de varios proyectos o en el mismoGoogle Cloud proyecto que Secure Source Manager. Para admitir la separación de tareas y tener un mayor control sobre el acceso a las claves, te recomendamos que crees y gestiones las claves en un proyecto independiente que no incluya otros recursos de Google Cloud.

Asigna una clave de Cloud KMS al crear una instancia. No puedes cambiar el mecanismo de cifrado de una instancia que ya tengas. Si tienes una instancia cifrada con CMEK, no puedes cambiar el mecanismo de cifrado al cifrado predeterminado de Google ni asignar otra clave de Cloud Key Management Service para el cifrado.

La instancia debe crearse en la misma ubicación que la clave de Cloud KMS.

Cuando usas CMEK en Secure Source Manager, tus proyectos pueden consumir cuotas de solicitudes criptográficas de Cloud KMS. Las instancias cifradas con CMEK consumen estas cuotas en el momento de la creación. Las operaciones de cifrado y descifrado con claves CMEK solo afectan a las cuotas de Cloud KMS si usas claves de hardware (Cloud HSM) o externas (Cloud EKM). Para obtener más información, consulta las cuotas de Cloud KMS.

Crear una clave CMEK y conceder permisos

En las siguientes instrucciones se explica cómo crear una clave y conceder permisos a la cuenta de servicio de Gestor de fuentes seguras en la clave.

  1. En el Google Cloud proyecto en el que quieras gestionar tus claves, sigue estos pasos:

    1. Habilita la API Cloud KMS.

    2. Crea un conjunto de claves y una clave con una de las siguientes opciones:

      La ubicación de la clave de Cloud KMS debe coincidir con la ubicación del proyecto en el que quieras crear la instancia de Secure Source Manager.

  2. Si vas a crear tu primera instancia de Secure Source Manager en tu proyecto, tendrás que crear manualmente el agente de servicio de Secure Source Manager ejecutando el siguiente comando:

    gcloud beta services identity create \
    --service=securesourcemanager.googleapis.com \
    --project=PROJECT
    

    Donde PROJECT es el ID del proyecto en el que crearás tu instancia de Secure Source Manager.

    Una vez que hayas creado la cuenta de servicio por producto y por proyecto (P4SA), debes asignar el rol Agente de servicio de Secure Source Manager (roles/securesourcemanager.serviceAgent) al principal service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com, ya que, de lo contrario, no se podrá crear la instancia.

  3. Asigna el rol de gestión de identidades y accesos Encargado del encriptado y desencriptado de claves criptográficas (roles/cloudkms.cryptoKeyEncrypterDecrypter) a la cuenta de servicio de Secure Source Manager. Concede este permiso en la clave que has creado.

    Consola

    1. Ve a la página Gestión de claves.

      Ir a Administración de claves

    2. Selecciona el conjunto de claves que quieras usar, abre la página Detalles del conjunto de claves y, a continuación, selecciona la clave que has creado.

    3. Concede acceso a la cuenta de servicio de Secure Source Manager:

      1. Haz clic en AÑADIR PRINCIPIO.
      2. Añade la cuenta de servicio de Secure Source Manager. La cuenta de servicio es service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com, donde PROJECT-NUMBER es el número de proyecto del proyecto Google Cloud en el que está habilitado Secure Source Manager.
      3. En Selecciona un rol, elige Cloud KMS > Encargado del encriptado y desencriptado de claves de CryptoKey de Cloud KMS.
      4. Haz clic en GUARDAR.
    4. Repite el paso anterior para conceder acceso a la cuenta que creará la instancia de Gestor de fuentes seguras.

    5. Vuelve a la página Gestión de claves, selecciona tu conjunto de claves y abre la página Detalles del conjunto de claves. A continuación, vuelve a seleccionar la clave.

    6. Selecciona MOSTRAR PANEL DE INFORMACIÓN. Deberías ver los roles en la columna Rol o miembro.

    gcloud

    1. Ejecuta el siguiente comando para conceder acceso a la cuenta de servicio de Secure Source Manager:

      gcloud kms keys add-iam-policy-binding [--project=PROJECT] \
             KEY_NAME --location LOCATION --keyring=KEY_RING \
             --member serviceAccount:service-PROJECT_NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com \
             --role roles/cloudkms.cryptoKeyEncrypterDecrypter
      

      Haz los cambios siguientes:

      • PROJECT: el ID del proyecto que contiene la clave
      • KEY_NAME: el nombre de la clave
      • LOCATION: la ubicación de la clave. La ubicación de la clave debe coincidir con la ubicación del proyecto en el que quieras desplegar una instancia de Secure Source Manager.
      • KEY_RING: el nombre del conjunto de claves
      • PROJECT_NUMBER: el número de proyecto del proyectoGoogle Cloud con Secure Source Manager habilitado.
    2. Repite el paso anterior para conceder acceso a la cuenta que creará la instancia de Gestor de fuentes seguras.

    Para obtener más información sobre este comando, consulta la documentación de gcloud kms keys add-iam-policy-binding.

Quitar acceso

Hay varias formas de quitar el acceso a un repositorio cifrado con CMEK:

Te recomendamos que revoques los permisos de la cuenta de servicio de Secure Source Manager antes de inhabilitar o destruir una clave. Los cambios en los permisos se aplican en cuestión de segundos, por lo que puedes observar los efectos de inhabilitar o destruir una clave.

Si inhabilitas o destruyes la clave de cifrado de una instancia, no podrás ver ni recuperar los datos de la instancia. No se podrá acceder a todos los datos almacenados en la instancia, incluido el historial de código, las solicitudes de extracción y los problemas.

Los usuarios con el rol de gestor de instancias de Secure Source Manager o el rol de propietario de la instancia pueden eliminarla.

Políticas de organización de CMEK

Secure Source Manager admite restricciones de políticas de organización que pueden requerir protección con CMEK.

Las políticas pueden limitar las CryptoKeys de Cloud KMS que se pueden usar para la protección con CMEK.

  • Cuando la API Secure Source Manager se encuentra en la lista de servicios de la política Deny de la restricción constraints/gcp.restrictNonCmekServices, Secure Source Manager rechaza la creación de instancias que no estén protegidas con CMEK.

  • Cuando se configura constraints/gcp.restrictCmekCryptoKeyProjects, Secure Source Manager crea instancias protegidas con CMEK que están protegidas por una CryptoKey de un proyecto, una carpeta o una organización permitidos.

Para obtener más información sobre cómo configurar políticas de organización, consulta Políticas de organización de CMEK.

Siguientes pasos