Лучшие практики по работе с учетными записями

Кратко:

  • Привилегированные пользователи имеют больше полномочий, чем обычные пользователи.
  • Рекомендуется назначать роль resource-manager.clouds.owner одному или нескольким сотрудникам.
  • Для аккаунта Яндекс ID, под которым создано облако, нужно назначить сложный пароль.
  • Роли admin на облака, каталоги и платежные аккаунты рекомендуется назначать только федеративным учетным записям.
  • Для аккаунта с ролью billing.accounts.owner следует уделять повышенное внимание безопасности.
  • Рекомендуется использовать двухфакторную аутентификацию для аккаунта с ролью billing.accounts.owner.
  • При разработке модели доступа для инфраструктуры рекомендуется использовать подход, основанный на ресурсах.
  • При использовании сервисных аккаунтов рекомендуется следовать принципу минимальных привилегий.

Лучшие практики по работе с учетными записями

В последних уроках этой и следующих тем мы будем рассказывать о лучших практиках обеспечения безопасности. Возможно, не все из них будут применимы для вашего проекта, но это полезные практические приемы, и о них в любом случае стоит знать.

Управление привилегированными пользователями

К привилегированным пользователям относятся учетные записи со следующими ролями:
  • resource-manager.clouds.owner;
  • billing.accounts.owner;
  • роль admin, назначенная всему облаку;
  • роль admin, назначенная каталогу;
  • роль admin, назначенная платежному аккаунту.
Привилегированными они называются потому, что могут делать в облаке гораздо больше, чем обычный пользователь. Поэтому и результат их действий может оказаться крайне неприятным.
Пользователь, который создает облако, автоматически получает роль resource-manager.clouds.owner. Она позволяет выполнять любые операции с облаком и ресурсами в нем, а также выдавать доступ другим пользователям путем назначения и отзыва ролей.
Если ваша компания использует федерацию удостоверений, то рекомендуется назначить эту роль одному или нескольким сотрудникам. Их федеративные аккаунты должны быть надёжно защищены с помощью:
  • двухфакторной аутентификации;
  • запрета на аутентификацию с посторонних устройств;
  • мониторинга попыток входа и заданных порогов предупреждений.
Для аккаунта Яндекс ID, под которым создано облако, нужно назначить сложный пароль, а использовать его — только в случае крайней необходимости (например, если федерация сломалась).
Роли admin на облака, каталоги и платежные аккаунты рекомендуется назначать только федеративным учетным записям. При этом число таких учетных записей должно быть минимально необходимым, а потребность пользователей в такой роли следует регулярно перепроверять.
Еще одна важная роль — это billing.accounts.owner, которая автоматически выдается при создании платёжного аккаунта и не может быть переназначена другому пользователю. Она позволяет выполнять любые действия с платёжным аккаунтом. Роль billing.accounts.owner может быть назначена только аккаунту Яндекс ID. Аккаунт с этой ролью используется при настройке способов оплаты и подключении облаков.
Безопасности такого аккаунта следует уделять повышенное внимание, поскольку он обладает значительными полномочиями и не может быть подключен к федерации корпоративных аккаунтов.
Наиболее правильным подходом можно считать отказ от регулярного использования аккаунта с этой ролью, то есть его нужно использовать только при первоначальной настройке и при внесении изменений. На время активного использования этого аккаунта включите двухфакторную аутентификацию (2FA) в Яндекс ID. Затем, если вы не используете способ оплаты банковской картой (доступный только для данной роли), назначьте этому аккаунту сложный пароль, сгенерированный с помощью специализированного ПО, отключите 2FA и не используйте этот аккаунт без необходимости.
После каждого использования генерируйте новый пароль. Отключение 2FA для этого аккаунта важно в ситуации, если аккаунт не закреплён за конкретным сотрудником. Это позволяет избежать привязки критически важного аккаунта к личному устройству.

Использование ресурсной модели

Если система должна соответствовать требованиям PCI DSS, то при разработке модели доступа для создаваемой инфраструктуры рекомендуется использовать следующий подход:
  • все ресурсы, которые входят в область соответствия PCI DSS, нужно поместить в отдельное облако;
  • группы ресурсов, которые требуют разного административного доступа, помещают в разные каталоги (например, DMZ, security, backoffice и т.д.);
  • общие ресурсы (например, сеть и группы безопасности) помещают в отдельный каталог для разделяемых ресурсов.
Последние два пункта стоит иметь в виду при построении любой сложной инфраструктуры в облаке, даже если требования PCI DSS вас пока не беспокоят.

Использование сервисных аккаунтов

При использовании сервисных аккаунтов рекомендуется:
  • для назначения сервисного аккаунта на виртуальную машину и получения токена использовать сервис метаданных;
  • настроить на виртуальной машине локальный файрвол;
  • обеспечить безопасное хранение и управление ключами сервисного аккаунта;
  • следовать принципу минимальных привилегий и назначать сервисному аккаунту только те роли, которые необходимы для работы приложения;
  • следовать принципу минимальных привилегий и в отношении доступа к самому сервисному аккаунту, то есть выдавать роли на него минимальному кругу пользователей и только при необходимости.