Мне нужно поработать с докером и AWS.
когда я пытаюсь бежать
$ docker run --rm -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY grycap/aws-cli ec2 describe-instances
Я получил:
An error occurred (AuthFailure) when calling the DescribeInstances operation: Authorization header or parameters are not formatted correctly.
Но моя настройка $ aws уже выполнена; когда я бегу
$aws configure list
Я получил:
Name Value Type Location
---- ----- ---- --------
profile <not set> None None
access_key ****************3Y7Q shared-credentials-file
secret_key ****************yCIY shared-credentials-file
region ap-southeast-2 config-file ~/.aws/config
Редактировать: когда я пытаюсь
echo $AWS_ACCESS_KEY_ID
ответ - пустая строка ...
Похоже, вам стоит использовать docker run -it -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY -e AWS_DEFAULT_REGION=$AWS_DEFAULT_REGION grycap/aws-cli ec2 describe-instances
привет @chintanthakar, спасибо за ответ, пробуя эхо, возвращает пустую строку
да, это причина, по которой вы получаете ошибку аутентификации. сначала вам нужно export AWS_ACCESS_KEY_ID=<Your-Actual-key> and same for $AWS_SECRET_ACCESS_KEY, $AWS_DEFAULT_REGION , чем вы должны запустить команду docker run --rm -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY grycap/aws-cli ec2 describe-instances, он определенно будет работать





Вот полные решения.
export AWS_ACCESS_KEY_ID=<Your-Actual-key>
export AWS_SECRET_ACCESS_KEY=<Your-Actual-key>
export AWS_DEFAULT_REGION=<Your-Actual-Region>
И затем запустите команду ниже:
docker run --rm -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY grycap/aws-cli ec2 describe-instances
В качестве альтернативы вы можете поместить все эти три в ~/.bash_profile
AWS_ACCESS_KEY_ID=<Your-Actual-key>; export AWS_ACCESS_KEY_ID
AWS_SECRET_ACCESS_KEY=<Your-Actual-key> ; export AWS_SECRET_ACCESS_KEY
AWS_DEFAULT_REGION=<Your-Actual-Region> ;export AWS_DEFAULT_REGION
source ~/.bash_profile, а затем запустите команду:
docker run --rm -e AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY grycap/aws-cli ec2 describe-instances
надеюсь, это поможет. Благодарю вас!
Вы можете поделиться выводом
echo $AWS_ACCESS_KEY_IDс хост-машины? он показывает ваши фактические access_keys?