Имперсонация запросов
Имперсонация (impersonation) в MWS CLI — механизм, позволяющий пользовательскому, федеративному или сервисному аккаунтам выполнять операции от имени другого сервисного аккаунта.
Имперсонация может быть полезна в следующих сценариях:
- Отладка и диагностика — пользователь может выполнить команду от имени сервисного аккаунта, чтобы проверить, есть ли у того нужные права или корректно ли работают политики доступа.
- Администрирование — администратор сервиса может разово выполнить задачу от имени сервисного аккаунта, не выдавая себе постоянных расширенных прав.
- Безопасная автоматизация — один сервис может имперсонировать другой для выполнения цепочки действий, не храня долгоживущие токены и не нарушая принцип минимальных привилегий.
Как работает имперсонация запроса MWS CLI
Заголовок раздела «Как работает имперсонация запроса MWS CLI»Имперсонация запроса в MWS CLI выполняется с помощью флага --impersonate или параметра impersonate профиля. Имперсонация поддерживается всеми командами MWS CLI.
В значении передается имя или идентификатор сервисного аккаунта, например sa-editor или iam/projects/mws-cli-sandbox/serviceAccounts/my-admin-service-account.
Примеры работы с имперсонацией
Заголовок раздела «Примеры работы с имперсонацией»Запрос от имени другого сервисного аккаунта
Заголовок раздела «Запрос от имени другого сервисного аккаунта»Чтобы выполнить запрос от имени другого сервисного аккаунта, передайте его идентификатор в значении флага --impersonate:
mws vpc network list \ --impersonate iam/projects/mws-cli-sandbox/serviceAccounts/my-admin-service-accountЭтот запрос выведет список сетей, доступных для сервисного аккаунта my-admin-service-account.
Цепочка имперсонации
Заголовок раздела «Цепочка имперсонации»Чтобы выстроить цепочку субъектов имперсонации:
mws compute vm list \ --impersonate iam/projects/mws-cli-sandbox/serviceAccounts/my-test-service-account \ --impersonate my-admin-service-accountВ этом запросе MWS CLI сначала переключится на сервисный аккаунт iam/projects/mws-cli-sandbox/serviceAccounts/my-test-service-account, а затем внутри его контекста — на сервисный аккаунт my-admin-service-account. В итоге запрос вернет список виртуальных машин так, если бы запрос делал сам сервисный аккаунт my-admin-service-account.
Имперсонация в профиле MWS CLI
Заголовок раздела «Имперсонация в профиле MWS CLI»Чтобы зафиксировать субъект имперсонации в профиле MWS CLI, используйте команду mws profile param set impersonate:
mws profile param set impersonate my-admin-service-accountЧтобы установить более одного субъекта в цепочке имперсонации профиля, передайте субъекты через запятую:
mws profile param set impersonate iam/projects/mws-cli-sandbox/serviceAccounts/my-test-service-account,my-admin-service-accountИмперсонация в Managed Kubernetes
Заголовок раздела «Имперсонация в Managed Kubernetes»Чтобы использовать имперсонацию при работе с утилитой kubectl, настройте конфигурационный файл kubeconfig кластера Managed Kubernetes:
mws mk8s get-kubeconfig --impersonate my-mk8s-service-accountЗначение флага --impersonate сохранится в конфигурационном файле. Токены для утилиты kubectl будут выдаваться с учетом настроек имперсонации.