Как использовать несколько аккаунтов AWS из командной строки?



У меня есть два разных приложения, которые я размещаю (ну второй собирается идти вверх) на Amazon EC2.



Как я могу работать с обеими учетными записями в командной строке (Mac OS X), но хранить ключи и сертификаты EC2 отдельно? Нужно ли менять переменные среды перед каждой командой ec2 -*?



будет ли использовать псевдоним и иметь его для настройки среды в режиме онлайн? Что-то вроде:



псевдоним ec2-describe-instances1 = экспорт EC2_PRIVATE_KEY= / path; ec2-describe-instances

721   6  

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 станет по умолчанию профиль т. е. когда нет --profile param в команду.


подробнее о профиле по умолчанию

если вы проводите больше времени с помощью 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}}

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

    Ничего не найдено.