Я пытаюсь получить доступ к aws s3 из docker контейнера. Роль IAM с AWSS3FullAccess создана, а учетные данные установлены с помощью json файла конфигурации.
Внутри конфигурации чтения кода в виде
AWS.config.loadFromPath('./config/credentials.json');
Однако при запуске кода появляется следующая ошибка:
Error downloading file from s3
{ Error: connect ECONNREFUSED 169.254.169.254:80
at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1107:14)
message: 'Missing credentials in config',
errno: 'ECONNREFUSED',
code: 'CredentialsError',
syscall: 'connect',
address: '169.254.169.254',
port: 80,
time: 2020-01-25T07:42:31.329Z,
originalError:
{ message: 'Could not load credentials from any providers',
errno: 'ECONNREFUSED',
code: 'CredentialsError',
syscall: 'connect',
address: '169.254.169.254',
port: 80,
time: 2020-01-25T07:42:31.328Z,
originalError:
{ message: 'EC2 Metadata roleName request returned error',
errno: 'ECONNREFUSED',
code: 'ECONNREFUSED',
syscall: 'connect',
address: '169.254.169.254',
port: 80,
time: 2020-01-25T07:42:31.328Z,
originalError: [Object] } } }
Когда тот же код выполняется без контейнера docker и файл конфигурации предоставляется, как указано выше, он работает.