Есть ли способ получить текущий профиль из AWS?

# #amazon-web-services #go #command-line-interface #single-sign-on

Вопрос:

Я нахожусь в процессе создания инструмента CLI, который выполняет некоторую настройку на основе выходных данных AWS SSO. По сути, я пытаюсь захватить профиль, связанный с текущим профилем, в который я вошел. Если я смогу получить имя профиля, я смогу просмотреть ~/.aws/config значения и получить информацию, необходимую для выполнения вызова API.

Приложение написано на Go, однако я полностью согласен с запуском exec команды в системе, чтобы найти настройки профиля для текущего сеанса AWS, вошедшего в систему.

Есть ли команда, которую можно запустить, которая возвращает текущий профиль AWS, используемый для вызовов CLI?

Комментарии:

1. пробовать aws sts get-caller-identity

2. Спасибо @Red Cricket. Это возвращает только UserId , Account и Arn до тех пор, пока я уже предоставляю --profile атрибут. Если я опущу --profile это, это говорит о том, что у меня истек срок действия токена. При использовании aws sso login я бы предположил, что где-то сохранен используемый профиль, но до сих пор я не смог его найти.

3. Ваш профиль будет взят из ~/.aws/учетные данные. Было бы полезно проверить определенные профили там. Если их несколько, я думаю, что он выберет профиль по умолчанию, определенный в учетных данных. Кроме того, если вы установили переменную env AWS_PROFILE, он будет использовать этот профиль и игнорировать другие настройки. Опять же, все это также зависит от других настроек в вашей системе.. Существует порядок предшествования, который определяет, какие учетные данные используются для выполнения cli. Это может быть не всегда профиль

4. Нет понятия «войти в» профиль. Каждый вызов API независим, и профиль можно указать при запуске интерфейса командной строки AWS. Если профиль не указан, он будет использовать профиль по умолчанию.

5. Вход в систему единого входа AWS на самом деле имеет что-то вроде концепции «входа в систему». Поток входа в систему единого входа обрабатывает saml /oidc и завершается получением токена, который подходит для настраиваемого времени, обычно в течение нескольких часов. Этот токен затем используется для получения временных учетных данных для любого профиля, использующего единый вход в конфигурации aws. Если --profile требуется, это означает, что ваш default профиль, вероятно, не настроен на использование единого входа.