Я работаю с докером. Мне предоставлен образ докера, который прекрасно компилируется и работает, приложение использует клиент Amazon для взаимодействия сервисов, таких как S3, SNS, SQS.
в тот момент, когда приложение пытается загрузить клиент, онозавершается с ошибкой
Caused by: com.amazonaws.SdkClientException: Unable to load AWS credentials from any provider in the chain: [EnvironmentVariableCredentialsProvider: Unable to load AWS credentials from environment variables (AWS_ACCESS_KEY_ID (or AWS_ACCESS_KEY) and AWS_SECRET_KEY (or AWS_SECRET_ACCESS_KEY)), SystemPropertiesCredentialsProvider: Unable to load AWS credentials from Java system properties (aws.accessKeyId and aws.secretKey), com.amazonaws.auth.profile.ProfileCredentialsProvider@17bf085: profile file cannot be null, com.amazonaws.auth.EC2ContainerCredentialsProviderWrapper@24117d53: Unable to load credentials from service endpoint
Я проверил на cli, что локальная конфигурация IAM приложения верна, чтобы получить идентификацию вызывающего абонента на консоли
aws sts get-caller-identity
выход
{
"Account": "xxxxxxxxxxxx",
"UserId": "XXXXXXXXXXXXXXXXXXXXX:xxxxxxxx-session-1562266255",
"Arn": "arn:aws:sts::342484191705:assumed-role/abc-abc-abc-abc/xxxxxxxx-session-1562266255"
}
, поэтому роль IAM правильно принята на локальном компьютере, выполнение модульного теста и интеграционного теста на локальном компьютере также отлично подходит для роли IAM.
Я запускаю образ докера по команде
docker run -it --rm -e "JPDA_ADDRESS=*:8000" -e "JPDA_TRANSPORT=dt_socket" -p 5033:8000 -p 6060:6033 --memory 1300M --log-driver json-file --log-opt "max-size=1g" docker-image-arn dev
образ запускается, но не выполняет все операции, в которых он должен взять на себя роль IAM и взаимодействовать со службами AWS.
чего не хватает?
как создать приложениевнутри контейнера использовать роль IAM?