Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как использовать диапазоны IP-адресов, авторизованных на сервере API, чтобы ограничить доступ к конечным точкам плоскости управления для рабочих нагрузок в Azure Kubernetes Service (AKS).
Предпосылки
- Azure CLI версии 2.0.76 или более поздней. Чтобы проверить версию, выполните команду
az --version. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0. - Последняя версия Azure PowerShell. Инструкции по установке см. в разделе Install Azure PowerShell.
- Сведения о том, какие IP-адреса следует включать при интеграции кластера AKS с Azure DevOps, см. в статье "Разрешенные IP-адреса и URL-адреса домена".
Подсказка
На портале Azure используйте Azure Copilot для изменения IP-адресов, которые могут получить доступ к кластеру. Дополнительные сведения см. в статье "Работа с кластерами AKS эффективно с помощью Azure Copilot".
Ограничения и рекомендации
- AKS поддерживает эту функцию только с подсистемой балансировки нагрузки SKU уровня "Стандартный". AKS больше не поддерживает подсистему балансировки нагрузки SKU уровня "Базовый". Если у вас есть существующий кластер, использующий номер SKU "Базовый", перейдите к номеру SKU уровня "Стандартный". Миграция требует простоя и имеет дополнительные предварительные требования.
- Эту функцию нельзя использовать с частными кластерами.
- Для кластеров, использующих общедоступные IP-адреса узла, каждый пул узлов с общедоступными IP-адресами должен использовать префиксы общедоступных IP-адресов. Добавьте эти префиксы в качестве авторизованных диапазонов.
- Можно указать до 200 разрешенных диапазонов IP-адресов. Чтобы выйти за рамки этого ограничения, рассмотрите возможность использования API Server VNet Integration, который поддерживает до 2000 диапазонов IP-адресов.
Общие сведения о диапазонах разрешенных IP-адресов сервера API
Сервер API Kubernetes предоставляет базовые API Kubernetes. Такие средства управления, как kubectl и панель мониторинга Kubernetes, взаимодействуют с кластером с помощью этого сервера API. AKS предоставляет плоскость управления одним клиентом с выделенным сервером API и назначает серверу общедоступный IP-адрес по умолчанию. Вы можете управлять доступом с помощью управления доступом на основе ролей Kubernetes (Kubernetes RBAC) или Azure RBAC.
Чтобы защитить сервер API уровня управления AKS в противном случае, включите авторизованные диапазоны IP-адресов. Авторизованные диапазоны IP-адресов позволяют взаимодействовать только с определенными диапазонами IP-адресов с сервером API. Сервер API блокирует запросы от IP-адресов, которые не включены в авторизованные диапазоны. Для распространения правил может потребоваться до двух минут. Подождите до двух минут, прежде чем тестировать подключение.
Рекомендуемые разрешенные диапазоны IP-адресов
Рекомендуется включить следующие диапазоны IP-адресов в конфигурацию авторизованных диапазонов IP-адресов сервера API:
- IP-адрес исходящего кластера (брандмауэр, шлюз NAT или другой адрес в зависимости от типа исходящего трафика).
- Диапазоны IP-адресов для сетей, используемых для администрирования кластера.
Настройка кластера AKS с включенными разрешёнными IP-диапазонами сервера API
Примечание.
При включении авторизованных диапазонов IP-адресов сервера API во время создания кластера AKS добавляет общедоступный IP-адрес сервера API и исходящий общедоступный IP-адрес подсистемы балансировки нагрузки SKU уровня "Стандартный " в список авторизованных диапазонов IP-адресов по умолчанию в дополнение к указанным диапазонам.
Особый случай. 0.0.0.0/32Заполнитель 0.0.0.0/32 сообщает AKS разрешить доступ к серверу API только исходящим общедоступным IP-адресом подсистемы балансировки нагрузки SKU уровня "Стандартный". Заполнитель имеет следующее поведение:
| Behavior | Description |
|---|---|
| Дополнительные диапазоны IP-адресов клиента | Отключает разрешение дополнительных диапазонов IP-адресов клиента, установленное по умолчанию. |
| Доступ к серверу API | Ограничивает доступ сервера API только к собственному исходящему IP-адресу кластера. |
| Самоконтроль | Позволяет кластеру самостоятельно управлять при блокировке внешнего доступа. |
Чтобы создать кластер с включенными диапазонами разрешенных IP-адресов сервера API, укажите список авторизованных диапазонов общедоступных IP-адресов. Для диапазона CIDR используйте сетевой адрес, который является первым IP-адресом в диапазоне. Например, чтобы разрешить диапазон 137.117.106.88137.117.106.95, укажите 137.117.106.88/29.
az aks create Используйте команду с --api-server-authorized-ip-ranges параметром для создания кластера AKS с включенными диапазонами IP-адресов сервера API. В следующем примере создается кластер с именем myAKSCluster в группе ресурсов с именем myResourceGroup, и разрешается диапазону IP-адресов 73.140.245.0/24 доступ к серверу API.
az aks create --resource-group myResourceGroup --name myAKSCluster --vm-set-type VirtualMachineScaleSets --load-balancer-sku standard --api-server-authorized-ip-ranges 73.140.245.0/24 --generate-ssh-keys
Используйте командлет с -ApiServerAccessAuthorizedIpRange параметром New-AzAksCluster для создания кластера AKS с включенными диапазонами IP-адресов сервера API. В следующем примере создается кластер с именем myAKSCluster в группе ресурсов с именем myResourceGroup, и разрешается диапазону IP-адресов 73.140.245.0/24 доступ к серверу API.
New-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -NodeVmSetType VirtualMachineScaleSets -LoadBalancerSku Standard -ApiServerAccessAuthorizedIpRange '73.140.245.0/24' -GenerateSshKey
- На домашней странице портала Azure выберите "Создать ресурс", "Контейнеры", "Служба Azure Kubernetes (AKS)".
- Настройте параметры кластера по мере необходимости.
- В разделе "Сеть" в разделе "Общедоступный доступ" выберите "Задать авторизованные диапазоны IP-адресов".
- Для указания диапазонов IP-адресов введите диапазоны IP-адресов, которые требуется авторизовать для доступа к серверу API.
- Настройте остальные параметры кластера по мере необходимости.
- Когда вы будете готовы, нажмите кнопку "Рецензирование" и "Создать">, чтобы создать кластер.
Указание исходящих IP-адресов для подсистемы балансировки нагрузки SKU уровня "Стандартный" с помощью Azure CLI
При создании кластера с разрешенными диапазонами IP-адресов сервера API можно также указать исходящие IP-адреса или префиксы с помощью --load-balancer-outbound-ips параметров или --load-balancer-outbound-ip-prefixes параметров. AKS позволяет использовать эти IP-адреса в дополнение к IP-адресам в параметре --api-server-authorized-ip-ranges .
--load-balancer-outbound-ips Используйте параметр, чтобы создать кластер AKS с включенными диапазонами РАЗРЕШЕНных IP-адресов сервера API и указать исходящие IP-адреса для подсистемы балансировки нагрузки SKU уровня "Стандартный". В следующем примере создается кластер с именем myAKSCluster в группе ресурсов с именем myResourceGroup, можно 73.140.245.0/24 получить доступ к серверу API и указать два исходящих IP-адреса для подсистемы балансировки нагрузки SKU уровня "Стандартный". Замените <public-ip-id-1> и <public-ip-id-2> на идентификаторы ресурсов общедоступных IP-адресов.
az aks create --resource-group myResourceGroup --name myAKSCluster --vm-set-type VirtualMachineScaleSets --load-balancer-sku standard --api-server-authorized-ip-ranges 73.140.245.0/24 --load-balancer-outbound-ips <public-ip-id-1>,<public-ip-id-2> --generate-ssh-keys
Разрешите только исходящий общедоступный IP-адрес стандартного балансировщика нагрузки
--api-server-authorized-ip-ranges Используйте параметр для создания кластера AKS, который позволяет получить доступ к серверу API только исходящий общедоступный IP-адрес подсистемы балансировки нагрузки SKU уровня "Стандартный". В следующем примере создается кластер с именем myAKSCluster в группе ресурсов с именем myResourceGroup:
az aks create --resource-group myResourceGroup --name myAKSCluster --vm-set-type VirtualMachineScaleSets --load-balancer-sku standard --api-server-authorized-ip-ranges 0.0.0.0/32 --generate-ssh-keys
-ApiServerAccessAuthorizedIpRange Используйте параметр для создания кластера AKS, который позволяет получить доступ к серверу API только исходящий общедоступный IP-адрес подсистемы балансировки нагрузки SKU уровня "Стандартный". В следующем примере создается кластер с именем myAKSCluster в группе ресурсов с именем myResourceGroup:
New-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -NodeVmSetType VirtualMachineScaleSets -LoadBalancerSku Standard -ApiServerAccessAuthorizedIpRange '0.0.0.0/32' -GenerateSshKey
- На домашней странице портала Azure выберите "Создать ресурс", "Контейнеры", "Служба Azure Kubernetes (AKS)".
- Настройте параметры кластера по мере необходимости.
- В разделе "Сеть" в разделе "Общедоступный доступ" выберите "Задать авторизованные диапазоны IP-адресов".
- Для указания диапазонов IP-адресов введите
0.0.0.0/32. Этот параметр позволяет использовать только исходящий общедоступный IP-адрес подсистемы балансировки нагрузки SKU уровня "Стандартный". - Настройте остальные параметры кластера по мере необходимости.
- Когда вы будете готовы, нажмите кнопку "Рецензирование" и "Создать">, чтобы создать кластер.
Обновление авторизованных диапазонов IP-адресов сервера API в существующем кластере
az aks update Используйте команду с --api-server-authorized-ip-ranges параметром для обновления авторизованных диапазонов IP-адресов сервера API кластера. Следующий пример задает авторизованный диапазон 73.140.245.0/24 для кластера с именем myAKSCluster в группе ресурсов с именем myResourceGroup:
az aks update --resource-group myResourceGroup --name myAKSCluster --api-server-authorized-ip-ranges 73.140.245.0/24
Разрешить несколько диапазонов IP-адресов с помощью Azure CLI
Чтобы разрешить несколько диапазонов IP-адресов, разделите их запятыми.
Используйте команду с параметром az aks update--api-server-authorized-ip-ranges для авторизации нескольких диапазонов IP-адресов. В следующем примере кластер с именем myAKSCluster в группе ресурсов с именем myResourceGroup:
az aks update --resource-group myResourceGroup --name myAKSCluster --api-server-authorized-ip-ranges 73.140.245.0/24,193.168.1.0/24,194.168.1.0/24
Set-AzAksCluster Используйте командлет с -ApiServerAccessAuthorizedIpRange параметром для обновления авторизованных диапазонов IP-адресов сервера API кластера. Следующий пример задает авторизованный диапазон 73.140.245.0/24 для кластера с именем myAKSCluster в группе ресурсов с именем myResourceGroup:
Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -ApiServerAccessAuthorizedIpRange '73.140.245.0/24'
- Перейдите к портал Azure и выберите кластер AKS, который требуется обновить.
- В меню службы в разделе "Параметры" выберите "Сеть".
- В разделе "Параметры ресурса" выберите "Управление".
- На странице "Авторизованные диапазоны IP-адресов" обновите диапазоны авторизованных IP-адресов по мере необходимости.
- По завершении выберите Сохранить.
Отключение авторизованных диапазонов IP-адресов сервера API в существующем кластере
Чтобы отключить авторизованные диапазоны IP-адресов сервера API, используйте az aks update команду и укажите пустой диапазон "" для --api-server-authorized-ip-ranges параметра.
az aks update --resource-group myResourceGroup --name myAKSCluster --api-server-authorized-ip-ranges ""
Чтобы отключить авторизованные диапазоны IP-адресов сервера API, используйте Set-AzAksCluster командлет и укажите пустой диапазон '' для -ApiServerAccessAuthorizedIpRange параметра.
Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -ApiServerAccessAuthorizedIpRange ''
- Перейдите к портал Azure и выберите кластер AKS, который требуется обновить.
- В меню службы в разделе "Параметры" выберите "Сеть".
- В разделе "Параметры ресурса" выберите "Управление".
- На странице "Авторизованные диапазоны IP-адресов" снимите флажок "Задать авторизованные диапазоны IP-адресов".
- Выберите Сохранить.
Поиск существующих диапазонов разрешенных IP-адресов сервера API
Чтобы найти существующие диапазоны разрешенных IP-адресов сервера API, используйте az aks show команду с заданным параметром --queryapiServerAccessProfile.authorizedIpRanges.
az aks show --resource-group myResourceGroup --name myAKSCluster --query apiServerAccessProfile.authorizedIpRanges
Пример выходных данных:
[
"73.140.245.0/24"
]
Чтобы найти существующие диапазоны разрешенных IP-адресов сервера API, используйте Get-AzAksCluster командлет.
Get-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster | Select-Object -ExpandProperty ApiServerAccessProfile
Пример выходных данных:
AuthorizedIPRanges: {73.140.245.0/24}
...
Перейдите к портал Azure и выберите кластер AKS.
В меню службы в разделе "Параметры" выберите "Сеть".
В разделе "Параметры ресурса " на странице "Сеть" отображаются настроенные в настоящее время авторизованные диапазоны IP-адресов.
Доступ к серверу API с компьютера разработки, инструментов или автоматизации
Чтобы получить доступ к серверу API с компьютера разработки, средства или системы автоматизации, добавьте его общедоступный IP-адрес в авторизованные диапазоны IP-адресов кластера.
Кроме того, настройте прыжки с необходимым инструментом в отдельной подсети в виртуальной сети брандмауэра и добавьте IP-адреса брандмауэра в авторизованные диапазоны. Если подсеть кластера AKS использует принудительное туннелирование через брандмауэр, можно вместо этого поместить эту подсеть кластера AKS.
Примечание.
В следующем примере сохраняется существующий авторизованный диапазон и добавляется другой IP-адрес. Если опустить существующий IP-адрес, команда заменяет ее новым диапазоном.
Выполните следующую команду, чтобы получить IP-адрес и задать его в качестве переменной среды:
# Retrieve your IP address CURRENT_IP=$(dig +short "myip.opendns.com" "@resolver1.opendns.com")az aks updateИспользуйте команду с параметром--api-server-authorized-ip-ranges, чтобы добавить IP-адрес в авторизованные диапазоны. Следующий пример добавляет текущий IP-адрес в существующие диапазоны кластера с именем myAKSCluster в группе ресурсов с именем myResourceGroup:az aks update --resource-group myResourceGroup --name myAKSCluster --api-server-authorized-ip-ranges $CURRENT_IP/32,73.140.245.0/24
Выполните следующую команду, чтобы получить IP-адрес и задать его в качестве переменной среды:
# Retrieve your IP address $CURRENT_IP = (Invoke-RestMethod -Uri 'https://ipinfo.io/json').ipИспользуйте командлет с параметром
Set-AzAksCluster-ApiServerAccessAuthorizedIpRange, чтобы добавить IP-адрес в авторизованные диапазоны. Следующий пример добавляет текущий IP-адрес в существующие диапазоны кластера с именем myAKSCluster в группе ресурсов с именем myResourceGroup:Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -ApiServerAccessAuthorizedIpRange "$CURRENT_IP/32", '73.140.245.0/24'
Другой способ определить IP-адрес см. в статье "Поиск IP-адреса " или поиск того, что такое IP-адрес? в веб-браузере.
Связанный контент
Дополнительные сведения о безопасности в AKS см. в следующих статьях: