Políticas de la organización de CMEK

Google Cloud ofrece dos restricciones de políticas de la organización para ayudar a garantizar el uso de CMEK en toda la organización:

  • constraints/gcp.restrictNonCmekServices se usa para requerir protección con CMEK.
  • constraints/gcp.restrictCmekCryptoKeyProjects se usa para limitar las claves de Cloud KMS que se usan para la protección de CMEK.

Las políticas de la organización de CMEK solo se aplican a los recursos creados recientemente dentro de los servicios de Google Cloud compatibles.

Funciones obligatorias

Para asegurarte de que cada usuario tenga los permisos necesarios para verificar las políticas de la organización cuando crea recursos, pídele a tu administrador que le otorgue a cada usuario el rol de IAM de visualizador de políticas de la organización (roles/orgpolicy.policyViewer) en tu organización. Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso.

Este rol predefinido contiene los permisos necesarios para verificar las políticas de la organización cuando se crean recursos. Para ver los permisos exactos que son necesarios, expande la sección Permisos requeridos:

Permisos necesarios

Se requieren los siguientes permisos para verificar las políticas de la organización cuando se crean recursos:

  • Para ver los detalles completos de la política de la organización, haz lo siguiente: orgpolicy.policy.get
  • Para verificar la política de la organización cuando creas recursos, haz lo siguiente: orgpolicy.policies.check

El administrador también puede otorgar estos permisos a cada usuario con funciones personalizadas o, también, otras funciones predefinidas.

Cuando las políticas de la organización están activas, se requiere el permiso orgpolicy.policies.check para los usuarios de la consola de Google Cloud que crean recursos protegidos por claves CMEK. Los usuarios que no tienen este permiso pueden crear recursos protegidos por CMEK con la consola de Google Cloud, pero pueden seleccionar una CMEK que no esté permitida por la restricción restrictCmekCryptoKeyProjects. Cuando se selecciona una clave que no cumple con esta restricción, la creación de recursos falla en algún momento.

Requiere protección con CMEK

Si quieres que tu organización requiera la protección con CMEK, configura la política de la organización constraints/gcp.restrictNonCmekServices.

Como restricción de lista, los valores aceptados para esta restricción son los nombres de los servicios de Google Cloud (por ejemplo, sqladmin.googleapis.com). Para usar esta restricción, proporciona una lista de nombres de servicios de Google Cloud y configura la restricción en Rechazar. Esta configuración bloquea la creación de recursos en estos servicios si el recurso no está protegido por CMEK. En otras palabras, las solicitudes para crear un recurso en el servicio no tienen éxito si no se especifica una clave de Cloud KMS. Además, esta restricción bloquea la eliminación de la protección con CMEK de los recursos en estos servicios. Esta restricción solo se puede aplicar a los servicios compatibles.

Limita el uso de claves de Cloud KMS para CMEK

Si deseas limitar las claves de Cloud KMS que se usan para la protección con CMEK, configura la restricción constraints/gcp.restrictCmekCryptoKeyProjects.

Como restricción de lista, los valores aceptados son indicadores de jerarquía de recursos (por ejemplo, projects/PROJECT_ID, under:folders/FOLDER_ID y under:organizations/ORGANIZATION_ID). Para usar esta restricción, configura una lista de indicadores de jerarquía de recursos y establece la restricción en Permitir. Esta configuración restringe los servicios compatibles para que las CMEK se puedan elegir solo de los proyectos, las carpetas y las organizaciones de la lista. Las solicitudes para crear recursos protegidos por CMEK en servicios configurados no se ejecutan de forma correcta sin una clave de Cloud KMS de uno de los recursos permitidos. Cuando se configura, esta restricción se aplica a todos los servicios compatibles.

Servicios compatibles

Servicio Valor de la restricción cuando se requiere CMEK
Application Integration integrations.googleapis.com
Artifact Registry artifactregistry.googleapis.com
BigQuery bigquery.googleapis.com
Bigtable bigtable.googleapis.com
Cloud Composer composer.googleapis.com
Cloud Functions cloudfunctions.googleapis.com
Cloud Logging logging.googleapis.com
Cloud Run run.googleapis.com
Cloud SQL sqladmin.googleapis.com
Cloud Storage storage.googleapis.com
Cloud Workstations workstations.googleapis.com
Compute Engine compute.googleapis.com
Dataflow dataflow.googleapis.com
Dataproc dataproc.googleapis.com
Document AI documentai.googleapis.com
Filestore file.googleapis.com
Firestore (vista previa) firestore.googleapis.com
Google Kubernetes Engine (vista previa) container.googleapis.com
Pub/Sub pubsub.googleapis.com
Secret Manager secretmanager.googleapis.com
Spanner spanner.googleapis.com
Vertex AI aiplatform.googleapis.com
Instancias de Vertex AI Workbench notebooks.googleapis.com

Excepciones de aplicación por tipo de recurso

Las restricciones de las políticas de la organización de CMEK se aplican cuando se crea un recurso nuevo o cuando se cambia (si se admite) la clave de Cloud KMS en un recurso existente. Por lo general, se aplican en todos los tipos de recursos de un servicio que admiten CMEK y solo se basan en la configuración del recurso. Algunas excepciones notables se resumen aquí:

Tipo de recurso Excepción a la aplicación
bigquery.googleapis.com/Dataset Se aplica de forma parcial a la clave predeterminada de Cloud KMS del conjunto de datos (solo gcp.restrictCmekCryptoKeyProjects)
bigquery.googleapis.com/Job Solo trabajos de consulta: se aplican en la clave de Cloud KMS proporcionada con la consulta o la configuración predeterminada del proyecto de facturación; consulta también la configuración separada de la clave de Cloud KMS predeterminada del proyecto
bigquerydatatransfer.googleapis.com/TransferConfig Los parámetros de configuración de transferencia usan el nombre del servicio del Servicio de transferencia de datos (bigquerydatatransfer.googleapis.com) para las restricciones de las políticas de la organización de CMEK.
container.googleapis.com/Cluster (Vista previa) Se aplica en la clave de Cloud KMS solo en el disco de arranque del nodo; no se aplica en los secretos en la capa de la aplicación
logging.googleapis.com/LogBucket Se aplica en buckets de registros creados explícitamente; consulta también la configuración necesaria para garantizar el cumplimiento de los buckets de registros integrados.
storage.googleapis.com/Bucket Se aplica en la clave predeterminada de Cloud KMS del bucket
storage.googleapis.com/Object Se aplica independientemente del bucket. Consulta también la configuración de la clave predeterminada de Cloud KMS del bucket en el extremo independiente.

Ejemplos de configuración

En los ejemplos de configuración, supongamos que la organización de muestra tiene la siguiente jerarquía de recursos:

Diagrama de la jerarquía de recursos de una organización

Exigir CMEK y limitar claves para un proyecto

Supongamos que deseas solicitar protección con CMEK para todos los recursos de Cloud Storage en projects/5 y asegurarte de que solo se puedan usar las claves que provengan de projects/4.

Si quieres solicitar la protección con CMEK para todos los recursos nuevos de Cloud Storage, usa la siguiente configuración de política de la organización:

  • Política de la organización: constraints/gcp.restrictNonCmekServices
  • Vinculación en: projects/5
  • Tipo de política: Rechazar
  • Valor de la política: storage.googleapis.com

Para asegurarte de que solo se usen las claves de projects/4, usa la siguiente configuración:

  • Política de la organización: constraints/gcp.restrictCmekCryptoKeyProjects
  • Vinculación en: projects/5
  • Tipo de política: Permitir
  • Valor de la política: projects/4

Exigir CMEK y limitar las claves dentro de una carpeta

Como alternativa, supongamos que deseas agregar proyectos de Cloud KMS adicionales en folders/2 en el futuro y deseas requerir CMEK de forma más amplia dentro de folders/3. Para este caso, necesitas configuraciones un poco diferentes.

Para requerir protección adicional con CMEK para los recursos nuevos de Cloud SQL y Cloud Storage en cualquier lugar en folders/3, haz lo siguiente:

  • Política de la organización: constraints/gcp.restrictNonCmekServices
  • Vinculación en: folders/3
  • Tipo de política: Rechazar
  • Valores de la política: sqladmin.googleapis.com, storage.googleapis.com

Para asegurarte de que solo se usen las claves de los proyectos de Cloud KMS en folders/2, haz lo siguiente:

  • Política de la organización: constraints/gcp.restrictCmekCryptoKeyProjects
  • Vinculación en: folders/3
  • Tipo de política: Permitir
  • Valor de la política: under:folders/2

Requiere CMEK para una organización

Para requerir CMEK en todas partes de la organización (en los servicios compatibles), establece la restricción constraints/gcp.restrictNonCmekServices con la siguiente configuración:

  • Política de la organización: constraints/gcp.restrictNonCmekServices
  • Vinculación en: organizations/1
  • Tipo de política: Rechazar
  • Valores de la política (todos los servicios compatibles)

Limitaciones

Si usas la consola de Google Cloud para crear un recurso, es posible que notes que no puedes usar ninguna opción de encriptación aparte de CMEK cuando constraints/gcp.restrictNonCmekServices se configura para un proyecto y un servicio. La restricción de la política de la organización de CMEK solo es visible cuando la cuenta de cliente tiene el permiso de IAM orgpolicy.policy.get en el proyecto.

¿Qué sigue?

Consulta Introducción al Servicio de políticas de la organización para obtener más información sobre los beneficios y los casos de uso comunes de las políticas de la organización.

Para obtener más ejemplos sobre cómo crear una política de la organización con restricciones particulares, consulta Usa restricciones.