Manque d'informations d'identification dans la configuration lorsque vous essayez de mettre l'objet d'un compartiment s3

0

La question

J'ai un service express qui est d'essayer d'écrire un objet à un compartiment s3 mais j'obtiens l'erreur suivante:

Manque d'informations d'identification dans le fichier config

Je suis en supposant que ma AWS rôle localement, ce qui définit mes informations d'identification dans .aws/credentials ensuite dans mon Dockerfile je copie dans mon conteneur.

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

La documentation dit:

Le SDK détecte automatiquement les informations d'identification AWS définir comme des variables dans votre l'environnement et les utilise pour le SDK demandes, éliminant le besoin de gérer les informations d'identification dans votre application. Les variables d'environnement vous définissez à fournir vos informations d'identification sont les suivants:

AWS_ACCESS_KEY_ID

AWS_SECRET_ACCESS_KEY

AWS_SESSION_TOKEN (facultatif)

Donc je n'ai pas à gérer manuellement mes informations d'identification lors de l'utilisation du sdk?

Actuellement, le code de l'écriture dans le compartiment 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

La meilleure réponse

0

Est le nœud le droit de l'utilisateur qui execute ce code?

Est le fichier /home/node/.aws/credentials ressemble à quelque chose comme ça:

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

Pour le débogage, vous pouvez essayer essayez les solutions suivantes: Vous pouvez essayer d'ajouter vos informations d'identification AWS directement dans le code comme ça:

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

Sinon, vous pouvez essayer de le supprimer /home/node/.aws/credentials fichier et déplacez les informations d'identification de /home/node/.aws/config place le fichier:

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

Et sinon, vous pouvez essayer d'ajouter des informations d'identification et de la région comme des variables d'environnement dans votre Dockerfile:

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

Dans d'autres langues

Cette page est dans d'autres langues

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