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:
Puedes aplicar la prevención del acceso público en buckets individuales.
Si tu bucket se encuentra dentro de una organización, puedes aplicar la prevención del acceso público mediante la restricción de la política de la organización
storage.publicAccessPrevention
a nivel de proyecto, organización o carpeta.
¿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
yallAuthenticatedUsers
fallan con un código de estado HTTP401
o403
.Las políticas de IAM y las LCA existentes que otorgan acceso a
allUsers
yallAuthenticatedUsers
permanecen vigentes, pero se anulan mediante la prevención de acceso público.Las solicitudes para crear buckets u objetos con
allUsers
yallAuthenticatedUsers
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 contienenallUsers
, pero la prevención del acceso público anulaallUsers
.
- Si un bucket tiene una LCA de objetos predeterminada que contiene
Las solicitudes para agregar
allUsers
yallAuthenticatedUsers
a una política de IAM o una LCA fallan con412 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ónstorage.publicAccessPrevention
:Si
storage.publicAccessPrevention
se configura comoTrue
para el proyecto que contiene el bucket, se aplicará la prevención del acceso público al bucket.Si
storage.publicAccessPrevention
se configura comoFalse
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 valorstorage.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 valorstorage.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
yallAuthenticatedUsers
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
yallAuthenticatedUsers
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.
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
yallAuthenticatedUsers
. Esto puede afectar a los buckets de las siguientes maneras:Si una aplicación depende de
allUsers
yallAuthenticatedUsers
para acceder a los datos o crear recursos públicos, habilitar la prevención de acceso público puede interrumpir la aplicación. Si quieres obtener información para identificar los recursos públicos de las que otras aplicaciones pueden depender expande el siguiente contenido:Cómo identificar los recursos públicos
Antes de aplicar la prevención de acceso público, te recomendamos que hagas un inventario de tus recursos públicos para asegurarte de que no se desglosen otras cargas de trabajo que dependen de que tus datos sean públicos. Puedes ubicar buckets, objetos y carpetas administradas que son públicas con los siguientes métodos:
- Para ayudar a identificar las cargas de trabajo que podrían estar accediendo a tus datos públicos, configura los registros de uso, que pueden proporcionar información sobre las solicitudes de acceso a los datos que se hacen a recursos públicos.
-
Para determinar si el público puede acceder a un bucket, revisa las políticas de IAM del bucket. Las políticas que otorgan roles al principal
allUsers
oallAuthenticatedUsers
hacen que el bucket sea potencialmente accesible para el público. Como alternativa para obtener la política de IAM de buckets individuales, puedes usar Cloud Asset Inventory para consultar las políticas de todos los buckets de un proyecto, una carpeta o una organización.Si hay carpetas administradas en tu bucket, también puedes revisar las políticas de IAM de las carpetas administradas para identificar a qué carpetas administradas podría acceder el público.
- Para determinar si los objetos individuales serán accesibles para el público,
verifica que el objeto sea compatible con las LCA.
Las LCA que otorgan acceso a la principal
allUsers
oallAuthenticatedUsers
hacen que el objeto sea potencialmente accesible para el público.
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 elCache-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?
- Más información para usar la prevención del acceso público.
- Obtén más información sobre las políticas de la organización.