Руководство. Развертывание соединителя Active Directory в режиме keytab, управляемом системой
В этой статье объясняется, как развернуть соединитель Active Directory в режиме ключей, управляемом системой. Это ключевой компонент для включения проверки подлинности Active Directory на Управляемый экземпляр SQL, включенной Azure Arc.
Соединитель Active Directory в режиме ключей, управляемых системой
В режиме keytab под управлением системы соединитель Active Directory развертывает службу ПРОКСИ-сервера DNS, которая прокси-серверы, поступающие из управляемого экземпляра, в любой из двух вышестоящих служб DNS:
- DNS-серверы Active Directory
- DNS-серверы Kubernetes
Помимо службы прокси-сервера DNS соединитель AD также развертывает службу поддержки безопасности, которая упрощает обмен данными с доменом AD для автоматического создания учетных записей AD, имен субъектов-служб и ключей.
На следующей схеме показаны функции соединителя AD и службы ПРОКСИ-сервера DNS в режиме ключей, управляемом системой:
Необходимые компоненты
Прежде чем продолжить, необходимо:
- Экземпляр контроллера данных, развернутого в поддерживаемой версии Kubernetes
- Домен Active Directory
- Предварительно созданное подразделение (OU) в домене Active Directory
- Учетная запись службы домена Active Directory
Учетная запись службы домена AD должна иметь достаточные разрешения для автоматического создания и удаления учетных записей пользователей в предоставленном подразделении в Active Directory.
Предоставьте следующие разрешения, ограниченные подразделению, в учетную запись службы домена:
- Чтение всех свойств
- Запись всех свойств
- Создание объектов "Пользователь"
- Удаление пользовательских объектов
- Сброс пароля для объектов потомков пользователей
Дополнительные сведения о настройке учетной записи OU и AD см. в статье "Развертывание служб данных с поддержкой Azure Arc в проверке подлинности Active Directory с помощью ключей, управляемых системой" — предварительные требования
Входные данные для развертывания соединителя Active Directory в режиме ключей, управляемом системой
Для развертывания экземпляра соединителя Active Directory требуется несколько входных данных из среды домена Active Directory.
Эти входные данные предоставляются в спецификации yaml для экземпляра соединителя AD.
Перед развертыванием экземпляра соединителя AD необходимо получить следующие метаданные о домене AD:
- Имя домена Active Directory
- Список контроллеров домена (полные доменные имена)
- Список IP-адресов DNS-сервера
Следующие поля ввода предоставляются пользователям в спецификации соединителя Active Directory:
Обязательный
spec.activeDirectory.realm
Имя домена Active Directory в верхнем регистре. Это домен AD, с которым будет связан этот экземпляр соединителя AD.spec.activeDirectory.domainControllers.primaryDomainController.hostname
Полное доменное имя основного контроллера домена (PDC) в домене AD.Если вы не знаете, какой контроллер домена в домене является основным, можно узнать, выполнив эту команду на любом компьютере Windows, присоединенном к домену AD:
netdom query fsmo
spec.activeDirectory.dns.nameserverIpAddresses
Список IP-адресов DNS-сервера Active Directory. Служба DNS-прокси перенаправит DNS-запросы в предоставленное доменное имя на эти серверы.
Необязательно
spec.activeDirectory.serviceAccountProvisioning
Это необязательное поле, определяющее режим развертывания соединителя AD с возможными значениями, какmanual
для ключа, управляемого клиентом, илиautomatic
для ключей, управляемых системой. Если это поле не задано, значение по умолчанию используетсяmanual
. Если задано значениеautomatic
(ключ, управляемый системой), система автоматически создает учетные записи AD и имена субъектов-служб для Управляемый экземпляр SQL, связанных с этим соединителем AD, и создает для них файлы ключей. Если задано значениеmanual
(ключ, управляемый клиентом), система не будет предоставлять автоматическое создание учетной записи AD и создания ключей. Пользователю потребуется предоставить файл keytab.spec.activeDirectory.ouDistinguishedName
Это необязательное поле. Хотя оно становится условно обязательным, если заданоautomatic
значениеserviceAccountProvisioning
. Это поле принимает различающееся имя (DN) подразделения, которое пользователи должны создать в домене Active Directory перед развертыванием соединителя AD. Он используется для хранения системных учетных записей AD для Управляемый экземпляр SQL в домене Active Directory. Пример значения выглядит следующим образом:OU=arcou,DC=contoso,DC=local
spec.activeDirectory.domainServiceAccountSecret
Это необязательное поле. Она становится условно обязательной, если заданоautomatic
значениеserviceAccountProvisioning
. Это поле принимает имя секрета Kubernetes, содержащего имя пользователя и пароль учетной записи доменной службы, созданной до развертывания соединителя AD. Система будет использовать эту учетную запись для создания других учетных записей AD в подразделении и выполнения действий с этими учетными записями AD.spec.activeDirectory.netbiosDomainName
NetBIOS-имя домена Active Directory. Это короткое доменное имя (до Windows 2000) домена Active Directory. Это часто используется для определения учетных записей в домене AD. Например, если учетные записи в домене называются contoso\admin, то contoso — это доменное имя NETBIOS.Это поле необязательно. Если он не указан, значение по умолчанию используется для первой метки
spec.activeDirectory.realm
поля.В большинстве доменных сред это значение по умолчанию, но некоторые доменные среды могут иметь значение, отличное от значения по умолчанию. Это поле необходимо использовать только в том случае, если имя NetBIOS домена не соответствует первой метки его полного имени.
spec.activeDirectory.domainControllers.secondaryDomainControllers[*].hostname
Список полных доменных имен вторичных контроллеров домена в домене AD.Если ваш домен обслуживается несколькими контроллерами домена, рекомендуется предоставить некоторые из их полных доменных имен в этом списке. Это позволяет обеспечить высокий уровень доступности для операций Kerberos.
Это поле является необязательным и не требуется. Система автоматически обнаруживает вторичные контроллеры домена, если значение не указано.
spec.activeDirectory.dns.domainName
DNS-имя домена, для которого следует перенаправить запросы DNS на DNS-серверы Active Directory.Поиск DNS для любого имени, относящегося к этому домену или его потомков, будет перенаправлен в Active Directory.
Это поле необязательно. Если он не указан, по умолчанию используется значение, предоставленное для
spec.activeDirectory.realm
преобразования в нижний регистр.spec.activeDirectory.dns.replicas
Число реплик для службы прокси-сервера DNS. Это поле является необязательным, а значение по умолчанию — 1, если оно не указано.spec.activeDirectory.dns.preferK8sDnsForPtrLookups
Флаг, указывающий, следует ли использовать ответ DNS-сервера Kubernetes по сравнению с ответом DNS-сервера AD для подстановок IP-адресов.Служба прокси-сервера DNS использует это поле, чтобы определить, какая вышестоящей группы DNS-серверов предпочитает поиск IP-адресов.
Это поле необязательно. Если он не указан, по умолчанию
true
он будет перенаправляется на DNS-серверы Kubernetes DNS. Если DNS-серверы Kubernetes не отвечают на запрос, запрос перенаправляется на DNS-серверы AD. Если задано значениеfalse
, эти запросы DNS будут перенаправляться на DNS-серверы AD в первую очередь и после сбоя, откатитесь к Kubernetes.
Развертывание соединителя Active Directory в режиме keytab, управляемом системой
Чтобы развернуть соединитель AD, создайте файл спецификации YAML с именем active-directory-connector.yaml
.
Ниже приведен пример соединителя keytab, управляемого системой, который использует домен CONTOSO.LOCAL
ИМЕНИ AD. Убедитесь, что значения заменяются значениями для домена AD. Содержит adarc-dsa-secret
учетную запись службы домена AD, созданную до развертывания AD.
Примечание.
Убедитесь, что пароль предоставленной учетной записи AD службы доменов здесь не содержит !
специальных символов.
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: adarc-dsa-secret
namespace: <namespace>
data:
password: <your base64 encoded password>
username: <your base64 encoded username>
---
apiVersion: arcdata.microsoft.com/v1beta2
kind: ActiveDirectoryConnector
metadata:
name: adarc
namespace: <namespace>
spec:
activeDirectory:
realm: CONTOSO.LOCAL
serviceAccountProvisioning: automatic
ouDistinguishedName: "OU=arcou,DC=contoso,DC=local"
domainServiceAccountSecret: adarc-dsa-secret
domainControllers:
primaryDomainController:
hostname: dc1.contoso.local
secondaryDomainControllers:
- hostname: dc2.contoso.local
- hostname: dc3.contoso.local
dns:
preferK8sDnsForPtrLookups: false
nameserverIPAddresses:
- <DNS Server 1 IP address>
- <DNS Server 2 IP address>
Следующая команда развертывает экземпляр соединителя AD. В настоящее время поддерживается только собственный подход к развертыванию kube.
kubectl apply –f active-directory-connector.yaml
После отправки развертывания для экземпляра соединителя AD можно проверить состояние развертывания с помощью следующей команды.
kubectl get adc -n <namespace>