# #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
профиль, вероятно, не настроен на использование единого входа.