Consideraciones de seguridad y privacidad

Descripción general

En esta sección de ayuda, se proporcionan detalles sobre las precauciones que toma gsutil para proteger la seguridad de los datos y recomendaciones sobre cómo los clientes deben proteger la seguridad.

Seguridad de la capa de transporte

gsutil realiza todas las operaciones mediante la encriptación de la capa de transporte (HTTPS), para protegerse contra la filtración de datos a través de vínculos de red compartidos. Esto también es importante porque gsutil usa “tokens del portador” para la autenticación (OAuth2) y los identificadores de cargas reanudables. Esos tokens deben protegerse a fin de que no se los espíe ni se los vuelva a usar.

gsutil también admite el estilo de autenticación de HMAC anterior a través de la API de XML (consulta la ayuda de gsutil sobre API). Si bien la autenticación de HMAC no usa tokens del portador (y, por lo tanto, no está sujeta a ataques espía o de repetición), es importante encriptar el tráfico de datos.

Antes de la versión 4.0 de gsutil, era posible usar HTTP en lugar de HTTPS si se establecía el parámetro de configuración “is_secure” como falso en la sección [Boto] del archivo de configuración boto. Sin embargo, a partir de la versión 4.0 de gsutil, no se permite la configuración de is_secure como falso. Para obtener más detalles sobre las diferentes opciones de credenciales, consulta la ayuda de gsutil sobre credenciales.

Seguridad del almacenamiento de archivos locales

gsutil toma una serie de precauciones para proteger de las vulnerabilidades de seguridad en los archivos que almacena de forma local:

  • Cuando se ejecuta el comando gsutil config (o gcloud init para las instalaciones del SDK de Cloud), se establece el modo de protección de archivos 600 (“rw-------”) en el archivo de configuración .boto que genera, por lo que solo el usuario (o superusuario) puede leerlo. Esto es importante porque estos archivos contienen información sensible a la seguridad, incluidas las credenciales y la configuración del proxy.
  • El comando gsutil config (o gcloud init para las instalaciones del SDK de Cloud) también usa el modo de protección de archivos 600 para el archivo de clave privada almacenado de forma local cuando creas las credenciales de cuenta de servicio.
  • El nivel predeterminado del resultado de registro de los comandos de gsutil no incluye información sensible a la seguridad, como los tokens de OAuth2 y la información de configuración del proxy (consulta la sección “PRECAUCIONES RECOMENDADAS PARA EL USUARIO” que se encuentra a continuación si usas la opción gsutil -D a fin de aumentar el nivel del resultado de depuración).

Ten en cuenta que los modos de protección no son compatibles con Windows, por lo que, si usas gsutil en Windows, recomendamos usar un sistema de archivos encriptado y contraseñas de cuentas seguras.

Archivos sensibles a la seguridad que gsutil escribe en el disco de forma temporal

gsutil almacena en búfer los datos en archivos temporales en varias situaciones:

  • Mientras comprime los datos que se suben a través de gsutil cp -z/-Z, gsutil almacena en búfer los datos en archivos temporales con protección 600, que se borran una vez que se completa la carga (algo similar ocurre con la descarga de archivos que se subieron con gsutil cp -z/-Z o algún otro proceso que establezca la codificación del contenido en “gzip”). Sin embargo, si finalizas el proceso de gsutil mientras la carga está en curso, el archivo escrito de forma parcial permanecerá en su lugar. Consulta la sección “Cambia directorios temporales” en la ayuda de gsutil sobre cp para obtener detalles sobre el lugar donde se escriben los archivos temporales y cómo cambiar la ubicación del directorio temporal.
  • Cuando se realiza una carga reanudable, gsutil almacena el ID de carga (que, como se mencionó antes, es un token del portador y, por lo tanto, debe estar protegido) en un archivo en ~/.gsutil/tracker-files con protección 600 y borra este archivo cuando se completa la carga. Sin embargo, si la carga no se completa de forma correcta, el archivo de seguimiento se mantiene en su lugar, por lo que la carga reanudable se puede volver a intentar más adelante. Con el tiempo, es posible acumular estos archivos de seguimiento de los intentos de carga anulados, aunque los ID de las cargas reanudables solo son válidos durante 1 semana, por lo que el riesgo de seguridad solo existe para archivos que tienen menos tiempo. Si consideras que el riesgo de dejar los ID de carga anulados en el directorio de seguimiento es demasiado alto, puedes modificar las secuencias de comandos de carga para borrar los archivos de seguimiento, o puedes crear un trabajo cron a fin de borrar el directorio de seguimiento de forma periódica.
  • El comando gsutil rsync almacena archivos temporales (con protección 600) que contienen los nombres, los tamaños y las sumas de verificación de los directorios y depósitos de origen y destino, que se borran después de que se completa el rsync. Sin embargo, si finalizas el proceso de gsutil mientras el rsync está en curso, los archivos de la lista permanecerán en su lugar.

Ten en cuenta que gsutil borra los archivos temporales mediante la llamada al sistema de desvinculación estándar del SO, que no realiza la limpieza de datos. Por lo tanto, un oponente determinado puede recuperar el contenido de esos archivos temporales.

Listas de control de acceso

A menos que especifiques una LCA diferente (p. ej., a través de la opción gsutil cp -a), los objetos escritos en un depósito usan de forma predeterminada la LCA de objetos predeterminada en ese depósito. A menos que modifiques esa LCA (p. ej., mediante el comando gsutil defacl), se permitirá de forma predeterminada que todos los editores del proyecto tengan acceso de escritura al objeto y acceso de lectura y escritura a los metadatos del objeto. También se permitirá que todos los visualizadores del proyecto tengan acceso de lectura al objeto.

El sistema de control de acceso de Cloud Storage incluye la capacidad de especificar que los objetos se puedan leer de forma pública. Asegúrate de que deseas que todos los objetos que escribas con este permiso sean públicos. Una vez que se “publican”, los datos en Internet se pueden copiar en muchos lugares, por lo que es imposible recuperar el control de lectura sobre un objeto escrito con este permiso.

El sistema de control de acceso de Cloud Storage incluye la capacidad de especificar que los depósitos se puedan escribir de forma pública. Si bien configurar un depósito de esta manera puede ser conveniente para varios objetivos, recomendamos no usar este permiso, ya que se puede abusar de él con el fin de distribuir contenido ilegal, virus y otros tipos de software malicioso. El propietario del depósito es responsable a nivel legal y financiero del contenido almacenado en él. Si necesitas que el contenido esté disponible para los clientes que no tienen Cuentas de Google, considera usar URL firmadas (consulta ayuda de gsutil sobre signurl).

Integridad y actualizaciones de software

gsutil se distribuye como un conjunto independiente a través de archivos tar y zip almacenados en el depósito gs://pub, como un módulo de PyPi y como parte de la versión incluida del SDK de Cloud. Cada uno de estos métodos de distribución toma una variedad de precauciones de seguridad para proteger la integridad del software. Te recomendamos que obtengas una copia de gsutil de cualquier otra fuente (como sitios de duplicación).

Uso de proxies

gsutil es compatible con el acceso a través de proxies, como Squid y algunos productos comerciales. En esta documentación, no se incluye una descripción completa de las capacidades de los proxies, pero se los puede configurar para que admitan muchas funciones relacionadas con la seguridad, como el análisis de virus, la prevención de filtraciones de datos, el control sobre qué certificados y CA son confiables, el filtrado de tipo de contenido y muchas más capacidades. Algunas de estas funciones pueden ralentizar o bloquear el comportamiento legítimo de gsutil. Por ejemplo, el análisis de virus depende de la desencriptación del contenido del archivo, que, a su vez, requiere que el proxy finalice la conexión de gsutil y establezca una nueva. En algunos casos, los proxies volverán a escribir el contenido de maneras que generen errores en la validación de la suma de verificación y otros problemas.

Para obtener detalles sobre la configuración de proxies, consulta el texto de ayuda sobre proxies en tu archivo de configuración .boto (que generó el comando gsutil config o gcloud init).

Encriptación en reposo

Todos los datos de Cloud Storage se almacenan encriptados. Para obtener más información, consulta Encriptación del servidor.

También puedes proporcionar tus propias claves de encriptación. Para obtener más información, consulta ayuda de gsutil sobre encriptación.

Privacidad de los datos

Google nunca te pedirá que compartas tus credenciales, contraseñas ni otra información sensible a la seguridad. Ten cuidado con las posibles estafas de suplantación de identidad (phishing) en las que alguien intenta robar la identidad de Google y solicita esa información.

Datos de medición

El comando gsutil perfdiag recopila una variedad de medidas relacionadas con el rendimiento y detalles sobre tu sistema local y entorno de red para usarlos en la solución de problemas de rendimiento. Esta información no se enviará a Google, a menos que decidas hacerlo.