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


Доступ к серверу API Службы Azure Kubernetes (AKS)

Бастион Azure
Azure ExpressRoute
Служба Azure Kubernetes (AKS)
Приватный канал Azure
VPN-шлюз Azure

В этом руководстве описаны параметры подключения к серверу API кластера Службы Azure Kubernetes (AKS). В стандартном кластере AKS сервер API предоставляется через Интернет. В частном кластере AKS можно подключиться только с устройства с сетевым доступом к частному кластеру.

Планирование доступа к серверу API — это действие с нулевым днем, а метод доступа зависит от сценария развертывания.

Доступ к серверу API AKS

Для управления кластером AKS вы взаимодействуете с сервером API. Важно ограничить доступ сервера API только к необходимым пользователям. Подробный доступ можно предоставить, интегрируя кластер AKS с идентификатором Microsoft Entra. Администраторы могут использовать управление доступом на основе ролей (RBAC) для управления доступом, размещения пользователей и удостоверений в группах Entra и назначения соответствующих ролей и разрешений. Проверка подлинности Microsoft Entra включена в кластерах AKS через OpenID Connect. Дополнительные сведения см. в следующих ресурсах:

Заметка

Вы можете повысить безопасность кластера AKS, разрешая доступ к серверу API только авторизованным диапазоном IP-адресов. Дополнительные сведения см. в статье Безопасный доступ к серверу API с помощью авторизованных диапазонов IP-адресов вслужбы Azure Kubernetes (AKS).

Защиты от атак DDoS Azure, в сочетании с рекомендациями по проектированию приложений, предлагает расширенные функции устранения рисков от атак DDoS. Вы должны включить защиту от атак DDOS Azure в любой виртуальной сети периметра.

Доступ к кластеру AKS через Интернет

При создании непривимированного кластера, который разрешает полное доменное имя сервера API (FQDN), он по умолчанию назначает общедоступный IP-адрес. Вы можете подключиться к кластеру с помощью портала Azure или оболочки, например Azure CLI, PowerShell или командной строки.

Заметка

Дополнительные сведения об использовании клиента командной строки Kubernetes kubectl для подключения к кластеру через Интернет см. в разделе Подключение к кластеру.

Azure Cloud Shell

Cloud Shell — это оболочка, встроенная на портал Azure. Вы можете управлять ресурсами Azure и подключаться к ним из Cloud Shell, как и в PowerShell или Azure CLI. Дополнительные сведения см. в обзореAzure Cloud Shell.

Доступ к частному кластеру AKS

Существует несколько способов подключения к частному кластеру AKS. Планирование доступа — это действие с нулевым днем на основе потребностей и ограничений вашего сценария. Вы можете подключиться к частному кластеру с помощью следующих компонентов и служб:

Заметка

SSH, протокол удаленного рабочего стола (RDP) и службы удаленных рабочих столов (RDS) — это альтернативные протоколы для удаленного управления прямоугольниками перехода.

Заметка

Весь трафик к серверу API выполняется через TCP-порт 443 с помощью HTTPS. Все связанные группы безопасности сети или другие сетевые брандмауэры должны разрешать трафик из точки происхождения в полное доменное имя сервера API через порт 443 для трафика HTTPS. Конкретные пособия должны быть ограничены только полным доменным именем для API кластера.

Бастион Azure

Бастион Azure — это предложение PaaS, которое обеспечивает безопасные подключения RDP или SSH к виртуальной сети, не требуя общедоступного IP-адреса на виртуальной машине. При подключении к частному кластеру AKS можно использовать Бастион Azure для доступа к ящику перехода в виртуальной сети концентратора, а кластер AKS находится в периферийной сети. Пиринг виртуальной сети используется для подключения концентратора и периферийной сети. Поле перехода может разрешить полное доменное имя сервера API AKS с помощью частной конечной точки Azure, частной зоны DNS и записи DNS A. Эта настройка гарантирует, что полное доменное имя сервера API разрешается только в виртуальной сети, предоставляя надежное подключение к частному кластеру AKS.

Заметка

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

схема архитектуры, показывающая маршрут трафика от пользователя к частному кластеру AKS. Трафик проходит через Бастион Azure и поле прыжка.

Скачайте файл Visio этой архитектуры.

Поток данных

  1. Пользователь пытается подключиться к прыжку с помощью Бастиона Azure и браузера HTML5 с шифрованием TLS.
  2. Пользователь выбирает на портале, следует ли использовать RDP или SSH для подключения к прямоугольнику перехода.
  3. Пользователь входит в поле прыжка через Бастион Azure. Попытка подключиться к частному кластеру AKS выполняется из этого поля перехода. Виртуальная сеть концентратора имеет ссылку на виртуальную сеть с частной зоной DNS AKS, чтобы разрешить полное доменное имя частного кластера.
  4. Виртуальная сеть концентратора и периферийная виртуальная сеть взаимодействуют друг с другом с помощью пиринга виртуальной сети.
  5. Для доступа к частному кластеру AKS трафик входит в магистраль Azure. Частная конечная точка устанавливает частное изолированное подключение к частному кластеру AKS.
  6. Трафик достигает сервера API частного кластера AKS. Затем пользователь может управлять модулями pod, узлами и приложениями.

Заметка

Полное доменное имя частного кластера по-прежнему может быть разрешено из-за пределов виртуальной сети, если вы явно не отключите общедоступное полное доменное имя. Сведения об отключении общедоступного полного доменного имени частного кластера AKS см. в статье Отключение общедоступного полного доменного имени в существующем кластере.

Устранение неполадок подключения

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

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

    Заметка

    Пиринг между виртуальными сетями не нужен, если поле перехода находится в той же виртуальной сети, что и частная конечная точка и частный кластер AKS.

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

    privatelink.<region>.azmk8s.io

    Дополнительные сведения об устранении неполадок с ссылками виртуальной сети см. в следующих ресурсах:

    Заметка

    При создании частного кластера AKS создается частная зона DNS, которая имеет связь виртуальной сети с виртуальной сетью, в которую размещается частный кластер AKS.

Повышение безопасности

Для дальнейшего обеспечения безопасности рабочих нагрузок AKS и полей перехода можно использовать JIT-доступ и привилегированную рабочую станцию доступа (PAW).

Чтобы защитить рабочие нагрузки AKS и ящики перехода, используйте JIT-доступ и рабочую станцию привилегированного доступа (PAW). JIT-доступ, часть Microsoft Defender для облака, сокращает ландшафт угроз, блокируя входящий трафик в поле прыжка и разрешая доступ только в течение определенного времени при необходимости. После истечения срока действия доступ автоматически отменяется. Дополнительные сведения о доступе JIT см. в статье Общие сведения о доступе к виртуальной машине JIT(JIT).

PaW — это защищенные устройства, обеспечивающие высокую безопасность для операторов, блокируя распространенные векторы атак, такие как электронная почта и веб-просмотр. Сложно скомпрометировать PAW, так как они блокируют множество распространенных векторов атак, таких как электронная почта и веб-просмотр. Дополнительные сведения о PAW см. в разделе Защита устройств в рамкахпривилегированного доступа.

Виртуальная частная сеть (VPN)

VPN-подключение обеспечивает гибридное подключение из локальной среды к Azure, обеспечивая доступ к частному кластеру AKS. Сервер API частного кластера недоступен за пределами виртуальных сетей. С помощью VPN вы можете подключиться к виртуальной сети в Azure через зашифрованный туннель, а затем получить доступ к серверу API частного кластера.

схема архитектуры, показывающая поток трафика от пользователя к частному кластеру AKS. Маршрут включает VPN-шлюз, туннель IPsec и поле перехода.

Скачайте файл Visio этой архитектуры.

Поток данных

  1. Пользователь инициирует трафик RDP или SSH в поле перехода с локальной рабочей станции.
  2. Трафик поля перехода оставляет пограничные маршрутизаторы клиента и VPN-устройство. Трафик использует зашифрованный туннель IPsec для обхода интернета.
  3. Трафик прыжка достигает шлюза виртуальной сети в Azure, который является точкой входящего трафика и исходящего трафика инфраструктуры виртуальной сети Azure.
  4. После перемещения трафика через шлюз виртуальной сети он достигает поля перехода. Попытка подключиться к частному кластеру AKS выполняется из поля перехода. Виртуальная сеть концентратора имеет ссылку на виртуальную сеть с частной зоной DNS AKS, чтобы разрешить полное доменное имя частного кластера.
  5. Виртуальная сеть концентратора и периферийная виртуальная сеть взаимодействуют друг с другом с помощью пиринга виртуальной сети.
  6. Для доступа к частному кластеру AKS трафик входит в магистраль Azure. Частная конечная точка устанавливает частное изолированное подключение к частному кластеру AKS.
  7. Трафик достигает сервера API частного кластера AKS. Затем пользователь может управлять модулями pod, узлами и приложениями.

ExpressRoute

ExpressRoute обеспечивает подключение к частному кластеру AKS из локальной среды. ExpressRoute использует протокол BGP для обмена маршрутами между локальной сетью и Azure, создавая путь между ресурсами IaaS и локальными рабочими станциями. ExpressRoute предлагает выделенное, изолированное подключение с согласованной пропускной способностью и задержкой, что делает его идеальным для корпоративных сред.

схема архитектуры, показывающая маршрут трафика от пользователя к частному кластеру AKS. Маршрут включает ExpressRoute и поле перехода.

Скачайте файл Visio этой архитектуры.

Поток данных

  1. Пользователь инициирует трафик RDP или SSH в поле перехода с локальной рабочей станции.
  2. Трафик коробки прыжка оставляет пограничные маршрутизаторы клиента и перемещается по оптоволоконным подключениям к месту встречи со мной, где находится канал ExpressRoute. Трафик достигает устройств Microsoft Enterprise Edge (MSEE). Затем он входит в структуру Azure.
  3. Трафик прыжка достигает шлюза ExpressRoute, который является точкой входящего трафика и исходящего трафика инфраструктуры виртуальной сети Azure.
  4. Трафик достигает поля прыжка. Попытка подключиться к частному кластеру AKS выполняется из поля перехода. Виртуальная сеть концентратора имеет ссылку на виртуальную сеть с частной зоной DNS AKS, чтобы разрешить полное доменное имя частного кластера.
  5. Виртуальная сеть концентратора и периферийная виртуальная сеть взаимодействуют друг с другом с помощью пиринга виртуальной сети.
  6. Для доступа к частному кластеру AKS трафик входит в магистраль Azure. Частная конечная точка устанавливает частное изолированное подключение к частному кластеру AKS.
  7. Трафик достигает сервера API частного кластера AKS. Затем пользователь может управлять модулями pod, узлами и приложениями.

Заметка

ExpressRoute требует, чтобы сторонний поставщик подключений предоставлял пиринговое подключение к маршрутизаторам MSEE. Трафик ExpressRoute не шифруется. Дополнительные сведения см. в статье Что такое Azure ExpressRoute?.

Вызов команды aks

С помощью частного кластера AKS можно подключиться с виртуальной машины с доступом к серверу API. С помощью aks command invokeAzure CLI можно выполнять такие команды, как kubectl или helm удаленно с помощью API Azure. При этом создается временный модуль pod в кластере, который длится только во время команды. aks command invoke служит альтернативным методом подключения, если у вас нет VPN, ExpressRoute или пиринговой виртуальной сети. Убедитесь, что в пуле кластеров и узлов достаточно ресурсов, чтобы создать временный модуль pod.

Дополнительные сведения см. в статье Вызов команды для доступа к частному кластеру Службы Azure Kubernetes (AKS).

Подключение Cloud Shell к подсети

При развертывании Cloud Shell в управляемой виртуальной сети можно взаимодействовать с ресурсами внутри этой сети. Развертывание Cloud Shell в подсети, которая позволяет подключаться к серверу API частного кластера AKS. Это позволяет подключаться к частному кластеру. Дополнительные сведения см. в статье Deploy Cloud Shell ввиртуальной сети Azure.

Использование SSH и Visual Studio Code для тестирования

SSH безопасно управляет и обращается к файлам на удаленном узле с помощью пар открытых ключей. На локальном компьютере можно использовать SSH с расширением SSH Visual Studio Code Remote — SSH для подключения к прямоугольнику перехода в виртуальной сети. Зашифрованный туннель SSH завершается на общедоступном IP-адресе окна перехода, что упрощает изменение файлов манифеста Kubernetes.

Сведения о том, как подключиться к коробке перехода через SSH, см. в статье Удаленная разработка по протоколу SSH.

Если вы не можете подключиться к виртуальной машине через SSH для управления частным кластером:

  • Проверьте правило группы безопасности сети для входящего трафика для подсети виртуальной машины. Правило группы безопасности сети по умолчанию блокирует весь входящий трафик за пределами Azure, поэтому создайте новое правило, разрешающее трафик SSH из общедоступного IP-адреса локального компьютера.
  • Проверьте расположение сертификата. Проверьте правильное размещение сертификатов. Закрытый ключ должен находиться в каталоге C:\Users\User\.ssh\id_rsa на локальном компьютере. Открытый ключ должен быть помещен в файл ~/.ssh/id_rsa.pub на виртуальной машине в Azure.

Заметка

Рекомендуется:

  • Избегайте использования общедоступного IP-адреса для подключения к ресурсам в рабочих средах. Общедоступные IP-адреса должны использоваться только в разработке или тестировании. В таких случаях создайте правило группы безопасности сети для входящего трафика, чтобы разрешить трафик с общедоступного IP-адреса локального компьютера. Дополнительные сведения о правилах группы безопасности сети см. в разделе Создание, изменение или удаление группы безопасности сети.

  • Воздерживайтесь от использования SSH для подключения непосредственно к узлам ИЛИ контейнерам AKS. Вместо этого используйте выделенное внешнее решение для управления. Это особенно важно при использовании aks command invoke, которое создает временный pod в кластере для доступа к прокси-данным.

Заключение

  • Вы можете получить доступ к серверу API кластера AKS через Интернет, если включено общедоступное полное доменное имя.
  • Cloud Shell — это встроенная оболочка командной строки на портале Azure, которую можно использовать для подключения к кластеру AKS.
  • Для более безопасного доступа используйте Бастион Azure и частную конечную точку.
  • Виртуальные сети и ExpressRoute обеспечивают гибридное подключение к частному кластеру AKS.
  • Если нет внешнего решения для подключения, вы можете использовать aks command invoke удаленно.
  • Cloud Shell также можно развернуть непосредственно в виртуальной сети, управляемой для доступа к частному кластеру.
  • Использование Visual Studio Code с SSH в поле перехода шифрует подключение и упрощает изменение файлов манифеста, хотя он предоставляет общедоступный IP-адрес в вашей среде.

Участников

Эта статья поддерживается корпорацией Майкрософт. Первоначально он был написан следующими участниками.

Основные авторы:

Другие участники:

Чтобы просмотреть профили LinkedIn, войдите в LinkedIn.

Дальнейшие действия