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 una organización:

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

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

Roles obligatorios

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

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

Es posible que tu administrador también pueda otorgar estos permisos a cada usuario con roles personalizados o con otros roles predefinidos.

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 tengan este permiso pueden crear recursos protegidos por CMEK con la consola de Google Cloud , pero pueden seleccionar una clave 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 del recurso falla.

Cómo requerir protección de CMEK

Para exigir la protección con CMEK en tu organización, 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 servicio de Google Cloud(por ejemplo, bigquery.googleapis.com). Para usar esta restricción, proporciona una lista de nombres de servicio de Google Cloud y establece 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 se realizan correctamente sin especificar una clave de Cloud KMS. Además, esta restricción bloquea la eliminación de la protección de CMEK de los recursos de estos servicios. Esta restricción solo se puede aplicar a los servicios compatibles.

Limita el uso de claves de Cloud KMS para CMEK

Para limitar las claves de Cloud KMS que se usan para la protección de 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 claves de 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 realizan correctamente 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 restricción cuando se requiere CMEK
Agent Assist dialogflow.googleapis.com
Agent Search discoveryengine.googleapis.com
AlloyDB para PostgreSQL alloydb.googleapis.com
Apigee apigee.googleapis.com
Application Integration integrations.googleapis.com
Artifact Registry artifactregistry.googleapis.com
Servicio Backup and DR backupdr.googleapis.com
Copia de seguridad para GKE gkebackup.googleapis.com
BigQuery bigquery.googleapis.com
Bigtable bigtable.googleapis.com
Cloud Data Fusion datafusion.googleapis.com
Cloud Logging logging.googleapis.com
Cloud Run run.googleapis.com
Cloud Run Functions cloudfunctions.googleapis.com
Cloud SQL sqladmin.googleapis.com
Cloud Storage storage.googleapis.com
Cloud Tasks cloudtasks.googleapis.com
Cloud TPU tpu.googleapis.com
Cloud Workstations workstations.googleapis.com
Colab Enterprise aiplatform.googleapis.com
Compute Engine compute.googleapis.com
Customer Experience Insights contactcenterinsights.googleapis.com
Data Studio datastudio.googleapis.com
Database Migration Service datamigration.googleapis.com
Dataflow dataflow.googleapis.com
Dataform dataform.googleapis.com
Datastream datastream.googleapis.com
Dialogflow CX dialogflow.googleapis.com
Document AI documentai.googleapis.com
Eventarc Advanced (versión preliminar) eventarc.googleapis.com
Eventarc Standard eventarc.googleapis.com
Filestore file.googleapis.com
Firestore firestore.googleapis.com
Gemini Enterprise discoveryengine.googleapis.com
Google Cloud Managed Lustre lustre.googleapis.com
Google Cloud Managed Service para Apache Kafka managedkafka.googleapis.com
Google Cloud NetApp Volumes netapp.googleapis.com
Google Cloud Observability (versión preliminar) observability.googleapis.com
Google Kubernetes Engine (versión preliminar) container.googleapis.com
Google Security Operations chronicleservicemanager.googleapis.com
Knowledge Catalog dataplex.googleapis.com
Looker (Google Cloud Core) looker.googleapis.com
Managed Service para Apache Airflow composer.googleapis.com
Managed Service para Apache Spark dataproc.googleapis.com
Memorystore for Redis redis.googleapis.com
Memorystore for Redis Cluster redis.googleapis.com
Memorystore for Valkey memorystore.googleapis.com
Parameter Manager parametermanager.googleapis.com
Pub/Sub pubsub.googleapis.com
Secret Manager secretmanager.googleapis.com
Secure Source Manager securesourcemanager.googleapis.com
Security Command Center securitycenter.googleapis.com
Spanner spanner.googleapis.com
Speech‑to‑Text speech.googleapis.com
Vector Search aiplatform.googleapis.com
Vertex AI aiplatform.googleapis.com
Instancias de Vertex AI Workbench notebooks.googleapis.com

Políticas de la organización de CMEK y el Servicio de transferencia de almacenamiento

El Servicio de transferencia de almacenamiento no tiene una integración de CMEK, pero se puede usar con las políticas de la organización de CMEK. Si usas el Servicio de transferencia de almacenamiento y quieres usar CMEK para proteger las credenciales de la base de datos almacenadas en Secret Manager, debes agregar storagetransfer.googleapis.com y secretmanager.googleapis.com a la restricción constraints/gcp.restrictNonCmekServices. Para obtener más información, consulta la documentación de CMEK del Servicio de transferencia de almacenamiento.

Excepciones de aplicación de políticas por tipo de recurso

Las restricciones de la política 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 a todos los tipos de recursos de un servicio que admiten CMEK y se basan únicamente en la configuración del recurso. Aquí se resumen algunas excepciones notables:

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

Ejemplos de configuración

En los ejemplos de configuración, se supone que la organización de ejemplo tiene la siguiente jerarquía de recursos:

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

Exige el uso de CMEK y limita las claves para un proyecto

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

Para exigir la protección de CMEK en todos los recursos nuevos de Cloud Storage, usa el siguiente parámetro de configuración de la 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 garantizar que solo se usen las claves de projects/4, utiliza 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

Exige el uso de CMEK y limita las claves dentro de una carpeta

Como alternativa, supongamos que esperas agregar proyectos de Cloud KMS adicionales en folders/2 en el futuro y deseas exigir CMEK de forma más amplia en folders/3. Para esta situación, necesitas configuraciones un poco diferentes.

Para requerir protección adicional de CMEK para los recursos nuevos de Cloud SQL y Cloud Storage en cualquier lugar de 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 garantizar 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

Exige el uso de CMEK para una organización

Para exigir CMEK en toda la organización (en los servicios compatibles), configura la restricción constraints/gcp.restrictNonCmekServices con el siguiente parámetro:

  • 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 admitidos)

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 que no sea CMEK cuando se configuraconstraints/gcp.restrictNonCmekServices para un proyecto y un servicio. La restricción de la política de la organización de CMEK solo es visible cuando se le otorgó a la cuenta del cliente 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 específicas, consulta Usa restricciones.