Как использовать несколько учетных записей AWS из командной строки?
У меня есть два разных приложения, которые я размещаю (ну, а второй собирается подняться) на Amazon EC2.
Как я могу работать с обоими учетными записями в командной строке (Mac OS X), но сохранить ключи EC2 и сертификаты отдельно? Нужно ли мне менять переменные среды перед каждой командой ec2- *?
Будет ли использовать псевдоним и иметь его в настройке среды в режиме работы? Что-то вроде:
alias ec2-describe-examples1 = export EC2_PRIVATE_KEY =/путь; EC2-описывающие-экземпляры
Ответы
Ответ 1
Вы можете использовать следующие параметры команды вместо переменных среды EC2_PRIVATE_KEY
(и даже EC2_CERT
):
-
-K <private key>
-
-C <certificate>
Вы можете поместить эти внутренние псевдонимы, например.
alias ec2-describe-instances1 ec2-describe-instances -K /path/to/key.pem
Ответ 2
Вы можете работать с двумя учетными записями, создав два profiles в командной строке aws.
Он предложит вам идентификатор ключа доступа AWS, секретный ключ доступа AWS и желаемую область, чтобы они были готовы.
Примеры:
$ aws configure --profile account1
$ aws configure --profile account2
Затем вы можете переключаться между учетными записями, передавая профиль в команде.
$ aws dynamodb list-tables --profile account1
$ aws s3 ls --profile account2
Примечание:
Если вы назовете профиль default
, он станет профилем по умолчанию, т.е. когда в команде не будет параметра --profile
.
Подробнее о профиле по умолчанию
Если вы тратите больше времени на использование учетной записи1, вы можете сделать это по умолчанию, установив переменную среды AWS_DEFAULT_PROFILE. Когда задана переменная среды по умолчанию, вам не нужно указывать профиль для каждой команды.
Linux, OS X Пример:
$ export AWS_DEFAULT_PROFILE=account1
$ aws dynamodb list-tables
Пример Windows:
$ set AWS_DEFAULT_PROFILE=account1
$ aws s3 ls
Ответ 3
Может быть, он по-прежнему помогает кому-то. Вы можете установить его вручную.
1) Установить в файл
~/.aws/credentials
это
[default]
aws_access_key_id={{aws_access_key_id}}
aws_secret_access_key={{aws_secret_access_key}}
[{{profile_name}}]
aws_access_key_id={{aws_access_key_id}}
aws_secret_access_key={{aws_secret_access_key}}
2) Установить в файл
~/.aws/config
это
[default]
region={{region}}
output={{output:"json||text"}}
[profile {{profile_name}}]
region={{region}}
output={{output:"json||text"}}
3) Проверьте его с помощью Командная строка AWS, а команда и вывод будут JSON
aws ec2 describe-instances --profile {{profile_name}}
Ссылка
http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html#cli-multiple-profiles
Ответ 4
Новые утилиты aws теперь поддерживают несколько профилей.
Если вы настраиваете доступ с помощью инструментов, он автоматически создает значение по умолчанию в файле ~/.aws/config.
Затем вы можете добавить дополнительные профили - более подробную информацию по адресу:
http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html#cli-multiple-profiles
Ответ 5
Вы можете написать shell script, чтобы установить соответствующие значения переменных среды для каждой учетной записи на основе ввода пользователя. Для этого вам не нужно создавать какие-либо псевдонимы и, кроме того, такие инструменты, как инструменты ELB, средства автоматической масштабирования командной строки будут работать и под несколькими учетными записями.