AWS Учетные данные конфигурации не доступны в docker - PullRequest
0 голосов
/ 09 июля 2020

Я установил секретный менеджер в своей локальной системе, и теперь у меня есть каталог. aws в моем каталоге windows root. И, используя следующий код, я получаю свой идентификатор ключа доступа и значение.

client.getSecretValue({SecretId: secretName}, function(err, data) {
// console.log(err);
if (err) {
    console.log(err);
    if (err.code === 'DecryptionFailureException')
        // Secrets Manager can't decrypt the protected secret text using the provided KMS key.
        throw err;
    else if (err.code === 'InternalServiceErrorException')
        // An error occurred on the server side.
        throw err;
    else if (err.code === 'InvalidParameterException')
        // You provided an invalid value for a parameter.
        throw err;
    else if (err.code === 'InvalidRequestException')
        // You provided a parameter value that is not valid for the current state of the resource.
        throw err;
    else if (err.code === 'ResourceNotFoundException')
        // We can't find the resource that you asked for.
        throw err;
}
else {
    
    // Decrypts secret using the associated KMS CMK.
    // Depending on whether the secret is a string or binary, one of these fields will be populated.
    if ('SecretString' in data) {
        secret = JSON.parse(data.SecretString);
        secretKey = secret["AWS_ACCESS_KEY_ID"];
        clientID = secret["AWS_ACCESS_KEY_ID"];
        secret.region = "us-east-1";
        global.secret = secret;
    } else {
        let buff = new Buffer(data.SecretBinary, 'base64');
        decodedBinarySecret = buff.toString('ascii');
    }

    // routes 
   
    require('./services')(router,validation);
}

});

Он работает хорошо. Но когда я запускаю приведенный выше код с docker, он терпит неудачу со следующей ошибкой

Отсутствуют учетные данные в конфигурации, при использовании AWS_CONFIG_FILE установите AWS_SDK_LOAD_CONFIG = 1.

1 Ответ

0 голосов
/ 09 июля 2020

Вы можете передать эти значения как переменные среды через интерфейс командной строки.

Для этого запустите с помощью синтаксиса ниже

docker run -it -p 3000:3000 -e AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE -e AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY service-docker-image-2:latest .
...