Как использовать несколько аккаунтов AWS из командной строки?
У меня есть два разных приложения, которые я размещаю (ну второй собирается идти вверх) на Amazon EC2.
Как я могу работать с обеими учетными записями в командной строке (Mac OS X), но хранить ключи и сертификаты EC2 отдельно? Нужно ли менять переменные среды перед каждой командой ec2 -*?
будет ли использовать псевдоним и иметь его для настройки среды в режиме онлайн? Что-то вроде:
псевдоним ec2-describe-instances1 = экспорт EC2_PRIVATE_KEY= / path; ec2-describe-instances
6 ответов:
вы должны быть в состоянии использовать следующие параметры команды вместо
EC2_PRIVATE_KEY(и дажеEC2_CERT) переменные окружения:
-K <private key>-C <certificate>вы можете поместить их в псевдонимы, например
alias ec2-describe-instances1 ec2-describe-instances -K /path/to/key.pem
вы можете работать с двумя учетными записями, создав два профили в командной строке aws. Он подскажет вам для вашего AWS Access Key ID, AWS Secret Access Key и желаемый регион, так что они готовы.
примеры:
$ aws configure --profile account1 $ aws configure --profile account2затем вы можете переключаться между учетными записями, передавая профиль по команде.
$ aws dynamodb list-tables --profile account1 $ aws s3 ls --profile account2Примечание:
если вы называете профиль, чтобы быть
defaultстанет по умолчанию профиль т. е. когда нет--profileparam в команду.
подробнее о профиле по умолчанию
если вы проводите больше времени с помощью account1, вы можете сделать его по умолчанию, установив переменную среды AWS_DEFAULT_PROFILE. Если задана переменная среды по умолчанию, вам не нужно указывать профиль для каждой команды.
Linux, OS X пример:
$ export AWS_DEFAULT_PROFILE=account1 $ aws dynamodb list-tablesПример Windows:
$ set AWS_DEFAULT_PROFILE=account1 $ aws s3 ls
может быть, это еще кому-то поможет. Вы можете установить его вручную.
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}}
- {{aws_access_key_id}} вы можете попасть в раздел консоль AWS > управление идентификацией и доступом > учетные данные безопасности > ключи доступа
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}}
Ref
http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html#cli-multiple-profiles
новые инструменты aws теперь поддерживают несколько профилей.
Если вы настраиваете доступ с помощью инструментов, он автоматически создает значение по умолчанию в~/.aws / config.
затем вы можете добавить дополнительные профили-более подробную информацию по адресу:
http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html#cli-multiple-profiles
вы можете написать сценарий оболочки для установки соответствующих значений переменных среды для каждой учетной записи на основе пользовательского ввода. При этом вам не нужно создавать какие-либо псевдонимы, и, кроме того, такие инструменты, как ELB tools, Auto Scaling Command Line Tools, также будут работать под несколькими учетными записями.
Я рекомендую проверить docker container encapsulated CLI. вы можете запустить контейнер для каждой учетной записи для лучшей изоляции.
Comments