Поделиться через


Обзор управления сертификатами в AKS с поддержкой Azure Arc

Область применения: AKS в Azure Stack HCI 22H2, AKS на Windows Server

AKS, включенный Azure Arc, использует сочетание проверки подлинности на основе сертификатов и маркеров для защиты обмена данными между службами (или агентами), ответственными за различные операции на платформе. Проверка подлинности на основе сертификатов использует цифровой сертификат для идентификации сущности (агента, компьютера, пользователя или устройства) перед предоставлением доступа к ресурсу.

Облачный агент

При развертывании AKS с поддержкой Arc AKS устанавливает агенты, используемые для выполнения различных функций в кластере. К этим агентам относятся следующие:

  • Облачный агент: служба, которая отвечает за оркестрацию базовой платформы.
  • Агент узла: служба, которая находится на каждом узле, который выполняет фактическую работу создания, удаления и т. д.
  • Pod системы управления ключами (KMS) — служба, отвечающая за управление ключами.
  • Другие службы: оператор облака, диспетчер сертификатов и т. д.

Служба облачного агента в AKS отвечает за оркестрацию операций создания, чтения, обновления и удаления (CRUD) компонентов инфраструктуры, таких как Виртуальные машины (виртуальные машины), интерфейсы виртуальная сеть (виртуальные машины) и виртуальная сеть (виртуальные сети) в кластере.

Для взаимодействия с облачным агентом клиенты требуют подготовки сертификатов для защиты этого взаимодействия. Каждому клиенту требуется связать с ним удостоверение, определяющее правила контроль доступа на основе ролей (RBAC), связанные с клиентом. Каждое удостоверение состоит из двух сущностей:

  • Маркер, используемый для начальной проверки подлинности, который возвращает сертификат и
  • Сертификат, полученный из приведенного выше процесса входа и используемый для проверки подлинности в любом взаимодействии.

Каждая сущность действительна для определенного периода (значение по умолчанию — 90 дней), в конце которого истекает срок действия. Для дальнейшего доступа к облачному агенту каждый клиент требует продления сертификата и смены маркера.

Типы сертификатов

Существует два типа сертификатов, используемых в AKS с поддержкой Arc:

  • Сертификат ЦС облачного агента: сертификат, используемый для подписи и проверки сертификатов клиента. Этот сертификат действителен 365 дней (один год).
  • Сертификаты клиента: сертификаты, выданные сертификатом ЦС агента облака для клиентов для проверки подлинности в облачном агенте. Эти сертификаты обычно действительны в течение 90 дней.

Корпорация Майкрософт рекомендует обновлять кластеры в течение 60 дней после нового выпуска, не только для обеспечения актуальности внутренних сертификатов и маркеров, но и для обеспечения доступа к новым функциям, исправлениям ошибок и обновлению критически важных исправлений безопасности. Во время этих ежемесячных обновлений процесс обновления сменяет все маркеры, которые нельзя повернуть автоматически во время обычных операций кластера. Срок действия сертификата и маркера сбрасывается до 90 дней по умолчанию с даты обновления кластера.

Безопасное взаимодействие с сертификатами в AKS с поддержкой Arc

Сертификаты используются для создания безопасного взаимодействия между компонентами в кластере. AKS обеспечивает нулевую подготовку, подготовку и управление сертификатами для встроенных компонентов Kubernetes. В этой статье вы узнаете, как подготовить сертификаты и управлять ими в AKS, включенных Arc.

Сертификаты и центры сертификации

AKS создает и использует следующие центры сертификации (ЦС) и сертификаты.

ЦС кластера

  • Сервер API имеет ЦС кластера, который подписывает сертификаты для односторонняя связь с сервера API с kubeletсервера API.
  • Каждый kubelet также создает запрос на подпись сертификата (CSR), подписанный ЦС кластера для связи с kubelet сервером API.
  • Хранилище значений и т. д. имеет сертификат, подписанный ЦС кластера для обмена данными с сервера API и т. д.

ЦС etcd

Хранилище значений и т. д. имеет ЦС и т. д., который подписывает сертификаты для проверки подлинности и авторизации репликации данных между репликами etcd в кластере.

ЦС переднего прокси-сервера

ЦС переднего прокси-сервера обеспечивает связь между сервером API и сервером API расширения.

Подготовка сертификата

Подготовка сертификатов для нее выполняется с помощью начальной kubelet загрузки TLS. Для всех остальных сертификатов используйте ключ и создание сертификата на основе YAML.

  • Сертификаты хранятся в файле /etc/kubernetes/pki.
  • Ключи — RSA 4096, EcdsaCurve: P384

Примечание.

Корневые сертификаты действительны в течение 10 лет. Все остальные, не являющиеся корневыми сертификатами, являются короткими и действительными в течение четырех дней.

Продление сертификатов и управление ими

Сертификаты, не являющиеся корневыми, автоматически обновляются. Все сертификаты уровня управления для Kubernetes, кроме следующих сертификатов, управляются:

  • Сертификат сервера Kubelet
  • Сертификат клиента Kubeconfig

Рекомендуется использовать единый вход Active Directory для проверки подлинности пользователей.

Отзыв сертификатов

Отзыв сертификата должен быть редким, и он должен выполняться во время продления сертификата.

Получив серийный номер сертификата, который вы хотите отозвать, используйте настраиваемый ресурс Kubernetes для определения и сохранения сведений о отзывах. Каждый объект отзыва может состоять из одного или нескольких записей отзыва.

Чтобы выполнить отзыв, используйте одно из следующих действий:

  • Серийный номер
  • Групповой
  • DNS-имя
  • IP-адрес

notBefore Можно указать время, чтобы отозвать только сертификаты, выданные до определенной метки времени. notBefore Если время не указано, все существующие и будущие сертификаты, соответствующие отзыву, будут отменены.

Примечание.

Отзыв kubelet сертификатов сервера в настоящее время недоступен.

Если при выполнении отзыва используется серийный номер, можно использовать Repair-AksHciClusterCerts команду PowerShell, описанную ниже, чтобы получить кластер в рабочее состояние. Если вы используете любой из других полей, перечисленных ранее, обязательно укажите notBefore время.

apiVersion: certificates.microsoft.com/v1 
kind: RenewRevocation 
metadata: 
  name: my-renew-revocation 
  namespace: kube-system 
spec: 
  description: My list of renew revocations 
  revocations: 
  - description: Revoked certificates by serial number 
    kind: serialnumber 
    notBefore: "2020-04-17T17:22:05Z" 
    serialNumber: 77fdf4b1033b387aaace6ce1c18710c2 
  - description: Revoked certificates by group 
    group: system:nodes 
    kind: Group 
  - description: Revoked certificates by DNS 
    dns: kubernetes.default.svc. 
    kind: DNS 
  - description: Revoked certificates by DNS Suffix 
    dns: .cluster.local 
    kind: DNS 
  - description: Revoked certificates by IP 
    ip: 170.63.128.124 
    kind: IP 

Следующие шаги