Restricciones de la política de la organización para Cloud Storage

En esta página, se proporciona información complementaria sobre las restricciones de las políticas de la organización que se aplican a Cloud Storage. Usa las restricciones para aplicar comportamientos de buckets y objetos en toda la organización o el proyecto.

Restricciones de Cloud Storage

Las siguientes restricciones se pueden aplicar a una política de la organización y se relacionan con Cloud Storage:

Aplica la prevención de acceso público

Nombre de la API: constraints/storage.publicAccessPrevention

Cuando aplicas la restricción publicAccessPrevention a un recurso, el acceso público se restringe para todos los buckets y objetos, tanto nuevos como existentes, en ese recurso.

Ten en cuenta que habilitar o inhabilitar publicAccessPrevention puede tardar hasta 10 minutos en implementarse.

Período establecido en la política de retención, en segundos

Nombre de la API: constraints/storage.retentionPolicySeconds

Cuando aplicas la restricción retentionPolicySeconds, debes especificar una o más duraciones como parte de la restricción. Una vez establecidas, las políticas de retención de depósitos deben incluir una de las duraciones especificadas. retentionPolicySeconds se requiere con la creación de buckets nuevos o cuando se agrega o actualiza el período de retención de un bucket existente; sin embargo, no se requiere otra manera en buckets preexistentes.

Si configuras varias restricciones retentionPolicySeconds en diferentes niveles de recursos, estas se aplican de manera jerárquica. Por este motivo, se recomienda establecer el campo inheritFromParent en true, lo que garantiza que también se tengan en cuenta las políticas de las capas superiores.

Exige el acceso uniforme a nivel de bucket

Nombre de la API: constraints/storage.uniformBucketLevelAccess

Cuando aplicas la restricción uniformBucketLevelAccess, los buckets nuevos deben habilitar la función de acceso uniforme a nivel de bucket, y los buckets preexistentes con esta característica habilitada no pueden inhabilitarla. Los buckets preexistentes con acceso uniforme a nivel de bucket no son necesarios para habilitarla.

Modo detallado del registro de auditoría

Nombre de la API: constraints/gcp.detailedAuditLoggingMode

Cuando aplicas la restricción detailedAuditLoggingMode, los registros de auditoría de Cloud asociados con operaciones de Cloud Storage contienen información detallada de solicitud y respuesta. Se recomienda usar esta restricción junto con el bloqueo de depósitos cuando buscas varios cumplimientos, como la regla 17a-4(f) de la SEC, la regla 1.31(c)-(d) de la CFTC y la regla 4511(c) de la FINRA.

En la información registrada, se incluyen parámetros de búsqueda, de ruta y de cuerpo de solicitud. En los registros, se excluyen algunas partes de las solicitudes y respuestas asociadas con información sensible, por ejemplo:

  • Credenciales, como Authorization, X-Goog-Signature o upload-id
  • Información de la clave de encriptación, como x-goog-encryption-key
  • Datos de objeto sin procesar

Cuando uses esta restricción, ten en cuenta lo siguiente:

  • No se garantiza la información detallada de las solicitudes y respuestas. En casos excepcionales, es posible que se muestren registros vacíos.

  • Habilitar detailedAuditLoggingMode aumenta la cantidad de datos almacenados en los registros de auditoría, que pueden afectar tus cargos de Cloud Logging para los registros de acceso a los datos.

  • Habilitar o inhabilitar detailedAuditLoggingMode puede tomar hasta 10 minutos en implementarse.

  • Las solicitudes y respuestas registradas se registran en un formato genérico que coincide con los nombres de campo de la API de JSON.

Restringe los tipos de autenticación

Nombre de la API: constraints/storage.restrictAuthTypes

Cuando aplicas la restricción restrictAuthTypes, las solicitudes para acceder a los recursos de Cloud Storage con el tipo de autenticación restringido fallan, sin importar la validez de la solicitud. Esta restricción se recomienda cuando necesitas cumplir con los requisitos reglamentarios o aumentar la seguridad de los datos.

Se pueden restringir los siguientes tipos de autenticación:

  • USER_ACCOUNT_HMAC_SIGNED_REQUESTS: restringe las solicitudes firmadas por las claves HMAC de la cuenta de usuario.

  • SERVICE_ACCOUNT_HMAC_SIGNED_REQUESTS: restringe las solicitudes firmadas por las claves HMAC de la cuenta de servicio.

  • in:ALL_HMAC_SIGNED_REQUESTS: restringe las solicitudes firmadas por las claves HMAC de la cuenta de usuario o la cuenta de servicio. Si necesitas cumplir con los requisitos de soberanía de los datos, se recomienda restringir todas las solicitudes firmadas de HMAC.

Cuando habilitas esta restricción, ocurre lo siguiente:

  • Cloud Storage restringe el acceso para las solicitudes que se autentican con el tipo de autenticación restringido. Las solicitudes fallan con el error 403 Forbidden.

  • Las entidades que se autorizaron con anterioridad para realizar la solicitud reciben un mensaje de error que explica que el tipo de autenticación está inhabilitado.

  • Si las claves HMAC están restringidas:

    • Las claves HMAC del tipo restringido ya no se pueden crear ni activar en el recurso en el que se aplica la restricción. Las solicitudes para crear o activar claves HMAC fallan con el error 403 Forbidden.

    • Las claves HMAC existentes permanecen, pero ya no se pueden usar. Se pueden desactivar o borrar, pero no se pueden volver a activar.

Cuando uses la restricción restrictAuthTypes, ten en cuenta los recursos existentes que dependen de la autenticación HMAC. Por ejemplo, si migraste desde Amazon Simple Storage Service (Amazon S3), es probable que tu aplicación use claves HMAC para autenticar solicitudes en Cloud Storage. Puedes usar la métrica storage.googleapis.com/authn/authentication_count de Cloud Monitoring a fin de realizar un seguimiento de la cantidad de veces que se usaron las claves HMAC para autenticar solicitudes.

Requiere el uso de claves de encriptación administradas por el cliente (CMEK)

Nombre de la API: constraints/gcp.restrictNonCmekServices

Cuando aplicas la restricción restrictNonCmekServices, debes definir los servicios cuyos recursos requieren el uso de claves de encriptación administradas por el cliente. Puedes aplicar esta restricción a los objetos o buckets de Cloud Storage si agregas storage.googleapis.com a la lista de servicios restringidos con la restricción establecida en Deny. Si estás sujeto a la restricción, los objetos de Cloud Storage deben escribirse con una clave de Cloud KMS, que puede ser especificada en la solicitud o establecida como clave de encriptación predeterminada para el bucket de destino. Los buckets de Cloud Storage deben tener una clave de Cloud KMS configurada como la clave de encriptación predeterminada.

Si intentas escribir un objeto o crear un bucket que no esté encriptado por una clave de Cloud KMS, recibirás el siguiente mensaje de error: “Una política de la organización requiere una clave de encriptación administrada por el cliente (CMEK) en efecto. Establece una CMEK predeterminada en el bucket o especifica una CMEK en tu solicitud”.

Cuando uses esta restricción, ten en cuenta lo siguiente:

  • Habilitar restrictNonCmekServices puede causar cambios rotundos si escribes en un bucket sin una clave predeterminada de Cloud KMS o excluyes una clave de Cloud KMS de tu solicitud.

  • Los buckets existentes que no tienen una clave de Cloud KMS predeterminada no se verán afectados por la restricción. Sin embargo, si configuras una clave de Cloud KMS en un bucket existente, mientras la restricción está habilitada, ese bucket estará sujeto a la restricción.

  • Los objetos existentes encriptados con claves de encriptación administradas por Google o claves de encriptación proporcionadas por el cliente no están sujetos a esta restricción. Sin embargo, las reescrituras de esos objetos estarán sujetas a la restricción.

  • Los cambios en constraints/gcp.restrictNonCmekServices tardan hasta 10 minutos en aplicarse.

Para obtener más información sobre esta restricción, consulta las Políticas de la organización de CMEK.

Restringe proyectos con una clave de encriptación administrada por el cliente (CMEK) válida

Nombre de la API: constraints/gcp.restrictCmekCryptoKeyProjects

Cuando aplicas la restricción restrictCmekCryptoKeyProjects, debes definir los proyectos a partir de los cuales se puede usar una clave de Cloud KMS para usar en solicitudes. Cuando aplicas esta restricción, sucede lo siguiente:

  • Cualquier clave de Cloud KMS especificada en una solicitud debe provenir de un proyecto permitido por la política de la organización.

  • Si creas un bucket nuevo, cualquier clave de Cloud KMS que establezcas en el bucket debe provenir de un proyecto permitido.

  • Las operaciones de escritura y actualización de objetos fallan para los depósitos existentes que tienen una clave de Cloud KMS no válida. Debes cambiar la clave predeterminada de Cloud KMS del bucket a una clave que provenga de un proyecto permitido o quitar Cloud KMS del bucket. Ten en cuenta que no puedes quitar una clave de Cloud KMS de un bucket cuando la restricción restrictNonCmekServices está habilitada.

Si intentas especificar una clave de Cloud KMS en una solicitud que no proviene de un proyecto permitido, recibirás el siguiente mensaje de error: “La clave especificada no se puede usar porque su organización está restringida por su proyecto. Vuelve a intentarlo con una clave de encriptación administrada por el cliente (CMEK) de un proyecto permitido”.

Si intentas escribir en un bucket con una clave de Cloud KMS que no proviene de un proyecto permitido, recibirás el siguiente mensaje de error: “El bucket usa una clave predeterminada de un proyecto que está restringida por una política de la organización vigente. Configura una clave de encriptación administrada por el cliente (CMEK) permitida como predeterminada para el bucket o especifica una CMEK permitida en tu solicitud”.

Cuando uses esta restricción, ten en cuenta lo siguiente:

  • Los objetos existentes no están sujetos a esta restricción.

  • Esta restricción por sí sola no impone el uso de claves de encriptación administradas por el cliente de los proyectos permitidos. Para aplicar el uso de claves de encriptación administradas por el cliente de los proyectos permitidos, debes aplicar las restricciones constraints/gcp.restrictNonCmekServices y constraints/gcp.restrictCmekCryptoKeyProjects.

  • Los cambios en constraints/gcp.restrictCmekCryptoKeyProjects tardan hasta 10 minutos en aplicarse.

Para obtener más información sobre esta restricción, consulta las Políticas de la organización de CMEK.

¿Qué sigue?