Credenziali mancante nel file di configurazione quando si cerca di mettere in oggetto s3 secchio

0

Domanda

Ho una express servizio che sta cercando di scrivere un oggetto di un s3 secchio ma ricevo il seguente errore:

Credenziali mancante nel config

Sto assumendo che il mio AWS ruolo a livello locale che stabilisce le mie credenziali .aws/credentials quindi nel mio Dockerfile io sono la copia in mio contenitore.

RUN mkdir "/home/node/.aws" && touch "/home/node/.aws/config" && touch "/home/node/.aws/credentials"
RUN echo "${AWS_CREDENTIALS}" > "/home/node/.aws/credentials"

La documentazione dice:

L'SDK rileva automaticamente AWS credenziali impostate come variabili nel ambiente e li utilizza per il SDK richieste, eliminando la necessità di gestire le credenziali dell'applicazione. Le variabili di ambiente è impostato per fornire le credenziali sono:

AWS_ACCESS_KEY_ID

AWS_SECRET_ACCESS_KEY

AWS_SESSION_TOKEN (opzionale)

Così non devo gestire manualmente le mie credenziali quando si utilizza l'sdk?

Attualmente il codice per la scrittura s3 secchio:

import s3 from 'aws-sdk/clients/s3';

const s3Client = new s3({region: process.env['region']});

async upload() {
   const params = {
      Bucket: process.env['bucket'],
      Key: 'test.json',
      Body: somejsonfile
   }

   const res = s3Client.upload(params).promise();
   return results;
}
1

Migliore risposta

0

È il nodo di destra utente che esegue questo codice?

È il file /home/node/.aws/credentials sembra qualcosa di simile:

[default]
aws_access_key_id = <AAK>
aws_secret_access_key = <ASK>

Per eseguire il debug, si può provare, provare le seguenti: Si può provare ad aggiungere il tuo AWS credenziali direttamente nel codice del genere:

AWS.config.update({
    accessKeyId: "<AAK>",
    secretAccessKey: "<ASK>",
    "region": "<REGION>"
});

In alternativa, si può provare a eliminare /home/node/.aws/credentials file e spostare le credenziali per /home/node/.aws/config invece il file:

[default]
region=<REGION>
output=json
aws_access_key_id = <AAK>
aws_secret_access_key = <ASK>

E, in alternativa, si può provare ad aggiungere le credenziali e regione env variabili nel Dockerfile:

ENV AWS_ACCESS_KEY_ID=<AAK>
ENV AWS_SECRET_ACCESS_KEY=<ASK>
ENV AWS_DEFAULT_REGION=<REGION>
2021-11-25 08:53:02

In altre lingue

Questa pagina è in altre lingue

Русский
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................