Прохождение доступа и секретный ключ aws cli

Я пытаюсь внедрить доступ и секретный ключ вместе с aws cli. например.

aws ec2 describe-instances --aws-access-key <access_key> --aws-secret-key <secret_key>

Также используется опция -o и -w для доступа и секретного ключа соответственно. В нем говорится: Неизвестный параметр aws-access-key и aws-secret-key

Ответ 1

Вы можете предоставить ключи в командной строке через envars:

AWS_ACCESS_KEY_ID=ABCD AWS_SECRET_ACCESS_KEY=EF1234 aws ec2 describe-instances

См. http://docs.aws.amazon.com/cli/latest/topic/config-vars.html#credentials

EDIT: @wisbucky отметил, что это может оставить тайны в истории вашей команды. Один из способов обойти это в bash по крайней мере, я думаю, это добавить команду в пустое место, и команда не должна распространяться на вашу историю bash.

Ответ 2

Вы можете использовать это как этот;

aws configure set aws_access_key_id <yourAccessKey>
aws configure set aws_secret_access_key <yourSecretKey>

Для получения дополнительной информации используйте этот;

aws configure set help

Общий шаблон:

aws <command> help
aws <command> <subcommand> help

Надеюсь, это поможет!

Ответ 3

Подводя итог aws doc, есть несколько способов передачи учетных данных в командную строку. Обратите внимание, что нет параметров командной строки для передачи ключа и секретного ключа напрямую. Вместо этого используется "цепочка провайдеров".

В моих скриптах bash я часто использую переменные окружения. Чтобы добавить немного безопасности, я создаю файл, содержащий переменные, а не помещаю их в сценарий. С именованными профилями это еще проще.

Цепочка поставщиков:

  1. параметры командной строки: указать регион, формат вывода или профиль
  2. Переменные среды: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY и AWS_SESSION_TOKEN
  3. Файл учетных данных AWS - расположен в ~/.aws/credentials в Linux, macOS, или Unix, или в C:\Users\USERNAME.aws\credentials on Окна. Этот файл может содержать несколько именованных профилей в дополнение в профиль по умолчанию.
  4. Файл конфигурации CLI - обычно находится в ~/.aws/config в Linux, macOS или Unix, или в C:\Users\USERNAME.aws\config on Окна. Этот файл может содержать профиль по умолчанию, именованные профили, и конкретные параметры конфигурации CLI для каждого.
  5. Учетные данные контейнера - предоставляются Amazon Elastic Container Service в случаях контейнера, когда вы назначаете роль своей задаче.
  6. Учетные данные профиля экземпляра - эти учетные данные можно использовать в EC2 экземпляры с назначенной ролью экземпляра и доставляются через сервис метаданных Amazon EC2.

Ответ 4

Вы также можете использовать aws configure:

$ aws configure
AWS Access Key ID [None]: xxxxxxxxxxxxxxxxxxxxxxxxx
AWS Secret Access Key [None]: xxxxxxxxxxxxxxxxxxxxxxxxx

Ответ 5

Лучше всего и безопаснее использовать роли IAM. Там вы можете установить определенные права на этот экземпляр и доступ к нему в своей учетной записи.

В зависимости от того, какую версию awscli вы используете, вы можете использовать описания-экземпляры несколькими способами.

Как этот:

ec2din -O your-key -W your-secret-key --region your-region

Также существует большая разница, когда вы устанавливаете awscli с установкой pip или из pkg, такого как пакет debug debug.

ec2din - короткая команда для ec2-describe-instance

Другие примеры здесь: ec2-describe-экземпляры

С уважением.

Ответ 6

Мне пришлось получить доступ к нескольким учетным записям на Amazon.... поэтому мое решение:

в: ~/.aws/config

[default] aws_access_key_id = xxxx aws_secret_access_key = xxxxxx region=sa-east-1 output=text

[profile prof1] region=us-east-1 output=text aws_access_key_id = yyy aws_secret_access_key = yyyyy

[profile prof2] region=us-east-1 output=text aws_access_key_id = wwwwww aws_secret_access_key = wwwww

..и затем, когда вызывали CLI aws, я передал параметр "--profile" как:

/usr/local/bin/aws ec2 describe-security-groups --group-ids sg-xxxx --profile prof2

...это!

Ответ 7

Вы должны сохранить свои учетные данные в файле ~/.aws/config (или .aws/credentials)

Подробнее о том, как его настроить http://docs.aws.amazon.com/cli/latest/reference/configure/index.html

Также в качестве альтернативного способа вы можете создать роль IAM и определенную политику и установить ее для своего экземпляра ec2, где вы будете использовать aws cli, тогда вам не понадобятся никакие настройки учетных данных там.

Ответ 8

enter image description here

Чтобы получить доступ к aws через cli,

aws configure

Ответ 9

Другой метод заключается в использовании echo с конфигурацией aws в качестве однострочного:

echo -ne '%s\n%s\n%s\n%s\n' <access_key> <security_key> <region> <output> | aws configure