Lipsă de acreditare în config atunci când încearcă să pună obiectul la găleată s3

0

Problema

Am un serviciu expres, care este încercarea de a scrie un obiect pentru o găleată s3 dar primesc urmatoarea eroare:

Lipsă de acreditare în config

Presupun că-mi AWS rol la nivel local care stabilește recomandările mele în .aws/credentials apoi, în Dockerfile sunt copiindu-le în container.

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

Documentația spune:

SDK-ul detectează automat AWS prerogativelor stabilite ca variabile în mediu și le folosește pentru SDK cereri, eliminând necesitatea de a gestiona acreditările în cererea dumneavoastră. Variabilele de mediu care setați pentru a oferi acreditările dvs. sunt:

AWS_ACCESS_KEY_ID

AWS_SECRET_ACCESS_KEY

AWS_SESSION_TOKEN (opțional)

Așa că nu trebuie să manual gestiona acreditările atunci când se utilizează sdk?

În prezent, codul scris la găleată s3:

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

Cel mai bun răspuns

0

Este nod dreptul de utilizatorul care executa acest cod?

Este fișierul /home/node/.aws/credentials se pare ca ceva de genul asta:

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

Pentru a depana, puteți încerca, încercați următoarele: Puteți încerca să adăugați AWS acreditările direct în codul de genul asta:

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

Alternativ, puteți încerca pentru a șterge /home/node/.aws/credentials fișier și pentru a muta de acreditare /home/node/.aws/config fișier:

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

Și, alternativ, puteți încerca să adăugați acreditările și regiunea ca mediu variabile în Dockerfile:

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

În alte limbi

Această pagină este în alte limbi

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