Я возился с написанием кода, который проходит через процесс аутентификации STS. Я обнаружил, что могу последовательно вызывать следующие API:
RegisterClient
StartDeviceAuthorization
CreateToken
ListAccounts
ListAccountRoles
, и в конце концов я дошел до того, что могу позвонить GetRoleCredentials
и успешно получить обратно accessKeyId
, secretAccessKey
и sessionToken
. Я заметил, что я могу использовать эти три значения для успешного вызова набора API (например, получить список лямбда-функций).
Однако весь документ, который я читал, предполагает, что на самом деле мне также следует вызывать AssumeRole
(который также возвращает accessKeyId
, secretAccessKey
и sessionToken
).
Я просто пытаюсь выяснить, в чем разница между GetRoleCredentials
и AssumeRole
, и когда мне следует звонить одному или другому. Спасибо.
Спасибо за ответ. Перед публикацией я читал обе эти ссылки несколько раз, но это все еще не объясняет /почему/ я предпочитаю использовать одну вместо другой. При отладке интерфейса командной строки AWS я вижу, что на самом деле он вызывает оба, но мне непонятно, почему.
Для успешного входа в систему единого входа служба единого входа должна подтвердить, что у пользователя есть учетные данные. Это делается в два этапа с разными сущностями и API. 1. Пользователь получает роль с учетными данными через
AssumeRole
. 2. Служба единого входа подтверждает учетные данные пользователя в роли черезGetRoleCredentials
. Я предполагаю, что в CLI шаги включены в последовательность.