[ English | Deutsch | русский | English (United Kingdom) ]
Безопасность¶
Безопасность является одним из главных приоритетов в OpenStack-Ansible (OSA), и многие улучшения безопасности для облаков OpenStack доступны в развертываниях по умолчанию. В этом разделе представлен подробный обзор наиболее важных улучшений безопасности.
Примечание
У каждого оператора свои требования к безопасности. В Руководстве по безопасности OpenStack содержатся инструкции и советы о том, как эксплуатировать и использовать облако OpenStack, используя наиболее безопасные методы.
Шифрованное соединение¶
Любое облако OpenStack имеет конфиденциальную информацию, передаваемую между службами, включая учетные данные пользователя, учетные данные службы или информацию о создаваемых ресурсах. Шифрование этого трафика имеет решающее значение в средах, где сеть не может быть доверенной. (Дополнительную информацию о защите сети см. в разделе Обеспечение безопасности сетевого доступа к службам OpenStack.)
Многие из сервисов, развернутых с помощью OpenStack-Ansible, зашифрованы по умолчанию или предлагают шифрование в качестве опции. Плейбуки генерируют самоподписанные сертификаты по умолчанию, но у оператора есть возможность использовать свои существующие сертификаты, ключи и сертификаты CA.
Дополнительную информацию о настройке развертывания зашифрованных соединений см. в разделе: Защита служб с помощью SSL-сертификатов.
Усиление безопасности хоста¶
OpenStack-Ansible предоставляет комплексную роль усиления безопасности, которая применяет более 200 конфигураций безопасности, рекомендованных Руководством по технической реализации безопасности (STIG), предоставленным Агентством оборонных информационных систем (DISA). Эти конфигурации безопасности широко используются и распространяются в открытом доступе правительством США.
Усиление безопасности хоста требуется несколькими программами соответствия и регулирования, такими как Стандарт безопасности данных индустрии платежных карт (PCI DSS) (Требование 2.2).
По умолчанию OpenStack-Ansible автоматически применяет роль ansible-hardening ко всем развертываниям. Роль была тщательно разработана для выполнения следующих действий:
Применять без прерывания работы в рабочем окружении OpenStack
Балансирование безопасности с производительностью и функциональностью OpenStack
Выполняться как можно быстрее
Дополнительную информацию о конфигурациях безопасности см. в документации роль усиления безопасности.
Изоляция¶
По умолчанию OpenStack-Ansible обеспечивает изоляцию по умолчанию между контейнерами, которые запускают службы инфраструктуры OpenStack (плоскость управления (control plane)), а также между виртуальными машинами, которые конечные пользователи создают в рамках развертывания. Эта изоляция имеет решающее значение, поскольку она может предотвратить утечки контейнеров или виртуальных машин или, по крайней мере, уменьшить ущерб, который могут нанести утечки.
Фреймворк Linux Security Modules (LSM) позволяет администраторам устанавливать обязательные элементы управления доступом (MAC) в системе Linux. MAC отличается от дискретных элементов управления доступом (DAC), поскольку ядро применяет строгие политики, которые ни один пользователь не может обойти. Хотя любой пользователь может изменить политику DAC (например, chown bob secret.txt
), только пользователь root
может изменить политику MAC.
OpenStack-Ansible в настоящее время использует AppArmor для предоставления политик MAC на серверах инфраструктуры и гипервизорах. Конфигурация AppArmor устанавливает политики доступа, чтобы предотвратить доступ одного контейнера к данным другого контейнера. Для виртуальных машин libvirtd
использует расширения sVirt, чтобы гарантировать, что одна виртуальная машина не сможет получить доступ к данным или устройствам другой виртуальной машины.
Эти политики применяются и управляются на уровне ядра. Любому процессу, нарушающему политику, отказывается в доступе к ресурсу. Все отказы регистрируются в auditd
и доступны в /var/log/audit/audit.log
.
Наименьшие привилегии¶
Принцип наименьших привилегий используется во всем OpenStack-Ansible для ограничения ущерба, который может быть нанесен, если злоумышленник получит доступ к каким-либо учетным данным.
OpenStack-Ansible настраивает уникальные комбинации имени пользователя и пароля для каждой службы, которая взаимодействует с RabbitMQ и Galera/MariaDB. Каждая служба, которая подключается к RabbitMQ, использует отдельный виртуальный хост для публикации и потребления сообщений. Пользователям MariaDB для каждой службы предоставляется доступ только к тем базам данных, к которым им нужно обращаться с запросами.
Вы также можете запустить OpenStack-Ansible с не-root пользователем, используя метод Ansible privilege escalation. Для получения более подробной информации см. к Запуск от имени пользователя без прав root.
Обеспечение безопасности сетевого доступа к службам OpenStack¶
OpenStack предоставляет множество услуг конечным пользователям, которые позволяют им создавать инстансы, предоставлять хранилище и создавать сети. Каждая из этих услуг предоставляет один или несколько портов услуг и точек доступа API в сеть.
Однако, некоторые службы в облаке OpenStack доступны всем конечным пользователям, в то время как другие доступны только администраторам или операторам защищенной сети.
Службы, к которым могут получить доступ все конечные пользователи
К этим службам относятся вычислительная служба (nova), объектное хранилище (swift), сетевая служба (neutron) и служба образов (glance).
Эти службы должны предоставляться в достаточно ограниченной сети, которая по-прежнему позволяет всем конечным пользователям получать к ним доступ.
Для ограничения доступа к сети необходимо использовать брандмауэр.
Службы, к которым могут получить доступ только администраторы или операторы
К этим службам относятся MariaDB, Memcached, RabbitMQ и точка доступа API администратора для службы идентификации (keystone).
Эти службы должны предоставляться в строго ограниченной сети, доступной только административным пользователям.
Для ограничения доступа к сети необходимо использовать брандмауэр.
Ограничение доступа к этим сетям имеет ряд преимуществ:
Позволяет осуществлять сетевой мониторинг и оповещение
Предотвращает несанкционированное сетевое наблюдение
Снижает вероятность кражи учетных данных
Снижает ущерб от неизвестных или неисправленных уязвимостей служб
OpenStack-Ansible развертывает бекэнды HAProxy для каждой службы и ограничивает доступ к высокочувствительным службам, делая их доступными только в сети управления. Разработчики с внешними балансировщиками нагрузки должны убедиться, что бекэнды настроены безопасно, а брандмауэры предотвращают пересечение трафика между сетями.
Дополнительную информацию о рекомендуемых сетевых политиках для облаков OpenStack см. в разделе Изоляция и политика процесса точки доступа API в Руководстве по безопасности OpenStack.