· 3 min de lectura

Cómo Ejecutar el AWS SDK de JavaScript Localmente

Aprende cómo configurar tu entorno local para ejecutar el AWS SDK usando SSO y perfiles con nombre

Ingenieros trabajando en laptops

Este artículo fue traducido usando IA.

Cuando usaba Access Keys me acostumbré a configurar el perfil default en mi archivo de credenciales y funcionaba bien. Cuando empecé a manejar más cuentas y cambié a SSO, actualizar el perfil default se vuelve más complicado. Te mostraré un par de formas de autenticar el SDK usando perfiles con nombre.

Mostraré cómo autenticar el AWS SDK contra una cuenta específica de AWS usando los siguientes métodos:

  1. Configurando variables de entorno
  2. Obteniendo credenciales en el código

Configurando variables de entorno

La forma más fácil de ejecutar el AWS SDK desde tu máquina local es configurando la variable de entorno AWS_PROFILE (si no se establece, usará el perfil default).

En tu terminal puedes configurar la variable de entorno AWS_PROFILE para que el SDK pueda encontrar el perfil del archivo ~/.aws/config y usar esos valores. Cuando usas AWS SSO necesitarás iniciar sesión ejecutando aws sso login --profile my-profile Mira este post de Ben Kehoe para una explicación de cómo funciona este comando.

¿Cómo configuras variables de entorno?
Linux/macOS

$ export AWS_PROFILE=my-profile
$ export AWS_REGION=us-east-1

Powershell

PS C:\> $Env:AWS_PROFILE="my-profile"
PS C:\> $Env:AWS_REGION="us-east-1"

Windows Command Prompt

C:\> setx AWS_PROFILE my-profile
C:\> setx AWS_REGION us-east-1

Ahora puedes usar cualquier cliente inicializándolo como se muestra a continuación.

  const { SecretsManagerClient } = require('@aws-sdk/client-secrets-manager');
  const secretsManagerClient = new SecretsManagerClient();

Hay más variables de entorno que puedes configurar en tu terminal para lograr diferentes cosas, aquí hay una lista de variables de entorno soportadas.

Obteniendo credenciales en el código

Otra forma de proporcionar las credenciales al SDK es usando la clase credentials-provider. Esto requiere que tu código conozca cualquier parámetro que necesites configurar.
Para que esto funcione de la misma manera que la ruta de variables de entorno, necesitarás proporcionar el profile como entrada en tu código.

Una vez que hayas iniciado sesión en tu SSO con aws sso login --profile my-profile, puedes obtener las credenciales usando el paquete credential-providers como se muestra a continuación (si usas el perfil default puedes iniciar el cliente de la misma forma que con variables de entorno)

  const { SecretsManagerClient } = require('@aws-sdk/client-secrets-manager');
  const { fromSSO } = require('@aws-sdk/credential-providers');
  const credentials = await fromSSO({
    profile: inputtedProfile
  })();

Con el objeto AwsCredentialIdentityProvider puedes inicializar cualquier cliente proporcionando las credentials y la region como se muestra a continuación:

  const secretsManagerClient = new SecretsManagerClient({
    credentials: credentials,
    region: inputtedRegion
  });

Conclusión

Ejecutar el SDK desde tu máquina local es muy importante y valioso para poder proporcionar herramientas y mejorar tu experiencia de desarrollador.
Revisamos algunas de las formas en que puedes autenticar código que se ejecuta localmente cuando tienes varios perfiles.
Hay otras formas de autenticarte, así que si estas opciones no funcionan para ti debido a políticas de seguridad de tu organización o cualquier otra razón, te recomiendo revisar la documentación o contactar a la comunidad para encontrar cuál se adapta mejor a ti.
Comunidad AWS en Twitter
Workspace de Slack para Desarrolladores AWS