Separación de obligaciones

La separación de obligaciones es el concepto de asegurar que un individuo no tenga todos los permisos necesarios para poder completar una acción maliciosa. En Cloud KMS, esta acción podría ser usar una clave para acceder y desencriptar datos a los que el usuario no tendría acceso normalmente.

La separación de obligaciones es un control empresarial que se suele usar en organizaciones más grandes, y cuyo propósito es ayudar a evitar incidentes y errores de seguridad o privacidad. Se considera una recomendación.

Consulta nuestra documentación sobre cómo usar IAM de forma segura para obtener más orientación.

Configura Cloud KMS en un proyecto aparte

Cloud KMS podría ejecutarse en un proyecto existente, por ejemplo, your-project, y este puede ser sensible si los datos que se encriptan con claves en Cloud KMS se almacenan en el mismo proyecto.

Sin embargo, cualquier usuario con acceso de owner en ese proyecto, luego también puede administrar (y realizar operaciones criptográficas con) claves en Cloud KMS de ese proyecto. Esto se debe a que las propias claves pertenecen al proyecto, del cual el usuario es un owner.

En su lugar, para permitir una separación de obligaciones, podrías ejecutar Cloud KMS en su propio proyecto, por ejemplo, your-key-project. Posteriormente, dependiendo de lo estricto de tus requisitos de separación, podrías realizar una de las siguientes opciones:

  • (recomendado) Crea your-key-project sin un owner a nivel del proyecto y, en su lugar, otorga una función de Administrador de organización a nivel de la organización. Este Administrador de organización no es como un owner, es decir, no puede administrar ni usar claves, pero tiene permiso para configurar la Política de IAM, de modo que esta restrinja a quienes se les otorgan permisos para la administración y el uso de claves. Con el uso de un nodo a nivel de la organización, puedes restringir aún más los permisos de los proyectos de tu organización. Consulta la siguiente sección a fin de ver funciones alternativas para el owner que puedas usar con Cloud KMS.
  • (no recomendado) Otorga una función de owner de your-key-project a un usuario distinto del owner en your-project, en el que se usan las claves de Cloud KMS. Este usuario aún tendrá acceso a todas las operaciones de claves.

Elige las funciones de IAM correctas

En el caso de las organizaciones más pequeñas, las funcionalidades básicas de owner, editor y viewer probablemente ofrecen un nivel de detalle suficiente para la administración de claves. En organizaciones más grandes, en las que se requiere la separación de obligaciones, la función owner proporciona acceso excesivo a operaciones de seguridad sensibles. En este caso, en su lugar, recomendamos que uses funciones predefinidas, como las siguientes:

  • Para el propietario del negocio cuya aplicación requiere encriptación: Usa la función de Administrador de organización a nivel de la organización.

  • Para el usuario que administra Cloud KMS, es decir, un miembro del equipo de seguridad de TI de una organización: Las dos funciones con los permisos mínimos requeridos para administrar Cloud KMS a través de GCP Console son las que definen previamente la función de editor de proyecto (editor) o una función personalizada basada en la de Administrador de Cloud KMS (cloudkms.admin) combinada con los siguientes permisos:

    • serviceusage.quotas.get
    • serviceusage.services.get
    • resourcemanager.projects.get

    Consulta Crea una función personalizada para obtener información sobre cómo crear una función personalizada. Si el usuario administra Cloud KMS solo con la herramienta de la línea de comandos de gcloud y la API de Cloud KMS, la función predefinida de Administrador de Cloud KMS cuenta con los permisos suficientes sin necesidad de los permisos serviceusage.quotas.get, serviceusage.services.get o resourcemanager.projects.get.

  • Para el usuario o servicio que usa claves en las operaciones de encriptación y desencriptación: Usa una cuenta de servicio de Cloud KMS a nivel de proyecto con encriptador/desencriptador (cloudkms.cryptoKeyEncrypterDecrypter). Si el servicio solo necesita poder escribir o solo leer datos, restringe aún más el uso con la función de solo encriptador (cloudkms.cryptoKeyEncrypter) o desencriptador (cloudkms.cryptoKeyDecrypter).

Si usas un proyecto separado para Cloud KMS y estas funciones recomendadas, puedes abordar varias inquietudes de seguridad sobre la separación de obligaciones, por ejemplo:

  • Cualquier usuario que requiera una funcionalidad básica a nivel del proyecto para usar otro servicio de Google Cloud no puede usar esa autoridad a fin de acceder a Cloud KMS.
  • Ningún usuario requerirá la función de owner, que le otorgaría demasiados permisos para usar las claves. Sin un owner, ningún usuario puede administrar ni usar una clave para encriptar o desencriptar datos directamente según la configuración predeterminada. Ten en cuenta que si los registros de acceso de datos no están habilitados, un owner podría gozar potencialmente de acceso sin auditar para usar material de clave.
¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Documentación de Cloud KMS