Як використовувати кілька облікових записів AWS з командного рядка?


114

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

Як я можу працювати з обома обліковими записами в командному рядку (Mac OS X), але зберігати розділені ключі та сертифікати EC2? Чи потрібно міняти змінні середовища перед кожною командою ec2- *?

Чи вдасться використовувати псевдонім та встановити його для встановлення поточного середовища? Щось на зразок:

псевдонім ec2-описує-екземпляри1 = експорт EC2_PRIVATE_KEY = / шлях; ec2-описуйте-екземпляри

Відповіді:


17

Ви повинні мати можливість використовувати такі параметри команд замість змінних EC2_PRIVATE_KEY(і навіть EC2_CERT) середовища:

  • -K <private key>
  • -C <certificate>

Ви можете розмістити їх всередині псевдонімів, наприклад

alias ec2-describe-instances1 ec2-describe-instances -K /path/to/key.pem

309

Можна працювати з двома обліковими записами, створивши два профілі в командному рядку aws. Він підкаже вам про свій ідентифікаційний ключ доступу AWS, ключ секретного доступу AWS та потрібний регіон, тому готуйте їх.

Приклади:

$ aws configure --profile account1
$ aws configure --profile account2

Потім ви можете перемикатися між обліковими записами, передаючи профіль команди.

$ aws dynamodb list-tables --profile account1
$ aws s3 ls --profile account2

Примітка:

Якщо ви назвали профіль таким, який defaultвін буде, він стане типовим профілем, тобто коли --profileв команді немає парам.


Детальніше про профіль за замовчуванням

Якщо ви проводите більше часу з допомогою 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

Щоб налаштувати регіон - ось список "кодів" регіону - docs.aws.amazon.com/general/latest/gr/rande.html
arcseldon

66

Можливо, це все-таки комусь допоможе. Ви можете встановити його вручну.

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


2
@iBrianCox - Ця інформація повинна бути переважно об'єднана в самому upvoted відповідь ( stackoverflow.com/a/34246053/1199564 ) , оскільки вона дозволяє користувачеві зрозуміти , як перемістити параметри з одного профілю в інший , якщо, наприклад, ви почали з профілем за замовчуванням і потрібно продовжувати виділяти окремі профілі.
мгд

@slm, будь ласка, прочитайте мій коментар вище (зміг зробити лише одну згадку за коментар)
mgd

@mgd дякую за пропозицію, але ні - адже спочатку ця відповідь не моя - а по-друге, це інший підхід, як її встановити
BG BRUNO

@mgd Q Ви можете більше описати, що ви маєте на увазі "одна згадка за коментар"?
BG BRUNO

Те , що я мав в виду , що в моєму першому коментарі я мав намір згадати як iBrianCox і SLM (автор і редактор іншої відповіді відповідно) , але ви тільки дозволили зробити одна згадка за коментар , тому мені довелося додати ще один коментар, щоб згадати і . Ви впевнені, що ваша відповідь - це інший підхід, але дуже корисно знати, де зберігається інформація, зокрема, якщо ви збираєтесь копіювати налаштування між профілями.
мгд

6

Нові інструменти aws тепер підтримують декілька профілів.

Якщо налаштувати доступ за допомогою інструментів, він автоматично створює типовий параметр у ~ / .aws / config.

Потім можна додати додаткові профілі - детальніше на:

http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html#cli-multiple-profiles


0

Ви можете написати скрипт оболонки, щоб встановити відповідні значення змінних середовища для кожного облікового запису на основі даних користувача. Для цього вам не потрібно створювати жодні псевдоніми, і, крім того, такі інструменти, як інструменти ELB, інструменти командного рядка автоматичного масштабування також працюватимуть у кількох облікових записах.


0

Я створив простий інструмент, aaws , для переключення між акаунтами AWS.

Він працює, встановивши AWS_DEFAULT_PROFILEв оболонку. Просто переконайтеся, що у вашому ~/.aws/credentialsфайлі є деякі записи, і він легко переключатиметься між кількома обліковими записами.

/tmp
$ aws s3 ls
Unable to locate credentials. You can configure credentials by running "aws configure".
/tmp
$ aaws luk3

[luk3] 🔐 /tmp
$ aws s3 ls
2013-11-05 21:40:04 luk3thomas.com
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.