Вот как это происходит: у вас открыто окно Chrome для вашей учетной записи Production AWS и окно Firefox открыто для учетной записи Staging. Для учетной записи Dev открыто окно Safari, а для учетной записи Sandbox открыто окно Firefox в режиме инкогнито. Где-то в 200 открытых окнах вашего дока скрыта учетная запись Chrome в режиме инкогнито для другой учетной записи песочницы (потому что ваша организация очень, очень заботится о разделении на уровне учетных записей), но к тому времени, когда вам удастся найти ее, ваша сеанс, вероятно, будет просрочен, и вам придется снова пройти через весь беспорядок входа в систему.

Я не могу объяснить вам, почему AWS решила сделать свой пользовательский опыт таким — кто я такой, чтобы сомневаться в воле Бога? Но я могу предложить вам решение: простой инструмент CLI с открытым исходным кодом, установка которого займет у вас 10 минут и навсегда избавит вас от оконного ада браузера AWS.

Вот как работает Granted CLI. Запустите команду assume в своем терминале и выберите, в какой профиль AWS войти (в моем случае testing):

И через несколько секунд откроется новая вкладка в выбранном вами браузере (в моем случае Firefox):

Теперь предположим, что вы хотите одновременно работать во второй учетной записи AWS. Все, что вам нужно сделать, это запустить ту же команду, на этот раз выбрав другой профиль (в моем случае release):

И тогда у вас будет открыта вторая вкладка в новом контейнере:

Вы можете переключаться между этими вкладками, чтобы работать в этих учетных записях одновременно без лишних хлопот. Открыть другой профиль так же просто, как снова запустить assume.

Если вы считаете, что это так же круто, как и мы, вы можете прочитать наше Руководство по началу работы, чтобы настроить Granted, но, чтобы сэкономить вам время, я пройдусь по инструкциям для MacOS здесь (руководство по началу работы содержит конкретные инструкции для Linux и Windows тоже).

Во-первых, вам нужно настроить хотя бы одну роль в вашем файле конфигурации AWS. В MacOS это хранится в ~/.aws/config. Файл конфигурации для AWS SSO должен выглядеть примерно так:

# ~/.aws/config
# Change the values below to match your AWS SSO configuration
# Granted uses the profile name: in this case 'my-profile' to choose the role.
[profile my-profile]
sso_start_url=https://mycompany.awsapps.com/start
sso_region=us-east-1
sso_account_id=123456789012
sso_role_name=DeveloperRole
region=us-east-1

(вы также можете использовать AWS IAM, но мы рекомендуем SSO.)

После того, как вы настроите эту настройку, вы можете использовать Homebrew для установки Granted:

brew tap common-fate/granted
brew install granted

И проверьте свою установку:

➜ granted -v
Granted v0.2.9

(у меня версия 0.2.9 на момент написания — у вас, вероятно, будет более поздняя версия)

Убедившись, что Granted установлен правильно, вы можете запустить команду assume, чтобы начать работу с мастером установки, где вам будет предложено выбрать браузер.

После настройки вы можете снова запустить assume для выбора ролей:

Вы также можете напрямую передать имя роли и использовать флаг -c, чтобы открыть консоль, например assume -c testing.

Вот и все! Если у вас есть какие-либо вопросы, вы можете ознакомиться с документами или присоединиться к нашему Slack, где мы будем рады пообщаться с вами напрямую. А если вам нравится Granted, вы можете следить за обновлениями и жуткими шутками в нашем Твиттере.

Счастливый ClickOpsing!