De forma predeterminada, Secure Source Manager encripta el contenido del cliente en reposo. Secure Source Manager controla la encriptación por ti sin que debas realizar ninguna acción adicional. Esta opción se denomina Encriptación predeterminada de Google.
Si deseas controlar tus claves de encriptación, puedes usar las claves de encriptación administradas por el cliente (CMEK) en Cloud KMS con servicios integrados en CMEK, incluido Secure Source Manager. El uso de claves de Cloud KMS te permite controlar su nivel de protección, ubicación, programa de rotación, permisos de uso y acceso, y límites criptográficos. El uso de Cloud KMS también te permite hacer un seguimiento del uso de las claves, ver los registros de auditoría y controlar los ciclos de vida de las claves. En lugar de que Google posea y administre las claves de encriptación de claves (KEK) simétricas que protegen tus datos, tú las controlas y administras en Cloud KMS.
Después de configurar tus recursos con CMEK, la experiencia de acceso a tus recursos de Secure Source Manager es similar a usar la encriptación predeterminada de Google. Para obtener más información sobre tus opciones de encriptación, consulta Claves de encriptación administradas por el cliente (CMEK).
Cloud KMS puede ejecutarse en un proyecto independiente en el que administres claves de varios proyectos de forma centralizada o en el mismo proyecto deGoogle Cloud Secure Source Manager. Para admitir la separación de obligaciones y un mayor control sobre el acceso a las claves, te recomendamos que crees y administres las claves en un proyecto independiente que no incluya otros recursos de Google Cloud.
Debes asignar una clave de Cloud KMS cuando creas una instancia. No puedes cambiar el mecanismo de encriptación de una instancia existente. Si tienes una instancia encriptada con CMEK, no puedes cambiar el mecanismo de encriptación a la encriptación predeterminada de Google ni asignar una clave diferente de Cloud Key Management Service para la encriptación.
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 encriptadas con CMEK consumen estas cuotas en el momento de la creación. Las operaciones de encriptación y desencriptación con claves CMEK afectan las cuotas de Cloud KMS solo si usas claves de hardware (Cloud HSM) o externas (Cloud EKM). Para obtener más información, consulta las cuotas de Cloud KMS.
Crea una clave de CMEK y otorga permisos
En las siguientes instrucciones, se explica cómo crear una clave y otorgar permisos a la cuenta de servicio de Secure Source Manager en la clave.
En el proyecto Google Cloud en el que deseas administrar tus claves, haz lo siguiente:
Crea un llavero de claves y una clave mediante una de las siguientes opciones:
- Crea el llavero de claves y la clave directamente en Cloud KMS.
- Usa una clave administrada de forma externa. Crea la clave externa y, luego, crea una clave de Cloud EKM para que la clave esté disponible a través de Cloud KMS.
La ubicación de la clave de Cloud KMS debe coincidir con la ubicación del proyecto en el que deseas crear la instancia de Secure Source Manager.
Si vas a crear tu primera instancia de Secure Source Manager en tu proyecto, deberás 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
Aquí,
PROJECT
es el ID del proyecto en el que crearás tu instancia de Secure Source Manager.Una vez que crees la cuenta de servicio por producto y por proyecto (P4SA), debes otorgar el rol de agente de servicio de Secure Source Manager (
roles/securesourcemanager.serviceAgent
) al principal service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com, o fallará la creación de la instancia.Otorga la función de IAM de encriptador/desencriptador de CryptoKey (
roles/cloudkms.cryptoKeyEncrypterDecrypter
) a la cuenta de servicio de Secure Source Manager. Otorga este permiso en la clave que creaste.Console
Ve a la página Administración de claves.
Selecciona el llavero de claves que quieras usar, abre la página Detalles del llavero de claves y, luego, selecciona la clave que creaste.
Otorga acceso a la cuenta de servicio de Secure Source Manager:
- Haz clic en AGREGAR PRINCIPIO.
- Agrega la cuenta de servicio de Secure Source Manager. La cuenta de servicio es service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com, en la que PROJECT-NUMBER es el número del proyecto del proyecto Google Cloud en el que está habilitado Secure Source Manager.
- En Selecciona un rol, selecciona Cloud KMS > Encriptador/Desencriptador de CryptoKey de Cloud KMS.
- Haz clic en GUARDAR.
Repite el paso anterior para otorgar acceso a la cuenta que creará la instancia de Secure Source Manager.
Regresa a la página Administración de claves, selecciona tu llavero de claves y abre la página Detalles del llavero de claves. Luego, vuelve a seleccionar la llave.
Selecciona MOSTRAR EL PANEL DE INFORMACIÓN. Deberías ver las funciones en la columna Función/Miembro.
gcloud
Ejecuta el siguiente comando para otorgar 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
Reemplaza lo siguiente:
- PROJECT: ID del proyecto que contiene la clave
- KEY_NAME: el nombre de la clave
- LOCATION: Es la ubicación de la llave. La ubicación de la clave debe coincidir con la ubicación del proyecto en el que deseas implementar una instancia de Secure Source Manager.
- KEY_RING: es el nombre del llavero de claves
- PROJECT_NUMBER: Es el número de proyecto del proyecto deGoogle Cloud con Secure Source Manager habilitado.
Repite el paso anterior para otorgar acceso a la cuenta que creará la instancia de Secure Source Manager.
Para obtener más información sobre este comando, consulta la documentación de claves add-iam-policy-binding de KMS de gcloud.
Quitar acceso
Existen varias formas de quitar el acceso a un repositorio encriptado mediante una CMEK:
- Revoca el rol de encriptador/desencriptador de CryptoKey de Cloud KMS de la cuenta de servicio de Secure Source Manager con la consola deGoogle Cloud o la CLI de gcloud.
- Inhabilita de forma temporal la clave CMEK.
- Destruye de forma permanente la clave 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 son coherentes en cuestión de segundos, por lo que puedes observar el impacto de inhabilitar o destruir una clave.
Cuando inhabilitas o borras la clave de encriptación de una instancia, ya no podrás ver ni recuperar datos de la instancia. Todos los datos almacenados en la instancia se vuelven inaccesibles, incluido el historial de código, las solicitudes de extracción y los problemas.
Los usuarios con el rol de administrador de instancias de Secure Source Manager o de propietario de la instancia pueden borrar la instancia.
Políticas de la organización de CMEK
Secure Source Manager admite restricciones de políticas de la 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 de CMEK.
Cuando la API de Secure Source Manager se encuentra en la lista de servicios de la política
Deny
de la restricciónconstraints/gcp.restrictNonCmekServices
, Secure Source Manager se niega a crear instancias nuevas que no estén protegidas por CMEK.Cuando se configura
constraints/gcp.restrictCmekCryptoKeyProjects
, Secure Source Manager crea instancias protegidas por 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 la organización, consulta Políticas de la organización de CMEK.
Próximos pasos
- Implementa una instancia encriptada con CMEK
- Más información sobre CMEK
- Obtén más información sobre la encriptación predeterminada de Google