Разрешения и безопасность в Azure Chaos Studio
Azure Chaos Studio позволяет повысить устойчивость служб, систематически внедряя ошибки в ресурсы Azure. Внедрение ошибок — это эффективный способ повышения устойчивости службы, но он также может быть опасным. Причиняющие сбои в приложении могут оказать больше влияния, чем первоначально предназначенные и открытые возможности для вредоносных субъектов для внедрения приложений.
Chaos Studio имеет надежную модель разрешений, которая предотвращает непреднамеренное выполнение ошибок или плохого субъекта. Из этой статьи вы узнаете, как защитить ресурсы, предназначенные для внедрения ошибок с помощью Chaos Studio.
Как ограничить возможность внедрения ошибок в Chaos Studio?
Chaos Studio имеет три уровня безопасности, которые помогут вам контролировать, как и когда внедрение ошибок может произойти в ресурсе:
Во-первых, эксперимент хаоса — это ресурс Azure, развернутый в регионе, группе ресурсов и подписке. У пользователей должны быть соответствующие разрешения Azure Resource Manager для создания, обновления, запуска, отмены, удаления или просмотра эксперимента.
Каждое разрешение — это операция Resource Manager, которая может быть детально назначена удостоверению или назначена как часть роли с разрешениями подстановочного знака. Например, роль участника в Azure имеет
*/write
разрешение на назначенную область, которая включает в себяMicrosoft.Chaos/experiments/write
разрешение.При попытке контролировать возможность внедрения ошибок в ресурс, наиболее важной операцией является ограничение
Microsoft.Chaos/experiments/start/action
. Эта операция запускает эксперимент хаоса, который вводит ошибки.Во-вторых, в эксперименте хаоса есть управляемое удостоверение, назначаемое системой, или управляемое удостоверение, назначаемое пользователем, которое выполняет ошибки в ресурсе. Если вы решили использовать управляемое удостоверение, назначаемое системой для эксперимента, удостоверение создается во время создания эксперимента в клиенте Microsoft Entra. Управляемые идентификаторы, назначаемые пользователем, могут использоваться в любом количестве экспериментов.
В эксперименте хаоса можно включить назначение пользовательских ролей в выборе управляемого удостоверения, назначаемого системой или назначаемого пользователем. Включение этой функции позволяет Chaos Studio создавать и назначать пользовательскую роль, содержащую все необходимые возможности действий эксперимента для удостоверения эксперимента (которые еще не существуют в выборе удостоверения). Если эксперимент хаоса использует управляемое удостоверение, назначаемое пользователем, все пользовательские роли, назначенные удостоверению эксперимента, будут сохраняться после удаления эксперимента.
Если вы решили предоставить разрешения эксперимента вручную, необходимо предоставить удостоверению соответствующие разрешения для всех целевых ресурсов. Если удостоверение эксперимента не имеет соответствующего разрешения для ресурса, оно не может выполнить ошибку для этого ресурса.
В-третьих, каждый ресурс должен быть подключен к Chaos Studio в качестве целевого объекта с соответствующими возможностями. Если целевой объект или возможность выполнения сбоя не существует, эксперимент завершается ошибкой, не затрагивая ресурс.
Управляемое удостоверение, назначаемое пользователем
Эксперимент хаоса может использовать управляемое удостоверение , назначаемое пользователем, для получения достаточных разрешений для внедрения ошибок в целевых ресурсах эксперимента. Кроме того, управляемые удостоверения, назначаемые пользователем, могут использоваться в любом количестве экспериментов в Chaos Studio. Чтобы использовать эту функцию, необходимо:
- Сначала создайте управляемое удостоверение, назначаемое пользователем , в службе управляемых удостоверений. Вы можете назначить управляемое удостоверение, назначаемое пользователем, необходимые разрешения для выполнения экспериментов хаоса на этом этапе.
- Во-вторых, при создании эксперимента хаоса выберите управляемое удостоверение, назначаемое пользователем, из подписки. Вы можете включить настраиваемое назначение ролей на этом шаге. Включение этой функции позволит выбрать необходимые разрешения для выбора удостоверений, которые могут потребоваться в зависимости от ошибок, содержащихся в эксперименте.
- В-третьих, после добавления всех ошибок в эксперимент хаоса проверьте, содержит ли конфигурация удостоверения все необходимые действия для успешного выполнения эксперимента хаоса. Если это не так, обратитесь к системному администратору за доступом или изменением выбора ошибок эксперимента.
Проверка подлинности агента
При выполнении сбоев на основе агента необходимо установить агент Chaos Studio на виртуальной машине или масштабируемом наборе виртуальных машин. Агент использует управляемое удостоверение , назначаемое пользователем, для проверки подлинности в Chaos Studio и профиля агента для установления связи с определенным ресурсом виртуальной машины.
При подключении масштабируемого набора виртуальной машины или виртуальной машины для сбоев на основе агента сначала создается целевой объект агента. Целевой объект агента должен иметь ссылку на управляемое удостоверение, назначаемое пользователем, которое используется для проверки подлинности. Целевой объект агента содержит идентификатор профиля агента, который предоставляется в качестве конфигурации при установке агента. Профили агентов уникальны для каждого целевого объекта, а целевые объекты уникальны для каждого ресурса.
Операции и роли Azure Resource Manager
В Студии Chaos Studio выполняются следующие операции:
Операция | Description |
---|---|
Microsoft.Chaos/targets/[Read,Write,Delete] | Получение, создание, обновление или удаление целевого объекта. |
Microsoft.Chaos/targets/capabilities/[Read,Write,Delete] | Получение, создание, обновление или удаление возможности. |
Microsoft.Chaos/locations/targetTypes/Read | Получение всех целевых типов. |
Microsoft.Chaos/locations/targetTypes/capabilityTypes/Read | Получение всех типов возможностей. |
Microsoft.Chaos/experiments/[Read,Write,Delete] | Получение, создание, обновление или удаление эксперимента хаоса. |
Microsoft.Chaos/experiments/start/action | Запустите эксперимент хаоса. |
Microsoft.Chaos/experiments/cancel/action | Остановите эксперимент хаоса. |
Microsoft.Chaos/experiments/executions/Read | Получение состояния выполнения для выполнения эксперимента хаоса. |
Microsoft.Chaos/experiments/executions/getExecutionDetails/action | Получите сведения о выполнении (состояние и ошибки для каждого действия) для выполнения эксперимента хаоса. |
Чтобы назначить эти разрешения детально, можно создать пользовательскую роль.
Безопасность сети
Все взаимодействия пользователей с Chaos Studio происходят через Azure Resource Manager. Если пользователь запускает эксперимент, эксперимент может взаимодействовать с конечными точками, отличными от Resource Manager, в зависимости от сбоя:
- Сбои с прямой службой. Большинство ошибок с прямой службой выполняются с помощью Azure Resource Manager и не требуют каких-либо разрешенных сетевых конечных точек.
- Сбои сетки хаоса akS с прямым доступом к службе: для Служба Azure Kubernetes, использующих Сетку хаоса, требуются доступ к серверу API Kubernetes кластера AKS.
- Узнайте, как ограничить сетевой доступ AKS к набору диапазонов IP-адресов. Диапазоны IP-адресов Chaos Studio можно получить, запросив
ChaosStudio
тег службы с помощью API обнаружения тегов службы или скачиваемых JSON-файлов. - В настоящее время Chaos Studio не может выполнять ошибки в сетке Хаоса, если в кластере AKS отключены локальные учетные записи.
- Узнайте, как ограничить сетевой доступ AKS к набору диапазонов IP-адресов. Диапазоны IP-адресов Chaos Studio можно получить, запросив
- Ошибки на основе агента. Чтобы использовать ошибки на основе агента, агенту требуется доступ к службе агента Chaos Studio. Для успешного подключения виртуальной машины или масштабируемого набора виртуальных машин должен быть исходящий доступ к конечной точке службы агента. Конечная точка
https://acs-prod-<region>.chaosagent.trafficmanager.net
службы агента . Заполнитель необходимо заменить регионом<region>
, в котором развернута виртуальная машина. Примером являетсяhttps://acs-prod-eastus.chaosagent.trafficmanager.net
виртуальная машина в восточной части США. - Частная сеть на основе агента: агент Chaos Studio теперь поддерживает частные сети. См . частные сети для агента Chaos.
Теги служб
Тег службы — это группа префиксов IP-адресов, которым можно назначать правила для входящих и исходящих подключений для групп безопасности сети. Он автоматически обрабатывает обновления группы префиксов IP-адресов без каких-либо действий. Так как теги служб в основном позволяют фильтровать IP-адреса, теги служб недостаточно для защиты трафика.
Теги служб можно использовать для явного разрешения входящего трафика из Chaos Studio без необходимости знать IP-адреса платформы. Тег службы Chaos Studio .ChaosStudio
Ограничение тегов службы заключается в том, что они могут использоваться только с приложениями с общедоступным IP-адресом. Если ресурс имеет только частный IP-адрес, теги служб не могут маршрутизировать трафик к нему.
Случаи использования
Chaos Studio использует теги службы для нескольких вариантов использования.
- Чтобы использовать ошибки на основе агента, агент Chaos Studio, работающий на клиентских виртуальных машинах, должен взаимодействовать с серверной службой Chaos Studio. Тег службы позволяет клиентам разрешать список трафика из виртуальной машины в службу Chaos Studio.
- Чтобы использовать определенные ошибки, требующие обмена данными за пределами
management.azure.com
пространства имен, таких как ошибки Сетки Хаоса для Служба Azure Kubernetes, трафик поступает из службы Chaos Studio в ресурс клиента. Тег службы позволяет клиентам разрешать список трафика из службы Chaos Studio в целевой ресурс. - Клиенты могут использовать другие теги служб в рамках ошибки правил группы безопасности сети, чтобы повлиять на трафик из определенных служб Azure.
Указав ChaosStudio
тег службы в правилах безопасности, трафик можно разрешить или запретить для службы Chaos Studio без необходимости указывать отдельные IP-адреса.
Вопросы безопасности
При оценке и использовании тегов служб важно отметить, что они не предоставляют детализированный контроль над отдельными IP-адресами и не должны полагаться в качестве единственного метода для защиты сети. Они не являются заменой соответствующих мер безопасности сети.
Шифрование данных
Chaos Studio шифрует все данные по умолчанию. Chaos Studio принимает только входные данные для системных свойств, таких как идентификаторы объектов управляемых удостоверений, имена экспериментов и ветвей, а также параметры сбоя. Примером является диапазон сетевых портов для блокировки сбоя сетевого отключения.
Эти свойства не должны использоваться для хранения конфиденциальных данных, таких как сведения об оплате или пароли. Дополнительные сведения о защите данных в Студии Chaos Studio см. в статье о защите данных клиентов Azure.
Защищенное хранилище
Блокировка позволяет вам утвердить или отклонить запрос инженера Майкрософт на доступ к данным эксперимента во время запроса на поддержку.
Блокировка может быть включена для сведений о эксперименте хаоса, а разрешение на доступ к данным предоставляется клиенту на уровне подписки, если блокировка включена.
См. дополнительные сведения о защищенном хранилище для Microsoft Azure.
Следующие шаги
Теперь, когда вы понимаете, как защитить эксперимент хаоса, вы готовы: