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.restrictNonCmekServicesse usa para requerir la protección de CMEK.constraints/gcp.restrictCmekCryptoKeyProjectsse 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 recién creados dentro de los servicios admitidos Google Cloud .
Roles obligatorios
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 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:
orgpolicy.policy.get -
Para verificar la política de la organización cuando se crean recursos:
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 Google Cloud consola que crean recursos protegidos por claves de CMEK. Los usuarios sin este permiso pueden crear recursos protegidos por CMEK
con la Google Cloud consola, pero pueden seleccionar una clave de 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.
Cómo requerir protección de CMEK
Para requerir la protección de CMEK para tu organización, configura la
constraints/gcp.restrictNonCmekServices política de la organización.
Como restricción de lista, los valores aceptados para esta restricción son Google Cloud
nombres de servicio (por ejemplo, bigquery.googleapis.com). Para usar esta restricción,
proporciona una lista de Google Cloud nombres de servicio 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 en estos servicios. Esta restricción
solo se puede aplicar a los servicios admitidos.
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 admitidos para que las claves de CMEK
se puedan elegir solo de los proyectos, las carpetas y las organizaciones enumeradas.
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 admitidos.
Servicios compatibles
| Servicio | Valor de restricción cuando se requiere CMEK |
|---|---|
| Agent Assist | dialogflow.googleapis.com |
| AlloyDB para PostgreSQL | alloydb.googleapis.com |
| Apigee | apigee.googleapis.com |
| Application Integration | integrations.googleapis.com |
| Artifact Registry | artifactregistry.googleapis.com |
| Copia de seguridad para GKE | gkebackup.googleapis.com |
| BigQuery | bigquery.googleapis.com |
| Bigtable | bigtable.googleapis.com |
| Cloud Composer | composer.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 Workstations | workstations.googleapis.com |
| Colab Enterprise | aiplatform.googleapis.com |
| Compute Engine | compute.googleapis.com |
| Estadísticas de conversación | contactcenterinsights.googleapis.com |
| Dataflow | dataflow.googleapis.com |
| Dataform | dataform.googleapis.com |
| Dataplex Universal Catalog | dataplex.googleapis.com |
| Dataproc | dataproc.googleapis.com |
| Dialogflow CX | dialogflow.googleapis.com |
| Document AI | documentai.googleapis.com |
| Eventarc Advanced (vista previa) | eventarc.googleapis.com |
| Eventarc Standard | eventarc.googleapis.com |
| Filestore | file.googleapis.com |
| Firestore | firestore.googleapis.com |
| Gemini Enterprise | discoveryengine.googleapis.com |
| Google Cloud NetApp Volumes | netapp.googleapis.com |
| Google Kubernetes Engine (vista previa) | container.googleapis.com |
| Looker (Google Cloud Core) | looker.googleapis.com |
| Memorystore para Redis | redis.googleapis.com |
| Memorystore for Redis Cluster | redis.googleapis.com |
| Memorystore for Valkey | memorystore.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 |
| Vertex AI | aiplatform.googleapis.com |
| Vertex AI Search | discoveryengine.googleapis.com |
| Instancias de Vertex AI Workbench | notebooks.googleapis.com |
Políticas de la organización de CMEK y Servicio de transferencia de almacenamiento
El Servicio de transferencia de almacenamiento no tiene una integración con CMEK, pero se puede usar con 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 constraints/gcp.restrictNonCmekServices
restricción. Para obtener más información, consulta la documentación de CMEK del Servicio de transferencia de almacenamiento.
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 (cuando es compatible) la clave de Cloud KMS en un recurso existente recurso. 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 |
|---|---|
bigquery.googleapis.com/Dataset |
Se aplica parcialmente a la clave predeterminada de Cloud KMS del conjunto de datos (gcp.restrictCmekCryptoKeyProjects solamente).
|
bigquery.googleapis.com/Job |
Solo trabajos de consulta: se aplica a la clave de Cloud KMS proporcionada con la consulta o predeterminada del proyecto de facturación. Consulta también la configuración independiente de la clave predeterminada de Cloud KMS del proyecto. |
bigquerydatatransfer.googleapis.com/TransferConfig |
Las configuraciones de transferencia usan el nombre de 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 a la clave de Cloud KMS solo para el disco de arranque del nodo; no se aplica a los secretos en la capa de la aplicación. |
logging.googleapis.com/LogBucket |
Se aplica a 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 a la clave predeterminada de Cloud KMS del bucket. |
storage.googleapis.com/Object |
Se aplica de forma independiente del bucket. Consulta también la configuración independiente de la clave predeterminada de Cloud KMS del bucket. |
Ejemplos de configuración
En los ejemplos de configuración, supongamos que la organización de muestra tiene la siguiente jerarquía de recursos:

Requiere CMEK y limita las claves para un proyecto
Supongamos que quieres requerir 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 de projects/4 puedan ser
usadas.
Para requerir la protección de CMEK para todos los recursos nuevos de Cloud Storage, usa la siguiente 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 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
Requiere CMEK y limita las claves dentro de una carpeta
Como alternativa, supongamos que esperas agregar proyectos adicionales de Cloud KMS
en folders/2 en el futuro y quieres requerir CMEK de forma más amplia
dentro de folders/3. Para esta situación, necesitas configuraciones ligeramente 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 asegurarte de que solo se usen las claves de los proyectos de Cloud KMS en folders/2 son
usadas:
- 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 toda la organización (en los servicios admitidos),
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 Google Cloud la consola para crear un recurso, es posible que observes que
no puedes usar ninguna opción de encriptación que no sea CMEK cuando
constraints/gcp.restrictNonCmekServices está configurado para un proyecto y un
servicio. La restricción de la política de la organización de CMEK solo está visible cuando se le otorgó a la
cuenta del cliente el permiso de IAM
en el proyecto.orgpolicy.policy.get
¿Qué sigue?
Consulta Introducción al Servicio de las 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.