Что такое Active Directory (AD) и как она интегрируется в DevOps-практики и инфраструктуру Linux?

«Что такое Active Directory (AD) и как она интегрируется в DevOps-практики и инфраструктуру Linux?» — вопрос из категории Безопасность, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Active Directory (AD) — это реализация Microsoft службы каталогов на базе LDAP и Kerberos, используемая для централизованного управления идентификацией, аутентификацией и авторизацией (IAM) пользователей, компьютеров и других ресурсов в доменной сети Windows. В современных гетерогенных средах (Windows + Linux) и DevOps-практиках AD выступает как единый источник истины (source of truth) для учётных записей.

Интеграция AD в Linux-инфраструктуру и DevOps:

  1. Аутентификация Linux-серверов: Серверы под управлением Linux (например, с Ubuntu/RHEL) присоединяются к домену AD с помощью SSSD (System Security Services Daemon) или realmd. Это позволяет инженерам входить на серверы с помощью своих корпоративных учетных записей AD.

    # Пример присоединения RHEL/CentOS к домену с помощью realmd
    sudo yum install realmd sssd oddjob oddjob-mkhomedir adcli samba-common-tools
    sudo realm discover example.com
    sudo realm join --user=admin_user example.com
  2. Авторизация и контроль доступа: Группы безопасности AD (Security Groups) используются для управления доступом к ресурсам (например, через sudo на Linux или политики доступа в Kubernetes).

    # /etc/sudoers.d/ad_admins - Предоставление прав sudo группе AD "Linux-Admins"
    %EXAMPLELinux-Admins ALL=(ALL) NOPASSWD:ALL
  3. Интеграция с инструментами DevOps:

    • Kubernetes: Использование Dex или Active Directory Federation Services (AD FS) с OIDC для аутентификации пользователей в кластере. Плагин kubelogin для kubectl.
    • CI/CD (Jenkins, GitLab): Настройка аутентификации через LDAP/AD plugin. Группы AD определяют права на запуск пайплайнов.
    • Мониторинг (Grafana, Prometheus Alertmanager): Настройка Single Sign-On (SSO) через OAuth2 Proxy или SAML с AD в качестве identity provider.
    • Базы данных (PostgreSQL): Использование pam или ldap аутентификации для пользователей AD.
  4. Инфраструктура как код (IaC): Управление объектами AD (пользователи, группы, OU) через код с использованием PowerShell DSC, Terraform с провайдером ActiveDirectory (через WinRM) или Ansible модулей win_domain, win_domain_membership.

    # Ansible playbook для присоединения Windows-хоста к домену
    - name: Join Windows server to AD domain
      win_domain_membership:
        dns_domain_name: "example.com"
        domain_admin_user: "join_user@example.com"
        domain_admin_password: "{{ vault_domain_join_password }}"
        state: domain

Безопасность и аудит: Интеграция с AD обеспечивает централизованный аудит событий входа, применение политик паролей (GPO) и мгновенное отзыв доступа при увольнении сотрудника для всей инфраструктуры, что является критичным требованием в DevOps для compliance.