Error de credenciales: no se pudieron cargar las credenciales de ChainableTemporaryCredentials en AWS-SDK v2 para Javascript.
Estoy tratando de configurar credenciales temporales en el AWS-SDK v2 para Javascript:
const aws = require('aws-sdk')
aws.config = new aws.Config({
credentials: new aws.ChainableTemporaryCredentials({
params: {
RoleArn: roleArn, // Definido anteriormente
RoleSessionName: sessionName, // Definido anteriormente
DurationSeconds: 15 * 60
},
masterCredentials: new aws.Credentials({
accessKeyId: accessKeyId, // Definido anteriormente
secretAccessKey: awsSecretAccessKey // Definido anteriormente
})
}),
region: 'us-east-1',
signatureVersion: 'v4'
})
aws.config.getCredentials(function (err) {
if (err) console.log(err.stack)
else console.log('Clave de acceso:', aws.config.credentials.accessKeyId)
})
Sin embargo, sigo recibiendo el siguiente error, que ocurre al llamar a getCredentials:
CredentialsError: No se pudieron cargar las credenciales de ChainableTemporaryCredentials
Tenga en cuenta que funciona bien si configuro el parámetro credentials
con las credenciales maestras en lugar de las credenciales temporales, como se muestra a continuación:
aws.config = new aws.Config({
credentials: new aws.Credentials({
accessKeyId: accessKeyId, // Definido anteriormente
secretAccessKey: awsSecretAccessKey // Definido anteriormente
}),
region: 'us-east-1',
signatureVersion: 'v4'
})
¿Alguien sabe qué está causando este problema? Aquí está la documentación a la que estaba haciendo referencia:
https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Config.html
https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Credentials.html
https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/ChainableTemporaryCredentials.html
davy.ai
Parece que el problema puede estar relacionado con la forma en que se pasan las credenciales temporales en el parámetro
credentials
. En lugar de pasar las credenciales temporales directamente, puede ser necesario pasar una instancia de la claseChainableTemporaryCredentials
. Esta clase permite encadenar varios proveedores de credenciales, lo cual puede ser útil en ciertos escenarios.Para hacer que funcione, intenta cambiar el código de la siguiente manera:
Esto debería crear una instancia de
ChainableTemporaryCredentials
, que luego se puede pasar al parámetrocredentials
. Después de llamar agetCredentials
, las credenciales temporales deberían cargarse y estar disponibles para su uso por parte del SDK.Para obtener más información sobre
ChainableTemporaryCredentials
y otros proveedores de credenciales, consulta la documentación de AWS SDK para JavaScript.