

 La [Guía de referencia de la API de AWS SDK for JavaScript V3](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/) describe en detalle todas las operaciones de la API para la versión 3 (V3) de AWS SDK for JavaScript. 

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Proveedores de credencial
<a name="migrate-credential-providers"></a>

 En v2, el SDK para JavaScript proporciona una lista de proveedores de credenciales entre los que elegir, así como una cadena de proveedores de credenciales, disponible de forma predeterminada en Node.js, que intenta cargar las credenciales de AWS de todos los proveedores más comunes. El SDK para JavaScript v3 simplifica la interfaz del proveedor de credenciales, lo que facilita su uso y la creación de proveedores de credenciales personalizados. Además de una nueva cadena de proveedores de credenciales, el SDK para JavaScript v3 proporciona una lista de proveedores de credenciales con el objetivo de ofrecer un equivalente a v2. 

 A continuación, se muestran todos los proveedores de credenciales de v2 y sus equivalentes en v3. 

## Proveedor de credenciales predeterminado.
<a name="default-credential-provider"></a>

 El proveedor de credenciales predeterminado es la forma en que el SDK para JavaScript resuelve las credenciales de AWS si *no* se proporciona una de forma explícita. 
+  **v2**: [CredentialProviderChain en Node.js](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CredentialProviderChain.html) resuelve las credenciales de los orígenes en el siguiente orden: 
  +  [Variable de entorno](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/loading-node-credentials-environment.html) 
  +  [Archivo de credenciales compartidas](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/loading-node-credentials-shared.html) 
  +  [Credenciales del contenedor de ECS](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/RemoteCredentials.html) 
  +  [Proceso externo de generación](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sourcing-external.html) 
  +  [Token de OIDC del archivo especificado](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/TokenFileWebIdentityCredentials.html) 
  +  [Metadatos de la instancia de Amazon EC](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-instance-metadata.html) 

   Si uno de los proveedores de credenciales anteriores no logra resolver la credencial de AWS, la cadena pasa al siguiente proveedor hasta que se resuelve una credencial válida, y la cadena generará un error cuando todos los proveedores fallen. 

   En los tiempos de ejecución de Browser y React Native, la cadena de credenciales está vacía y las credenciales deben configurarse de forma explícita. 
+  **v3**: [defaultProvider](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/modules/_aws_sdk_credential_providers#fromnodejsproviderchain-1). Los orígenes de credenciales y el orden de reserva *no* cambian en v3. También es compatible con las [credenciales de AWS IAM Identity Center](https://docs.aws.amazon.com/singlesignon/latest/userguide/what-is.html). 

## Credenciales temporales
<a name="temporary-credentials"></a>
+  **v2**: [`ChainableTemporaryCredentials`](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/ChainableTemporaryCredentials.html) representa las credenciales temporales recuperadas de `AWS.STS`. Sin ningún parámetro adicional, las credenciales se obtendrán de la operación `AWS.STS.getSessionToken()`. Si se proporciona un rol de IAM, en su lugar se utilizará la operación `AWS.STS.assumeRole()` para obtener las credenciales del rol. `AWS.ChainableTemporaryCredentials` difiere de `AWS.TemporaryCredentials` en la forma en que se administran las masterCredentials y las actualizaciones. `AWS.ChainableTemporaryCredentials` actualiza las credenciales caducadas mediante las masterCredentials transferidas por el usuario para admitir el encadenamiento de credenciales de STS. Sin embargo, `AWS.TemporaryCredentials` contrae las masterCredentials de forma recursiva durante la creación de instancias, lo que impide actualizar las credenciales que requieren credenciales intermedias y temporales. 

   El [`TemporaryCredentials`](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/TemporaryCredentials.html) original ha quedado **obsoleto** en favor de `ChainableTemporaryCredentials` en v2. 
+  **v3**: [`fromTemporaryCredentials`](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-credential-providers/#fromtemporarycredentials). Puede llamar a `fromTemporaryCredentials()` desde el paquete `@aws-sdk/credential-providers`. A continuación se muestra un ejemplo: 

  ```
  import { FooClient } from "@aws-sdk/client-foo";
  import { fromTemporaryCredentials } from "@aws-sdk/credential-providers"; // ES6 import
  // const { FooClient } = require("@aws-sdk/client-foo");
  // const { fromTemporaryCredentials } = require("@aws-sdk/credential-providers"); // CommonJS import
  
  const sourceCredentials = {
    // A credential can be a credential object or an async function that returns a credential object
  };
  const client = new FooClient({
    credentials: fromTemporaryCredentials({
      masterCredentials: sourceCredentials,
      params: { RoleArn },
    }),
  });
  ```

## Credenciales de Amazon Cognito Identity
<a name="cognito-identity-credentials"></a>

 Cargue credenciales del servicio de Amazon Cognito Identity, que se utiliza normalmente en navegadores. 
+  **v2**: [`CognitoIdentityCredentials`](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CognitoIdentityCredentials.html) representa las credenciales recuperadas de la federación de identidades web de STS mediante el servicio de Amazon Cognito Identity. 
+  **v3**: [`Cognito Identity Credential Provider`](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/modules/_aws_sdk_credential_providers.html) El [paquete `@aws/credential-providers`](https://www.npmjs.com/package/@aws-sdk/credential-providers) proporciona dos funciones de proveedor de credenciales, una de las cuales, [`fromCognitoIdentity`](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/modules/_aws_sdk_credential_providers.html), utiliza un ID de identidad y llama a `cognitoIdentity:GetCredentialsForIdentity`, mientras que la otra, [`fromCognitoIdentityPool`](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/modules/_aws_sdk_credential_providers.html), utiliza un ID de grupo de identidades, llama a `cognitoIdentity:GetId` en la primera invocación y, a continuación, llama a `fromCognitoIdentity`. Las invocaciones posteriores de esta última no vuelven a invocar GetId. 

   El proveedor implementa el “flujo simplificado” descrito en la [Guía para desarrolladores de Amazon Cognito](https://docs.aws.amazon.com/cognito/latest/developerguide/authentication-flow.html). El “flujo clásico”, que implica llamar a `cognito:GetOpenIdToken` y, a continuación, llamar a `sts:AssumeRoleWithWebIdentity`, *no* es compatible. Si lo necesita, envíenos una [solicitud de característica](https://github.com/aws/aws-sdk-js-v3/issues/new?assignees=&labels=feature-request&template=---feature-request.md&title=). 

  ```
  // fromCognitoIdentityPool example
  import { fromCognitoIdentityPool } from "@aws-sdk/credential-providers"; // ES6 import
  // const { fromCognitoIdentityPool } = require("@aws-sdk/credential-providers"); // CommonJS import
  
  const client = new FooClient({
    region: "us-east-1",
    credentials: fromCognitoIdentityPool({
      clientConfig: cognitoIdentityClientConfig, // Optional
      identityPoolId: "us-east-1:1699ebc0-7900-4099-b910-2df94f52a030",
      customRoleArn: "arn:aws:iam::1234567890:role/MYAPP-CognitoIdentity", // Optional
      logins: {
        // Optional
        "graph.facebook.com": "FBTOKEN",
        "www.amazon.com": "AMAZONTOKEN",
        "api.twitter.com": "TWITTERTOKEN",
      },
    }),
  });
  ```

  ```
  // fromCognitoIdentity example
  import { fromCognitoIdentity } from "@aws-sdk/credential-providers"; // ES6 import
  // const { fromCognitoIdentity } = require("@aws-sdk/credential-provider-cognito-identity"); // CommonJS import
  
  const client = new FooClient({
    region: "us-east-1",
    credentials: fromCognitoIdentity({
      clientConfig: cognitoIdentityClientConfig, // Optional
      identityId: "us-east-1:128d0a74-c82f-4553-916d-90053e4a8b0f",
      customRoleArn: "arn:aws:iam::1234567890:role/MYAPP-CognitoIdentity", // Optional
      logins: {
        // Optional
        "graph.facebook.com": "FBTOKEN",
        "www.amazon.com": "AMAZONTOKEN",
        "api.twitter.com": "TWITTERTOKEN",
      },
    }),
  });
  ```

## Credencial de metadatos de Amazon EC2 (IMDS)
<a name="ec2-metadataimds-credential"></a>

 Representa las credenciales recibidas desde el servicio de metadatos en una instancia de Amazon EC2. 
+  **v2**: [`EC2MetadataCredentials`](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CognitoIdentityCredentials.html) 
+  **v3**: [`fromInstanceMetadata`](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-credential-providers/#fromcontainermetadata-and-frominstancemetadata). Crea un proveedor de credenciales que obtendrá las credenciales del servicio de metadatos de la instancia de Amazon EC2. 

  ```
  import { fromInstanceMetadata } from "@aws-sdk/credential-providers"; // ES6 import
  // const { fromInstanceMetadata } = require("@aws-sdk/credential-providers"); // CommonJS import
  
  const client = new FooClient({
    credentials: fromInstanceMetadata({
      maxRetries: 3, // Optional
      timeout: 0, // Optional
    }),
  });
  ```

## Credenciales de Amazon ECS
<a name="ecs-credentials"></a>

 Representa las credenciales recibidas de la URL especificada. Este proveedor solicitará credenciales temporales de la URL especificada por la variable de entorno `AWS_CONTAINER_CREDENTIALS_RELATIVE_URI` o `AWS_CONTAINER_CREDENTIALS_FULL_URI`. 
+  **v2**: `ECSCredentials` o [`RemoteCredentials`](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/RemoteCredentials.html) 
+  **v3**: [`fromContainerMetadata`](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-credential-providers/#fromcontainermetadata-and-frominstancemetadata). Crea un proveedor de credenciales que obtendrá las credenciales del servicio de metadatos de contenedores de Amazon ECS. 

  ```
  import { fromContainerMetadata } from "@aws-sdk/credential-providers"; // ES6 import
  
  const client = new FooClient({
    credentials: fromContainerMetadata({
      maxRetries: 3, // Optional
      timeout: 0, // Optional
    }),
  });
  ```

## Credenciales de sistema de archivos
<a name="file-system-credentials"></a>
+ **v2**: [`FileSystemCredentials`](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/FileSystemCredentials.html). Representa las credenciales de un archivo JSON en el disco.
+  **v3**: **obsoleto.** Puede leer de forma explícita el archivo JSON y proporcionarlo al cliente. Si lo necesita, envíenos una [solicitud de característica](https://github.com/aws/aws-sdk-js-v3/issues/new?assignees=&labels=feature-request&template=---feature-request.md&title=). 

## Proveedor de credenciales de SAML
<a name="saml-credential-provider"></a>
+  **v2**: [`SAMLCredentials`](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SAMLCredentials.html) representa las credenciales recuperadas de la compatibilidad con SAML de STS. 
+  **v3**: **no disponible**. Si lo necesita, envíenos una [solicitud de característica](https://github.com/aws/aws-sdk-js-v3/issues/new?assignees=&labels=feature-request&template=---feature-request.md&title=). 

## Credenciales del archivo de credenciales compartidas
<a name="shared-credential-file-credentials"></a>

 Carga las credenciales del archivo de credenciales compartido (por defecto `~/.aws/credentials` o definido por la variable de entorno `AWS_SHARED_CREDENTIALS_FILE`). Este archivo es compatible con diferentes SDK y herramientas de AWS. Puede consultar el [documento de archivos de configuración y credenciales compartidos](https://docs.aws.amazon.com/sdkref/latest/guide/creds-config-files.html) para obtener más información. 
+  **v2**: [`SharedIniFileCredentials`](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SharedIniFileCredentials.html) 
+  **v3**: [`fromIni`](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/modules/_aws_sdk_credential_providers.html) 

  ```
  import { fromIni } from "@aws-sdk/credential-providers";
  // const { fromIni } from("@aws-sdk/credential-providers");
  
  const client = new FooClient({
    credentials: fromIni({
      configFilepath: "~/.aws/config", // Optional
      filepath: "~/.aws/credentials", // Optional
      mfaCodeProvider: async (mfaSerial) => {
        // implement a pop-up asking for MFA code
        return "some_code";
      }, // Optional
      profile: "default", // Optional
      clientConfig: { region }, // Optional
    }),
  });
  ```

## Credenciales de identidad web
<a name="web-identity-credentials"></a>

 Recupera las credenciales mediante el token de OIDC de un archivo en el disco. Se usa con frecuencia en Amazon EKS. 
+  **v2**: [`TokenFileWebIdentityCredentials`](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/TokenFileWebIdentityCredentials.html) 
+  **v3**: [`fromTokenFile`](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-credential-providers/#fromtokenfile) 

  ```
  import { fromTokenFile } from "@aws-sdk/credential-providers"; // ES6 import
  // const { fromTokenFile } from("@aws-sdk/credential-providers"); // CommonJS import
  
  const client = new FooClient({
    credentials: fromTokenFile({
      // Optional. If skipped, read from `AWS_ROLE_ARN` environmental variable
      roleArn: "arn:xxxx",
      // Optional. If skipped, read from `AWS_ROLE_SESSION_NAME` environmental variable
      roleSessionName: "session:a",
      // Optional. STS client config to make the assume role request.
      clientConfig: { region },
    }),
  });
  ```

## Credenciales de la federación de identidades web
<a name="web-identity-federation-credentials"></a>

 Recupera las credenciales del soporte de la federación de identidades web de STS. 
+  **v2**: [`WebIdentityCredentials`](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/WebIdentityCredentials.html) 
+  **v3**: [`fromWebToken`](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-credential-providers/#fromwebtoken) 

  ```
  import { fromWebToken } from "@aws-sdk/credential-providers"; // ES6 import
  // const { fromWebToken } from("@aws-sdk/credential-providers"); // CommonJS import
  
  const client = new FooClient({
    credentials: fromWebToken({
      // Optional. If skipped, read from `AWS_ROLE_ARN` environmental variable
      roleArn: "arn:xxxx",
      // Optional. If skipped, read from `AWS_ROLE_SESSION_NAME` environmental variable
      roleSessionName: "session:a",
      // Optional. STS client config to make the assume role request.
      clientConfig: { region },
    }),
  });
  ```