En esta página, se describe cómo puedes usar las bibliotecas cliente para acceder a las APIs de Google.
Las bibliotecas cliente facilitan el acceso a las APIs deTrusted Cloud by S3NS con un lenguaje compatible. Puedes usar las Trusted Cloud by S3NS APIs directamente haciendo solicitudes sin procesar al servidor, pero las bibliotecas cliente proporcionan simplificaciones que reducen de manera significativa la cantidad de código que debes escribir. Esto se aplica en particular a la autenticación, ya que las bibliotecas cliente son compatibles con las credenciales predeterminadas de la aplicación (ADC).
Usa las credenciales predeterminadas de la aplicación con bibliotecas cliente
Para usar las credenciales predeterminadas de la aplicación a fin de autenticar tu aplicación, primero debes configurar las ADC para el entorno en el que se ejecuta tu aplicación. Cuando usas la biblioteca cliente para crear un cliente, esta busca y usa de forma automática las credenciales que proporcionaste a ADC para autenticarte en las APIs que usa tu código. Tu aplicación no necesita autenticar ni administrar tokens de forma explícita. Las bibliotecas de autenticación administran estos requisitos de forma automática.
Las siguientes muestras de código crean un cliente para el servicio de Cloud Storage.
Es probable que tu código necesite diferentes clientes. El propósito de estos ejemplos es solo mostrar cómo puedes crear un cliente y usarlo sin ningún código para autenticarte de forma explícita.
Antes de ejecutar las siguientes muestras, debes completar los siguientes pasos:
Establecer la variable de entorno GOOGLE_CLOUD_UNIVERSE_DOMAIN como s3nsapis.fr.
Go
import("context""fmt""io""cloud.google.com/go/storage""google.golang.org/api/iterator")// authenticateImplicitWithAdc uses Application Default Credentials// to automatically find credentials and authenticate.funcauthenticateImplicitWithAdc(wio.Writer,projectIdstring)error{// projectId := "your_project_id"ctx:=context.Background()// NOTE: Replace the client created below with the client required for your application.// Note that the credentials are not specified when constructing the client.// The client library finds your credentials using ADC.client,err:=storage.NewClient(ctx)iferr!=nil{returnfmt.Errorf("NewClient: %w",err)}deferclient.Close()it:=client.Buckets(ctx,projectId)for{bucketAttrs,err:=it.Next()iferr==iterator.Done{break}iferr!=nil{returnerr}fmt.Fprintf(w,"Bucket: %v\n",bucketAttrs.Name)}fmt.Fprintf(w,"Listed all storage buckets.\n")returnnil}
Java
importcom.google.api.gax.paging.Page;importcom.google.cloud.storage.Bucket;importcom.google.cloud.storage.Storage;importcom.google.cloud.storage.StorageOptions;importjava.io.IOException;publicclassAuthenticateImplicitWithAdc{publicstaticvoidmain(String[]args)throwsIOException{// TODO(Developer):// 1. Before running this sample,// set up Application Default Credentials as described in// https://cloud.google.com/docs/authentication/external/set-up-adc// 2. Replace the project variable below.// 3. Make sure you have the necessary permission to list storage buckets// "storage.buckets.list"StringprojectId="your-google-cloud-project-id";authenticateImplicitWithAdc(projectId);}// When interacting with Google Cloud Client libraries, the library can auto-detect the// credentials to use.publicstaticvoidauthenticateImplicitWithAdc(Stringproject)throwsIOException{// *NOTE*: Replace the client created below with the client required for your application.// Note that the credentials are not specified when constructing the client.// Hence, the client library will look for credentials using ADC.//// Initialize client that will be used to send requests. This client only needs to be created// once, and can be reused for multiple requests.Storagestorage=StorageOptions.newBuilder().setProjectId(project).build().getService();System.out.println("Buckets:");Page<Bucket>buckets=storage.list();for(Bucketbucket:buckets.iterateAll()){System.out.println(bucket.toString());}System.out.println("Listed all storage buckets.");}}
Node.js
/** * TODO(developer): * 1. Uncomment and replace these variables before running the sample. * 2. Set up ADC as described in https://cloud.google.com/docs/authentication/external/set-up-adc * 3. Make sure you have the necessary permission to list storage buckets "storage.buckets.list" * (https://cloud.google.com/storage/docs/access-control/iam-permissions#bucket_permissions) */// const projectId = 'YOUR_PROJECT_ID';const{Storage}=require('@google-cloud/storage');asyncfunctionauthenticateImplicitWithAdc(){// This snippet demonstrates how to list buckets.// NOTE: Replace the client created below with the client required for your application.// Note that the credentials are not specified when constructing the client.// The client library finds your credentials using ADC.conststorage=newStorage({projectId,});const[buckets]=awaitstorage.getBuckets();console.log('Buckets:');for(constbucketofbuckets){console.log(`- ${bucket.name}`);}console.log('Listed all storage buckets.');}authenticateImplicitWithAdc();
PHP
// Imports the Cloud Storage client library.use Google\Cloud\Storage\StorageClient;/** * Authenticate to a cloud client library using a service account implicitly. * * @param string $projectId The Google project ID. */function auth_cloud_implicit($projectId){ $config = [ 'projectId' => $projectId, ]; # If you don't specify credentials when constructing the client, the # client library will look for credentials in the environment. $storage = new StorageClient($config); # Make an authenticated API request (listing storage buckets) foreach ($storage->buckets() as $bucket) { printf('Bucket: %s' . PHP_EOL, $bucket->name()); }}
Python
fromgoogle.cloudimportstoragedefauthenticate_implicit_with_adc(project_id="your-google-cloud-project-id"):""" When interacting with Google Cloud Client libraries, the library can auto-detect the credentials to use. // TODO(Developer): // 1. Before running this sample, // set up ADC as described in https://cloud.google.com/docs/authentication/external/set-up-adc // 2. Replace the project variable. // 3. Make sure that the user account or service account that you are using // has the required permissions. For this sample, you must have "storage.buckets.list". Args: project_id: The project id of your Google Cloud project. """# This snippet demonstrates how to list buckets.# *NOTE*: Replace the client created below with the client required for your application.# Note that the credentials are not specified when constructing the client.# Hence, the client library will look for credentials using ADC.storage_client=storage.Client(project=project_id)buckets=storage_client.list_buckets()print("Buckets:")forbucketinbuckets:print(bucket.name)print("Listed all storage buckets.")
Ruby
defauthenticate_implicit_with_adcproject_id:# The ID of your Google Cloud project# project_id = "your-google-cloud-project-id"#### When interacting with Google Cloud Client libraries, the library can auto-detect the# credentials to use.# TODO(Developer):# 1. Before running this sample,# set up ADC as described in https://cloud.google.com/docs/authentication/external/set-up-adc# 2. Replace the project variable.# 3. Make sure that the user account or service account that you are using# has the required permissions. For this sample, you must have "storage.buckets.list".###require"google/cloud/storage"# This sample demonstrates how to list buckets.# *NOTE*: Replace the client created below with the client required for your application.# Note that the credentials are not specified when constructing the client.# Hence, the client library will look for credentials using ADC.storage=Google::Cloud::Storage.newproject_id:project_idbuckets=storage.bucketsputs"Buckets: "buckets.eachdo|bucket|putsbucket.nameendputs"Plaintext: Listed all storage buckets."end
Usa claves de API con bibliotecas cliente
Solo puedes usar claves de API con bibliotecas cliente para las APIs que acepten claves de API. Además, la clave de API no debe tener una restricción que impida su uso para la API.
Cuando uses claves de API en tus aplicaciones, asegúrate de que se mantengan seguras durante el almacenamiento y la transmisión. Si expones tus claves de API de forma pública, puedes generar cargos inesperados en tu cuenta. Para obtener más información, consulta Prácticas recomendadas para administrar las claves de API.
Requisitos de seguridad cuando se usan configuraciones de credenciales de una fuente externa
Por lo general, las configuraciones de credenciales se generan con comandos de gcloud CLI o con la consola de Trusted Cloud . Por ejemplo, puedes usar gcloud CLI para generar un archivo de ADC local o un archivo de configuración de acceso. De manera similar, puedes usar la consola de Trusted Cloud para crear y descargar una clave de cuenta de servicio.
Sin embargo, para algunos casos de uso, una entidad externa te proporciona configuraciones de credenciales, que están diseñadas para autenticarte en las APIs de Google.
Algunos tipos de configuraciones de credenciales incluyen endpoints y rutas de acceso a archivos, que las bibliotecas de autenticación usan para adquirir un token. Cuando aceptes configuraciones de credenciales de una fuente externa, debes validarlas antes de usarlas. Si no validas la configuración, un agente malicioso podría usar la credencial para comprometer tus sistemas y datos.
Valida la configuración de credenciales de fuentes externas
La forma en que debes validar tus credenciales externas depende de los tipos de credenciales que acepte tu aplicación.
Valida las claves de la cuenta de servicio
Si tu aplicación acepta solo claves de cuentas de servicio, usa un cargador de credenciales específico para las claves de cuentas de servicio, como se muestra en los siguientes ejemplos. El cargador de credenciales específico del tipo solo analiza los campos presentes para las claves de cuentas de servicio, que no exponen ninguna vulnerabilidad.
Si no puedes usar un cargador de credenciales específico del tipo, valida la credencial confirmando que el valor del campo type sea service_account. Si el valor del campo type es cualquier otro valor, no uses la clave de la cuenta de servicio.
En la siguiente tabla, se enumeran los campos que debes validar si están presentes en tus credenciales. No todos estos campos están presentes en todas las configuraciones de credenciales.
Campo
Objetivo
Valor esperado
service_account_impersonation_url
Las bibliotecas de autenticación usan este campo para acceder a un extremo y generar un token de acceso para la cuenta de servicio cuya identidad se suplanta.
Las bibliotecas de autenticación envían un token externo a este extremo para intercambiarlo por un token de acceso federado.
https://sts.s3nsapis.fr/v1/token
credential_source.file
Las bibliotecas de autenticación leen un token externo del archivo en la ubicación especificada por este campo y lo envían al extremo token_url.
Es la ruta de acceso a un archivo que contiene un token externo. Deberías reconocer esta ruta.
credential_source.url
Es un extremo que devuelve un token externo. Las bibliotecas de autenticación envían una solicitud a esta URL y envían la respuesta al extremo token_url.
Uno de los siguientes elementos:
Es un extremo conocido que proporciona tu proveedor de servicios en la nube.
Es un extremo que configuraste de forma explícita para proporcionar tokens.
credential_source.executable.command
Si la variable de entorno GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES
está configurada como 1, las bibliotecas de autenticación
ejecutan este comando o archivo ejecutable.
Es un archivo o comando ejecutable que devuelve un token externo.
Debes reconocer este comando y validar que sea seguro.
credential_source.aws.url
Las bibliotecas de autenticación emiten una solicitud a esta URL para recuperar un token de seguridad de AWS.
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-08-19 (UTC)"],[[["Client libraries simplify accessing Google Cloud APIs by handling tasks like authentication and reducing the amount of code needed, especially with Application Default Credentials (ADC)."],["To use ADC, you must set it up for your environment, which the client library will automatically utilize for authentication without needing explicit token management."],["API keys can be used with certain client libraries and APIs, but they need to be managed securely to prevent unauthorized access and unexpected charges."],["When accepting credential configurations from external sources, it is important to validate them thoroughly to prevent security compromises, particularly by confirming specific fields like the `type` and checking if `service_account` or other URL values are correct."],["Service account keys can be validated using credential loader specific to them, otherwise, the 'type' field should be verified to ensure it is set to `service_account`."]]],[]]