Академический Документы
Профессиональный Документы
Культура Документы
(Keystone)
Джон Ротон 05.03.2015
специалист по стратегиям в области облачных
вычислений
независимый специалист
Keystone — это кодовое имя проекта (сервиса) OpenStack Identity, который при посредстве
API-интерфейса OpenStack предоставляет такую функциональность, как токены, политики
и каталоги. Как и остальные проекты платформы OpenStack, компонент Keystone
представляет собой уровень абстрагирования. Он не осуществляет фактической реализации
функций управления пользователями; вместо этого он предоставляет подключаемые
интерфейсы, что позволяет организации задействовать имеющиеся у нее сервисы
аутентификации или выбрать любую из множества различных систем управления
идентификацией, доступных на сегодняшнем рынке.
Архитектура
С архитектурной точки зрения сервис Keystone достаточно прост. Он обрабатывает все
API-запросы и предоставляет такие сервисы, как Identity, Token, Catalog, Policy. Keystone
• Key Value Store. Интерфейс с поддержкой поиска значения по ключу, например, для
резидентного словаря.
• Memcached. Распределенная система кэширования в оперативной памяти.
• Structured Query Language (SQL). Обеспечивает персистентное хранение данных
с помощью SQLAlchemy (SQL-инструментарий на языке Python и Object Relational
Mapper).
• Pluggable Authentication Module (PAM). Служит для аутентификации через PAM-
сервис локальной системы.
• Lightweight Directory Access Protocol (LDAP). Обеспечивает подключение при
посредстве LDAP к внутреннему каталогу, например, к Active Directory®, с целью
аутентификации пользователей и получения информации о роли.
Установка и настройка
Инструкции по установке в конкретной ситуации существенно зависят от дистрибутивов и
от релиза OpenStack. Как правило, инструкции предоставляются в составе дистрибутива.
Однако вне зависимости от дистрибутива/релиза вам придется выполнять одни и те же
основные задачи, которые рассматриваются в этом разделе.
Системные требования
Платформа OpenStack ориентирована на 64-разрядную x86-архитектуру; другими словами,
она рассчитана на применение массовых аппаратных средств, поэтому минимальные
системные требования весьма скромны. Весь пакет проектов OpenStack способен
исполняться на одной системе с оперативной памятью объемом 8 ГБ. В случае более
крупных развертываний сервис Keystone можно установить вместе с другими проектами,
например, на Controller-узле вместе с Nova. Однако для реализаций с высокой степенью
масштабируемости рекомендуется задействовать для управления идентификацией
выделенную систему. Хорошей отправной точкой для простой системы являются
четырехъядерный процессор, 32 ГБ оперативной памяти и 2 гигабитных сетевых адаптера.
Установка
Инструкции по установке зависят от дистрибутива, в частности, от выбранной вами утилиты
управления пакетами. Во многих случаях при установке необходимо объявить репозитарий.
Так, например, в случае утилиты Zypper необходимо объявлять libzypp с параметром zypper
ar:
# zypper ar -f http://download.opensuse.org/repositories/Cloud:/OpenStack:/Grizzly/SLE_11_SP3/
Cloud:OpenStack:Grizzly.repo
Конфигурация
Основная конфигурация Keystone описывается в файле keystone.conf, который находится в
каталоге /etc/keystone/. В этом файле указаны все аутентификационные плагины (указаны в
разделе [auth]):
Сертификаты
Многие организации переходят на технологию Public Key Infrastructure по причине ее
хорошей масштабируемости и ее соответствия стандартам. Одно из преимуществ этой
технологии заключается в том, что она позволяет делегировать доверие, что жизненно
важно для федерированной идентификации. Однако при этом необходимо демонстрировать
аутентичность при посредстве защищенного от прослушивания канала к признанному и
пользующемуся доверием центру сертификации (certification authority).
На практике это означает, что открытый ключ должен быть подписан с помощью
сертификата X.509, сертифицированного каким-либо центром сертификации. В случае
чисто внутренней реализации можно использовать сервис keystone-manage для генерации
самоподписанного сертификата, однако в федерированной среде может требоваться
сертификат от внешнего центра сертификации.
Администрирование
Мы начнем с первой части. Она проще в освоении, поскольку отображается на
информационной панели Horizon. Администратор может создавать проекты и
пользователей. Этим пользователям могут быть назначены роли; кроме того, с целью
упрощения управления эти пользователи могут быть агрегированы в группы.
1. Как правило, первый шаг состоит в создании проекта. Войдите в OpenStack Dashboard
как администратор. В навигационной панели под заголовком Identify Panel нажмите
Projects > Create Project.
2. На этом этапе достаточно ввести только имя проекта (Name) и его описание
(Description). Кроме того, вам потребуется хотя бы один пользователь. Под заголовком
Identity Panel нажмите Users > Create User.
3. Отредактируйте свой проект. Под заголовком Identity Panel нажмите Projects > Edit
Project.
5. Кроме того, на вкладке Quota можно указать предельные значения для своего проекта.
Это особенно полезно в среде с несколькими арендаторами, поскольку позволяет
гарантировать, что ни один из проектов не займет слишком много ресурсов и не лишит
тем самым ресурсов другие важные сервисы, исполняющиеся в той же инфраструктуре.
Аутентификация
Вторая часть сценария — аутентификация сервисов в процессе исполнения. В качестве
примера рассмотрим приложение, которое использует компонент OpenStack Swift для
хранения объектов. Вне зависимости от того, исполняется ли оно как часть экземпляра
OpenStack Compute или нет, оно должно быть в состоянии осуществлять аутентификацию.
Другими словами, этому приложению нужен доступ к действительным мандатам.
Заключение
Веб-интерфейс Horizon существенно упрощает управление пользователями. Он скрывает
внутренние процессы, а также всю необходимую интеграцию с другими репозитариями
пользователей, такими как Active Directory или LDAP-каталог.
Об авторе
Джон Ротон