Автоматический поиск ключей для аутентификации (ADC)
В MWS Cloud доступен механизм автоматического обнаружения ключей доступа — Automatic Discovery of Credentials (ADC). Он проверяет несколько источников хранения ключей, и если находит рабочие реквизиты, то использует их для авторизации. Такой подход позволит запускать ваш код в различных окружениях без изменения методов аутентификации.
ADC доступен для следующих инструментов:
ADC ищет доступные методы аутентификации в строгом порядке:
- В переменной окружения
MWS_TOKEN— для аутентификации с помощью IAM-токена. - В переменной окружения
MWS_SERVICE_ACCOUNT_AUTHORIZED_KEY_PATH— для аутентификации с помощью авторизованного ключа. - (только для MWS Go SDK) Используя логику, реализованную в вашем провайдере для MWS Go SDK.
- Используя ключ сервисного аккаунта — если ADC определит, что код выполняется на виртуальной машине в MWS Cloud.
Первый этап: попытка аутентификации с помощью IAM-токена
Заголовок раздела «Первый этап: попытка аутентификации с помощью IAM-токена»В первую очередь ADC пытается аутентифицироваться с помощью IAM-токена, для этого он проверяет переменную окружения MWS_TOKEN.
Чтобы этот способ аутентификации сработал, вручную добавьте IAM-токен в переменную окружения:
Получите IAM-токен с помощью утилиты MWS CLI или с помощью JWT.
Сохраните полученный токен в переменную окружения
MWS_TOKEN:bash export MWS_TOKEN="<IAM_TOKEN>"
Второй этап: попытка аутентификации с помощью авторизованного ключа
Заголовок раздела «Второй этап: попытка аутентификации с помощью авторизованного ключа»Если ADC не обнаружил переменную MWS_TOKEN, он предпримет попытку аутентификации с помощью авторизованного ключа. Для этого он проверит переменную окружения MWS_SERVICE_ACCOUNT_AUTHORIZED_KEY_PATH — в ней должен находиться путь до файла с авторизованным ключом.
Для работы этого способа аутентификации подготовьте авторизованный ключ и разместите путь до файла с ключом в переменной окружения:
Сохраните файл с ключом на вашем устройстве.
Добавьте путь до файла с ключом в переменную окружения:
bash export MWS_SERVICE_ACCOUNT_AUTHORIZED_KEY_PATH="<путь до файла с авторизованным ключом>"Чтобы настройка сохранилась при перезапуске устройства, добавьте ее в
.bashrc:bash echo 'export MWS_SERVICE_ACCOUNT_AUTHORIZED_KEY_PATH="<путь до файла с авторизованным ключом>"' >> ~/.bashrc && source ~/.bashrc
Третий этап: попытка аутентификации через собственный провайдер (только для MWS Go SDK)
Заголовок раздела «Третий этап: попытка аутентификации через собственный провайдер (только для MWS Go SDK)»Если попытки аутентификации с помощью IAM-токена и авторизованного ключа не сработали, ADC предпримет попытку аутентифицироваться с помощью созданного вами провайдера. Этот способ подойдет только для MWS Go SDK.
Четвертый этап: попытка аутентификации с помощью сервисного аккаунта
Заголовок раздела «Четвертый этап: попытка аутентификации с помощью сервисного аккаунта»Если все перечисленные ранее методы аутентификации не обнаружены, ADC попытается определить, является ли текущая среда виртуальной машиной Compute. Если это так, ADC проверит, привязан ли к ВМ сервисный аккаунт.
Чтобы этот способ аутентификации сработал, заранее привяжите сервисный аккаунт к ВМ.
Пример автоматического поиска реквизитов
Заголовок раздела «Пример автоматического поиска реквизитов»Например, вы хотите сначала запустить ваш код в окружении для разработки. На вашем рабочем компьютере вы добавили переменную окружения MWS_TOKEN, содержащую временный IAM-токен. MWS Go SDK с помощью ADC обнаружил эту переменную окружения и использует ее для авторизации запросов.
В дальнейшем вы решили перенести готовый код в продуктовую среду на виртуальную машину Compute. На ВМ не задана переменная окружения MWS_TOKEN, но ADC найдет другой способ аутентификации — например, через сервисный аккаунт, привязанный к виртуальной машине. Так ваш код заработает на ВМ без дополнительных настроек.