Prevención del acceso público

Ir a ejemplos

En esta página, se analiza el parámetro de configuración del bucket de prevención del acceso público y la restricción de la política de la organización de prevención del acceso público relacionada. El uso del parámetro de configuración o la restricción restringe las entidades, como los usuarios anónimos a través de Internet, que pueden tener acceso a tus datos. Para obtener una descripción general de las opciones de control de acceso, consulta Descripción general del control de acceso.

Descripción general

La prevención del acceso público evita que los buckets y objetos de Cloud Storage se expongan al público por accidente. Cuando aplicas la prevención del acceso público, nadie puede hacer públicos los datos de los buckets aplicables a través de políticas de IAM o LCA. Existen dos maneras de aplicar la prevención del acceso público:

¿Debería usar la prevención de acceso público?

Usa la prevención del acceso público si sabes que tus datos nunca deberían exponerse en la Internet pública. Para proporcionar la mayor seguridad a tus recursos, aplica la prevención del acceso público en el nivel más alto posible de la organización.

No debes usar la prevención de acceso público si necesitas mantener el bucket público para casos de uso como el hosting de sitios web estáticos. Si quieres hacer excepciones para esos buckets en las organizaciones que aplican la prevención de acceso público, inhabilita la prevención de acceso público en el proyecto específico que contiene el bucket.

Cómo es el comportamiento cuando se aplica de manera forzosa

Los recursos sujetos a la prevención del acceso público tienen el siguiente comportamiento:

  • Las solicitudes a buckets y objetos autorizados con allUsers y allAuthenticatedUsers fallan con un código de estado HTTP 401 o 403.

  • Las políticas de IAM y las LCA existentes que otorgan acceso a allUsers y allAuthenticatedUsers permanecen vigentes, pero se anulan mediante la prevención de acceso público.

  • Las solicitudes para crear buckets u objetos con allUsers y allAuthenticatedUsers en sus políticas de IAM o LCA fallan, con la siguiente excepción:

    • Si un bucket tiene una LCA de objetos predeterminada que contiene allUsers, las solicitudes para crear objetos en ese bucket se realizan de forma correcta. Las LCA para esos objetos contienen allUsers, pero la prevención del acceso público anula allUsers.
  • Las solicitudes para agregar allUsers y allAuthenticatedUsers a una política de IAM o una LCA fallan con 412 Precondition Failed.

Herencia

Incluso si un bucket no tiene una prevención del acceso público aplicada de manera explícita en su configuración, es posible que de todos modos herede la prevención del acceso público, que ocurre si la restricción de la política de la organizaciónstorage.publicAccessPrevention se configura en el proyecto, la carpeta o la organización en los que existe el bucket. Por este motivo, el estado del bucket solo se puede establecer como enforced o inherited.

  • Si los metadatos de prevención de acceso público de un bucket se configuran en enforced, la prevención de acceso público se aplica al bucket.

  • Si los metadatos de prevención de acceso público de un bucket se configuran en inherited, la prevención de acceso público se determina mediante la restricción de la política de la organización storage.publicAccessPrevention:

    • Si storage.publicAccessPrevention se configura como True para el proyecto que contiene el bucket, se aplicará la prevención del acceso público al bucket.

    • Si storage.publicAccessPrevention se configura como False para el proyecto que contiene el bucket, la prevención del acceso público no se aplicará al bucket.

    • Si storage.publicAccessPrevention no se configura para el proyecto que contiene el bucket, el prevención de acceso público se determina por el valor storage.publicAccessPrevention establecido por la carpeta, si lo hay, que contenga el proyecto.

      • Del mismo modo, si la carpeta que contiene el bucket tampoco establece ningún valor para storage.publicAccessPrevention, la prevención de acceso público se determina por el valor storage.publicAccessPrevention establecido por la organización que contiene el proyecto.

      • Si storage.publicAccessPrevention no se configura para ningún recurso, la prevención del acceso público no se aplica al bucket.

Cómo es el comportamiento si está inhabilitada

Cuando la prevención del acceso público ya no se aplica a un recurso, ocurre lo siguiente:

  • Las políticas de IAM y las LCA existentes que otorgan acceso a allUsers y allAuthenticatedUsers se aplican y permiten que el público pueda acceder a los datos.

  • Las solicitudes para crear políticas de IAM o LCA que permitan el acceso a allUsers y allAuthenticatedUsers se realizaron de forma correcta.

  • Un objeto creado en la prevención de acceso público sin LCA públicas puede estar accesible al público si se creó en un bucket de acceso público.

Puedes inhabilitar la prevención de acceso público para un proyecto, una carpeta o una organización en cualquier momento. Los buckets con una configuración enforced siguen teniendo aplicada una prevención de acceso público, incluso si la inhabilitas para un proyecto, una carpeta o una organización que contiene el bucket.

Permisos de IAM para la prevención de acceso público

Para administrar la política de la organización de prevención de acceso público a nivel del proyecto, de la carpeta o de la organización, necesitas el permiso orgpolicy.* de IAM. Este permiso se puede encontrar en la función de IAM roles/orgpolicy.policyAdmin.

Para administrar la configuración de prevención de acceso público en un bucket, necesitas los permisos de IAM storage.buckets.update y storage.buckets.setIamPolicy. Estos permisos se pueden encontrar en el rol roles/storage.admin.

Si el proyecto superior del bucket tiene aplicada la prevención de acceso público a través de una política de la organización, los administradores de almacenamiento no pueden eximir el bucket de la prevención del acceso público.

Consideraciones

  • Cuando aplicas la prevención de acceso público a los recursos existentes, se bloquean todas las autorizaciones existentes y las incorporaciones nuevas de allUsers y allAuthenticatedUsers. Esto puede afectar a los buckets de las siguientes maneras:

    • Si una aplicación depende de allUsers y allAuthenticatedUsers para acceder a los datos o crear recursos públicos, habilitar la prevención de acceso público puede interrumpir la aplicación.

    • Cloud Audit Logging no realiza un seguimiento del acceso a los objetos públicos. Si los registros de acceso a los datos están habilitados cuando aplicas la prevención del acceso público, es posible que veas un aumento en la generación de registros, que se considera en la cuota de transferencia de registros y puede generar cargos de los Registros de auditoría de Cloud. Este aumento puede ocurrir porque el acceso que antes era público y no se registraba podría asociarse a autorizaciones específicas, que se registran.

  • Las URLs firmadas, que otorgan acceso limitado por tiempo limitado a cualquier persona que las use, no se ven afectadas por la prevención del acceso público.

  • Los proyectos que no estén asociados con una organización no pueden usar las políticas de la organización. Los buckets dentro de dichos proyectos deben usar el parámetro de configuración a nivel de bucket.

  • La prevención de acceso público tiene coherencia sólida para la lectura después de la actualización, pero la aplicación puede tardar hasta 10 minutos en aplicarse.

  • Después de que se inicia la aplicación, es posible que aún se pueda acceder públicamente a tus objetos a través de una caché de Internet durante un tiempo determinado, según el parámetro de configuración Cache-Control de los objetos. Por ejemplo, si el Cache-Control:max-age de un objeto se establece en el valor predeterminado de 3,600 segundos, el objeto puede persistir en una caché de Internet durante ese período.

¿Qué sigue?