Chybí pověření v konfiguračním když se snaží dát objekt do s3 kbelíku

0

Otázka

Mám expresní služba, která se snaží napsat objektu do s3 kbelíku, ale já jsem dostat následující chybu:

Chybí pověření v konfiguračním

Předpokládám, že můj AWS roli lokálně který stanoví mého pověření v .aws/credentials pak se v mém Dockerfile jsem se kopírování je do kontejneru.

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

Dokumentace říká:

SDK automaticky detekuje AWS pověření nastavit jako proměnné ve prostředí a využívá je pro SDK žádostí, což eliminuje potřebu správa pověření v aplikaci. Proměnné prostředí, které můžete nastavit, aby poskytnout své přihlašovací údaje jsou:

AWS_ACCESS_KEY_ID

AWS_SECRET_ACCESS_KEY

AWS_SESSION_TOKEN (volitelné)

Takže nemusím ručně spravovat své pověření při použití sdk?

V současné době kód pro zápis do s3 kbelíku:

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

Nejlepší odpověď

0

Je uzel právo uživatele, že spuštění tohoto kódu?

Je soubor /home/node/.aws/credentials vypadá, jako něco takového:

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

Na ladění, můžete zkusit zkuste následující: Můžete zkusit přidat své AWS pověření přímo v kódu, jako že:

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

Alternativně, můžete se pokusit odstranit /home/node/.aws/credentials soubor a přesunout pověření /home/node/.aws/config místo toho soubor:

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

A případně můžete zkusit přidat pověření a regionu jako env proměnné ve Dockerfile:

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

V jiných jazycích

Tato stránka je v jiných jazycích

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