Google Cloud ofrece dos restricciones de política de organización para ayudar a asegurar el uso de CMEK en una 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 utilizan para la protección con CMEK.
Las políticas de la organización de CMEK solo se aplican a los recursos que se crean en los servicios Google Cloud admitidos.
Roles obligatorios
Para asegurarte de que cada usuario tenga los permisos necesarios para comprobar las políticas de la organización al crear recursos, pide a tu administrador que conceda a cada usuario el rol de gestión de identidades y accesos lector de políticas de la organización (roles/orgpolicy.policyViewer
) en tu organización.
Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.
Este rol predefinido contiene los permisos necesarios para comprobar las políticas de la organización al crear recursos. Para ver los permisos exactos que se necesitan, despliega la sección Permisos necesarios:
Permisos obligatorios
Para comprobar las políticas de la organización al crear recursos, se necesitan los siguientes permisos:
-
Para ver todos los detalles de la política de la organización, sigue estos pasos:
orgpolicy.policy.get
-
Para comprobar la política de organización al crear recursos, sigue estos pasos:
orgpolicy.policies.check
Es posible que tu administrador también pueda conceder estos permisos a cada usuario con roles personalizados u 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 Google Cloud que creen recursos protegidos por claves CMEK. Los usuarios que no tienen este permiso pueden crear recursos protegidos con CMEK mediante la consola, pero pueden seleccionar una clave CMEK que no esté permitida por la restricción restrictCmekCryptoKeyProjects
. Google Cloud Si se selecciona una clave que no cumple esta restricción, la creación del recurso acabará fallando.
Requerir protección con CMEK
Para requerir la protección de CMEK en 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 asigna el valor Deny a la restricción. Esta configuración bloquea la creación de recursos en estos servicios si el recurso no está protegido por una CMEK. En otras palabras, las solicitudes para crear un recurso en el servicio no se completan si no se especifica una clave de Cloud KMS. Además, esta restricción impide que se elimine la protección con CMEK de los recursos de estos servicios. Esta restricción solo se puede aplicar a los servicios admitidos.
Limitar el uso de claves de Cloud KMS para CMEK
Para 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 define la restricción como Permitir. Esta configuración restringe los servicios admitidos para que las claves CMEK solo se puedan elegir de los proyectos, las carpetas y las organizaciones que se indiquen.
Las solicitudes para crear recursos protegidos con CMEK en servicios configurados no se completan sin una clave de Cloud KMS de uno de los recursos permitidos. Si se configura, esta restricción se aplica a todos los servicios admitidos.
Servicios admitidos
Servicio | Valor de la restricción cuando se requiere CMEK |
---|---|
Agent Assist | dialogflow.googleapis.com |
Aplicaciones de IA | discoveryengine.googleapis.com |
AlloyDB for PostgreSQL | alloydb.googleapis.com |
Apigee | apigee.googleapis.com |
Application Integration | integrations.googleapis.com |
Artifact Registry | artifactregistry.googleapis.com |
Copia de seguridad de 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 |
Conversational Insights | 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 |
Google Agentspace Enterprise | discoveryengine.googleapis.com |
Google Cloud NetApp Volumes | netapp.googleapis.com |
Google Kubernetes Engine (Vista previa) | container.googleapis.com |
Looker (servicio principal de Google Cloud) | looker.googleapis.com |
Memorystore para Redis | redis.googleapis.com |
Pub/Sub | pubsub.googleapis.com |
Secret Manager | secretmanager.googleapis.com |
Secure Source Manager | securesourcemanager.googleapis.com |
Spanner | spanner.googleapis.com |
Speech‑to‑Text | speech.googleapis.com |
Vertex AI | aiplatform.googleapis.com |
Instancias de Vertex AI Workbench | notebooks.googleapis.com |
Políticas de organización de CMEK y Servicio de transferencia de Storage
Aunque Storage Transfer Service no tiene una integración con CMEK, se puede usar con políticas de organización de CMEK. Si usas el Servicio de transferencia de Storage y quieres asegurarte de que las credenciales de la base de datos almacenadas en Secret Manager estén protegidas por una CMEK, debes añadir storagetransfer.googleapis.com
y secretmanager.googleapis.com
a la restricción constraints/gcp.restrictNonCmekServices
. Para obtener más información, consulta la documentación sobre CMEK del Servicio de transferencia de Storage.
Excepciones de cumplimiento por tipo de recurso
Las restricciones de políticas de la organización de CMEK se aplican al crear un recurso o al cambiar (si se admite) la clave de Cloud KMS de un 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 importantes:
Tipo de recurso | Excepción de cumplimiento |
---|---|
bigquery.googleapis.com/Dataset |
Se aplica parcialmente a la clave de Cloud KMS predeterminada del conjunto de datos (solo gcp.restrictCmekCryptoKeyProjects )
|
bigquery.googleapis.com/Job |
Solo para tareas de consulta: se aplica a la clave de Cloud KMS proporcionada con la consulta o a 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 |
Las configuraciones de transferencia usan el nombre del servicio Data Transfer Service (bigquerydatatransfer.googleapis.com) para las restricciones de la política de la organización de CMEK. |
container.googleapis.com/Cluster |
Vista previa Se aplica solo a la clave de Cloud KMS del disco de arranque del nodo; no se aplica a los secretos en la capa de aplicación. |
logging.googleapis.com/LogBucket |
Se aplica a los segmentos de registro creados explícitamente. Consulta también la configuración independiente que se requiere para asegurar el cumplimiento de los segmentos de registro integrados. |
storage.googleapis.com/Bucket |
Se aplica a la clave de Cloud KMS predeterminada del segmento |
storage.googleapis.com/Object |
Se aplica independientemente del segmento. Consulta también la configuración independiente de la clave de Cloud KMS predeterminada del segmento. |
Ejemplos de configuración
En los ejemplos de configuración, supongamos que la organización de ejemplo tiene la siguiente jerarquía de recursos:
Requerir CMEK y limitar las claves de un proyecto
Supongamos que quieres requerir la protección con CMEK para todos los recursos de Cloud Storage de projects/5
y asegurarte de que solo se puedan usar las claves de projects/4
.
Para requerir la protección con CMEK en todos los recursos nuevos de Cloud Storage, usa el siguiente ajuste 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: Denegación
- Valor de la política:
storage.googleapis.com
Para asegurarte de que solo se usan 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
Requerir CMEK y limitar las claves a una carpeta
También puedes añadir más proyectos de Cloud KMS a folders/2
en el futuro y querer que se requiera la CMEK de forma más generalizada en folders/3
. Para este caso, necesitas configuraciones ligeramente diferentes.
Para requerir protección adicional de CMEK para los nuevos recursos 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: Denegación
- Valores de la política:
sqladmin.googleapis.com
,storage.googleapis.com
Para asegurarse de que solo se usan claves de proyectos de Cloud KMS en folders/2
, siga estos pasos:
- 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
Requerir CMEK para una organización
Para requerir CMEK en toda la organización (en los servicios admitidos),
configure la restricción constraints/gcp.restrictNonCmekServices
con el siguiente ajuste:
- Política de la organización:
constraints/gcp.restrictNonCmekServices
- Vinculación en:
organizations/1
- Tipo de política: Denegación
- Valores de la política: (todos los servicios admitidos)
Limitaciones
Si usas la Google Cloud consola para crear un recurso, puede que no puedas usar ninguna opción de cifrado que no sea CMEK cuando constraints/gcp.restrictNonCmekServices
esté configurado para un proyecto y un servicio. La restricción de la política de organización de CMEK solo se muestra cuando se ha concedido el permiso orgpolicy.policy.get
de gestión de identidades y accesos a la cuenta de cliente en el proyecto.
Siguientes pasos
Consulta la introducción al servicio de políticas de organización para obtener más información sobre las ventajas y los casos prácticos habituales de las políticas de organización.
Para ver más ejemplos sobre cómo crear una política de la organización con restricciones concretas, consulta Usar restricciones.