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


Сетевые изолированные кластеры службы Azure Kubernetes (AKS)

Организации обычно имеют строгие требования к безопасности и соответствию требованиям для регулирования исходящего трафика (исходящего) сетевого трафика из кластера для устранения рисков кражи данных. По умолчанию стандартные кластеры SKU Службы Azure Kubernetes (AKS) имеют неограниченный исходящий доступ к Интернету. Такой уровень сетевого доступа позволяет работающим узлам и службам обращаться к внешним ресурсам по мере необходимости. Если вы хотите ограничить исходящий трафик, нужно сохранить доступ для ограниченного числа портов и адресов, чтобы обеспечить работоспособность для задач обслуживания кластера. Концептуальный документ о правилах исходящих сетевых соединений и полностью квалифицированных доменных имен (FQDN) для кластеров AKS предоставляет список необходимых конечных точек для кластера AKS и его необязательных дополнений и функций.

Одним из распространенных решений по ограничению исходящего трафика из кластера является использование устройства брандмауэра для ограничения трафика на основе правил брандмауэра. Брандмауэр применим, если приложению требуется исходящий доступ, но при необходимости проверки и защиты исходящих запросов. Настройка брандмауэра вручную с необходимыми правилами исходящего трафика и FQDN является трудоемким процессом, особенно если ваша единственная потребность — создать изолированный кластер AKS без исходящих зависимостей для начальной загрузки кластера.

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

Как работает изолированный сетевой кластер

На следующей схеме показана сетевая связь между зависимостями для изолированного сетевого кластера.

Схема трафика изолированного кластера AKS сети.

Кластеры AKS загружают артефакты, необходимые для кластера, его функций или дополнительных компонентов из реестра артефактов Microsoft (MAR). Загрузка образа позволяет AKS предоставлять более новые версии компонентов кластера, а также устранять критические уязвимости безопасности. Изолированный сетевой кластер пытается извлечь эти образы и двоичные файлы из частного экземпляра Реестра контейнеров Azure (ACR), подключенного к кластеру, вместо извлечения из MAR. Если образы отсутствуют, частный ACR загружает их из MAR и предоставляет доступ к ним через свою частную конечную точку, устраняя необходимость включения исходящего трафика из кластера к общедоступной конечной точке MAR.

Для частного ACR, связанного с изолированными сетями, поддерживаются следующие два варианта:

  • Управляемый AKS ACR — AKS создает, управляет и согласовывает ресурс ACR в этом варианте. Ничего не нужно делать.

    Примечание.

    Ресурс ACR, который управляется AKS, создается в вашей подписке. Если вы удалите кластер с управляемым AKS ACR для источника артефактов начальной загрузки. Связанные ресурсы, такие как управляемые AKS-ACR, приватная ссылка и частная конечная точка, также автоматически удаляются. Если вы измените исходящий тип в кластере на любой тип, кроме none или block, с сохранением --bootstrap-artifact-source как Cache. Затем связанные ресурсы не удаляются.

  • Использование собственного ACR (BYO) — опция BYO ACR требует использования существующего ACR с приватной ссылкой между ресурсом ACR и кластером AKS. См. статью "Частное подключение к реестру контейнеров Azure через Azure Private Link", чтобы понять, как настроить частную конечную точку для вашего реестра. Кроме того, необходимо назначить разрешения и управлять правилами кэша, приватным каналом и частной конечной точкой, используемой в кластере.

    Примечание.

    При удалении кластера AKS или после отключения функции. ACR BYO, частная ссылка и частная конечная точка не удаляются автоматически. Если вы добавите настраиваемые образы и правила кэша в ACR BYO, они сохраняются после сверки кластера.

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

  • Кластер на основе приватной связи — уровень управления или сервер API находится в группе ресурсов Azure, находящейся под управлением AKS, а пул узлов — в вашей группе ресурсов. Сервер и пул узлов могут взаимодействовать друг с другом через службу Azure Private Link в виртуальной сети сервера API и частный конечный узел, предоставляемый в подсети вашего кластера AKS.
  • Настроенный кластер интеграции виртуальных сетей API-сервера — кластер, настроенный с помощью интеграции виртуальной сети API, проектирует конечную точку сервера API непосредственно в делегированную подсеть в виртуальной сети, в которой развертывается AKS. Интеграция виртуальной сети СЕРВЕРА API обеспечивает сетевое взаимодействие между сервером API и узлами кластера, не требуя приватного канала или туннеля.

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

  • Исходящий тип none — Если none задан. AKS не настраивает пути исходящего трафика автоматически, а маршрут по умолчанию не требуется. Она поддерживается как в сценариях виртуальной сети byO, так и в сценариях управляемой виртуальной сети. Для создания собственного сценария виртуальной сети необходимо установить явные пути исходящего трафика при необходимости.
  • Задан тип block исходящего трафика (предварительная версия) -Ifblock. AKS настраивает правила сети, чтобы активно блокировать весь исходящий трафик из кластера. Этот параметр полезен для высокозащищенных сред, где необходимо ограничить исходящее подключение. Она поддерживается в сценарии управляемой виртуальной сети. Кроме того, можно добиться аналогичного эффекта, блокируя весь исходящий трафик, добавив правила группы безопасности сети (NSG) в none сценарии с собственной виртуальной сетью.

Примечание.

Тип none для исходящего трафика доступен для всех. Тип исходящего трафика block находится в предварительной версии.

Внимание

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

Ограничения

  • Unmanaged канал не поддерживается.
  • Пулы узлов Windows пока не поддерживаются.
  • Сеть kubenet не поддерживается.

Осторожность

Если вы используете общедоступный IP-адрес узла в изолированных кластерах AKS сети, он разрешает исходящий трафик с исходящим типом none.

Использование функций, надстроек и расширений, требующих исходящего трафика

Для кластеров, изолированных от сети с BYO ACR:

Часто задаваемые вопросы

Какова разница между изолированным сетевым кластером и Брандмауэр Azure?

Для изолированного сетевого кластера не требуется исходящий трафик за пределами виртуальной сети в процессе загрузки кластера. У изолированного сетевого кластера исходящий тип может быть либо none, либо block. Если для типа исходящего трафика задано noneзначение, AKS не настраивает исходящие подключения для кластера, позволяя пользователю настраивать их самостоятельно. Если для типа исходящего трафика задано значение block, все исходящие подключения блокируются.

Брандмауэр является стандартным способом создать барьер между доверенной сетью и недоверенной сетью, такой как Интернет. Например, брандмауэр Azure может ограничивать исходящий HTTP и HTTPS трафик, в зависимости от места назначения. Он обеспечивает точное управление исходящим трафиком, но в то же время позволяет предоставлять доступ к полным доменным именам, охватывающим исходящие зависимости кластера AKS. Это то, что ГБС не могут сделать. Например, можно задать исходящий тип соединения кластера на userDefinedRouting, чтобы принудительно направлять исходящий трафик через брандмауэр, а затем настроить ограничения по полному доменному имени для исходящего трафика. Существует множество случаев, когда вы по-прежнему хотите брандмауэр. Например, у вас есть исходящий трафик в любом случае из приложения или вы хотите контролировать, проверять и защищать трафик кластера как исходящий, так и входящий трафик.

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

Нужно ли настроить все конечные точки списка разрешений для работы изолированного сетевого кластера?

Этапы создания кластера и начальной загрузки не требуют исходящего трафика из изолированного сетевого кластера. Образы, необходимые для компонентов и надстроек AKS, извлекаются из частного ACR, подключенного к кластеру, вместо извлечения из Реестра Артефактов Майкрософт (MAR) по общедоступным конечным точкам.

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

Можно ли вручную обновить пакеты для обновления образа пула узлов?

Ручное обновление пакетов через удаленные репозитории пакетов не рекомендуется. Вместо этого можно вручную обновить или автоматически обновитьобразы ОС узла. Только NodeImage и None каналы обновления в настоящее время поддерживаются для изолированных сетевых кластеров.

Что если я изменю выходящий тип на другой, кроме none или block, это по-прежнему будет изолированный сетевой кластер?

Единственными поддерживаемыми типами исходящего трафика для изолированного сетевого кластера являются исходящий тип none и block. Если вы используете любой другой тип исходящих соединений, кластер может по-прежнему получать артефакты из ассоциированного частного ACR, однако это может генерировать исходящий трафик.

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