Prevención del acceso público

Ir a ejemplos

En esta página, se analiza la configuración del bucket de prevención de acceso público y la restricción de la política de la organización relacionada con la prevención de acceso público. El uso de la configuración o 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 de acceso público protege los buckets y los objetos de Cloud Storage de la exposición accidental al público. Cuando aplicas la prevención de acceso público, nadie puede hacer públicos los datos en 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 de acceso público si sabes que tus datos nunca deben exponerse en la Internet pública. Para proporcionar la mayor seguridad a tus recursos, aplica la prevención de acceso público en el nivel más alto posible de tu 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 prevención de 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 allUsers se anula por prevención de acceso público.
  • Las solicitudes para agregar allUsers y allAuthenticatedUsers a una política de IAM o a la LCA fallan con 412 Precondition Failed.

Herencia

Incluso si un bucket no tiene una prevención de acceso público aplicada de manera explícita en su configuración, podría heredar la prevención del acceso público, que ocurre si la restricción de la política de la organización storage.publicAccessPrevention se configura en el proyecto, la carpeta o la organización en los que se encuentra el bucket. Por este motivo, el estado del bucket solo se puede establecer en enforced o unspecified.

Si el estado del bucket es unspecified, este hereda su estado del proyecto superior. Del mismo modo, el proyecto hereda, de forma predeterminada, el estado de prevención de acceso público de la organización o carpeta dentro de la que existe. Sin embargo, puedes configurar storage.publicAccessPrevention de forma explícita para que se habilite o inhabilite en el proyecto, lo que anula cualquier valor que, de lo contrario, se heredaría. Por ejemplo, configurar storage.publicAccessPrevention para un proyecto como inhabilitado garantiza que los buckets dentro del proyecto que tengan una configuración unspecified no usen la prevención de acceso público, independientemente de la prevención de acceso público en los niveles de carpeta u organización.

Cómo es el comportamiento si está inhabilitada

Cuando la prevención de 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 la función 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.

    • Registros de auditoría de Cloud 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 Registros de auditoría de Cloud. Este aumento puede ocurrir porque el acceso que antes era público y no se registró podría asociarse con autorizaciones específicas, que se registran.

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

  • Los proyectos no asociados con una organización no pueden usar las políticas de la organización. Los buckets dentro de ese proyecto deben usar la 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 comienza la aplicación, es posible que tus objetos aún sean de acceso público a través de una caché de Internet durante un tiempo, según la configuración Cache-Control de los objetos. Por ejemplo, si la 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?