Autenticación de Cloud Storage

La mayoría de las operaciones que realizas en Cloud Storage deben autenticarse. Las únicas excepciones son las operaciones en objetos que permiten el acceso anónimo. Los objetos son accesibles de forma anónima si el grupo allUsers tiene el permiso READ. El grupo allUsers incluye a cualquier persona en Internet.

OAuth 2.0

Autenticación

Cloud Storage usa OAuth 2.0 para la autenticación y autorización de API. La autenticación es el proceso que determina la identidad de un cliente. Los detalles de la autenticación varían según la forma en que accedas a Cloud Storage, pero se dividen en dos tipos generales:

  • Un flujo centrado en el servidor permite que una aplicación contenga las credenciales de una cuenta de servicio de forma directa para completar la autenticación. Usa este flujo si tu aplicación trabaja con sus propios datos en lugar de los datos del usuario. Los proyectos de Google Cloud Platform tienen cuentas de servicio predeterminadas que puedes usar, o bien puedes crear nuevas.

  • Un flujo centrado en el usuario permite que una aplicación obtenga las credenciales de un usuario final. El usuario debe acceder para completar la autenticación. Usa este flujo si tu aplicación necesita acceder a los datos del usuario. Consulta la sección Credenciales de la cuenta de usuario más adelante en esta página para conocer las situaciones en las que es adecuado usar un flujo centrado en el usuario.

Ten en cuenta que puedes usar ambos tipos de autenticación juntos en una aplicación. Para obtener más información complementaria sobre la autenticación, consulta la Guía de autenticación de Google Cloud Platform.

Alcances

La autorización es el proceso que determina qué permisos tiene una identidad autenticada en un conjunto de recursos especificados. OAuth usa alcances para determinar si una identidad autenticada está autorizada. Las aplicaciones usan una credencial (obtenida de un flujo de autenticación centrado en el usuario o en el servidor) junto con uno o más alcances, para solicitar un token de acceso de un servidor de autorización de Google a fin de acceder a los recursos protegidos. Por ejemplo, la aplicación A con un token de acceso con el alcance read-only solo puede realizar operaciones de lectura, mientras que la aplicación B con un token de acceso con el alcance read-write puede leer y modificar datos. Ninguna de las dos puede leer o modificar las listas de control de acceso en objetos y depósitos; solo una aplicación con alcance full-control puede hacerlo.

Tipo Descripción URL del alcance
read-only Solo permite el acceso de lectura a los datos, lo que incluye la enumeración de depósitos. https://www.googleapis.com/auth/devstorage.read_only
read-write Permite el acceso para leer y cambiar datos, pero no metadatos como las políticas de IAM. https://www.googleapis.com/auth/devstorage.read_write
full-control Permite el control total sobre los datos, incluida la capacidad de modificar las políticas de IAM. https://www.googleapis.com/auth/devstorage.full_control
cloud-platform.read-only Permite ver tus datos en los servicios de Google Cloud Platform. En Cloud Storage, es lo mismo que devstorage.read-only. https://www.googleapis.com/auth/cloud-platform.read-only
cloud-platform Permite ver y administrar datos en todos los servicios de Google Cloud Platform. En Cloud Storage, es lo mismo que devstorage.full-control. https://www.googleapis.com/auth/cloud-platform

Autenticación de gsutil

Con gsutil instalado desde el SDK de Cloud, debes autenticarte con las credenciales de la cuenta de servicio.

  1. Usa una cuenta de servicio existente o crea una nueva, y descarga la clave privada asociada.

  2. Usa gcloud auth activate-service-account para la autenticación con la cuenta de servicio:

    gcloud auth activate-service-account --key-file [KEY_FILE]

    Donde [KEY_FILE] es el nombre del archivo que contiene tus credenciales de la cuenta de servicio.

gcloud auth usa el alcance cloud-platform cuando obtiene un token de acceso.

Si tu instalación de gsutil fue independiente del SDK de Cloud, consulta la página de instalación de gsutil para obtener información sobre cómo autenticarte.

Autenticación de bibliotecas cliente

Client libraries can use Application Default Credentials to easily authenticate with Google APIs and send requests to those APIs. With Application Default Credentials, you can test your application locally and deploy it without changing the underlying code. For more information, including code samples, see Google Cloud Platform Auth Guide.

Autenticación de API

Para realizar solicitudes a la API de XML o la API de JSON de Cloud Storage mediante OAuth 2.0, incluye el token de acceso de tu aplicación en el encabezado Authorization en todas las solicitudes que requieran autenticación.

Authorization: Bearer <oauth2_token>

El siguiente es un ejemplo de una solicitud que enumera los objetos de un depósito.

API de JSON

Usa el método list del recurso Objetos.

GET /storage/v1/b/example-bucket/o HTTP/1.1
Host: www.googleapis.com
Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg

API de XML

Usa una solicitud de Enumerar objetos.

GET / HTTP/1.1
Host: example-bucket.storage.googleapis.com
Authorization: Bearer ya29.AHES6ZRVmB7fkLtd1XTmq6mo0S1wqZZi3-Lh_s-6Uw7p8vtgSwg

Debido a la complejidad de administrar y actualizar los tokens de acceso, y el riesgo de seguridad cuando se trata de forma directa con aplicaciones criptográficas, recomendamos que uses una biblioteca cliente verificada.

Si buscas claves de desarrollador a fin de usarlas con la API de XML en el acceso interoperable con Amazon S3, consulta Administra claves de desarrollador para una migración simple.

Credenciales de cuenta de usuario

Usa credenciales de cuenta de usuario para la autenticación cuando tu aplicación requiere acceso a los datos en nombre de un usuario; de lo contrario, usa credenciales de cuenta de servicio. A continuación, se muestran ejemplos de situaciones en las que se pueden usar credenciales de cuenta de usuario:

  • Aplicaciones de servidor web
  • Aplicaciones instaladas y de escritorio
  • Aplicaciones para dispositivos móviles
  • JavaScript de cliente
  • Aplicaciones en dispositivos de entrada limitada

Para obtener más información sobre estas situaciones, consulta Situaciones de OAuth.

Si diseñas una aplicación de forma que admita múltiples opciones de autenticación para usuarios finales, usa Firebase Authentication, que admite la autenticación con correo electrónico y contraseña, así como el acceso federado con proveedores de identidad como Google, Facebook, Twitter y GitHub.

Cuando un usuario final otorga un token de acceso a una aplicación en un flujo de autenticación centrado en el usuario, ese token de acceso solo tendrá los permisos disponibles para el usuario que lo otorga. Por ejemplo, si jane@gmail.com tiene acceso read-only a example-bucket, una aplicación a la que Jane le otorgue acceso read-write no podrá escribir datos en example-bucket en su nombre.

Pasos siguientes

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Si necesitas ayuda, visita nuestra página de asistencia.