Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье показано, как использовать диапазоны IP-адресов, авторизованных на сервере API, чтобы ограничить доступ к конечным точкам плоскости управления для рабочих нагрузок в Azure Kubernetes Service (AKS).
Предпосылки
- Требуется установить и настроить интерфейс командной строки Azure версии 2.0.76 или новее. Проверьте версию с помощью
az --versionкоманды. Если вам необходимо выполнить установку или обновление, см. статью Установка Azure CLI 2.0. - Сведения о том, какие IP-адреса следует включать при интеграции кластера AKS с Azure DevOps, см. в статье "Разрешенные IP-адреса и URL-адреса домена".
Подсказка
На портале Azure можно использовать Azure Copilot для внесения изменений в IP-адреса, которые могут получить доступ к кластеру. Дополнительные сведения см. в статье "Работа с кластерами AKS эффективно с помощью Azure Copilot".
Ограничения и рекомендации
- Эта функция поддерживается только в подсистеме балансировки нагрузки SKU уровня "Стандартный" для кластеров, созданных после октября 2019 года. Все существующие кластеры в подсистеме балансировки нагрузки SKU уровня "Базовый" с включенным компонентом должны продолжать работать правильно, если обновлена версия Kubernetes и уровень управления. Однако эти кластеры нельзя перенести к балансировщику нагрузки SKU уровня "Стандарт".
- Эту функцию нельзя использовать с частными кластерами.
- При использовании этой функции с кластерами, использующими общедоступные IP-адреса узла, пулы узлов, использующие общедоступные IP-адреса узла, должны использовать префиксы общедоступных IP-адресов. Необходимо добавить префиксы общедоступного IP-адреса в качестве авторизованных диапазонов.
- Можно указать до 200 разрешенных диапазонов IP-адресов. Чтобы выйти за рамки этого ограничения, рассмотрите возможность использования API Server VNet Integration, который поддерживает до 2000 диапазонов IP-адресов.
Общие сведения о диапазонах разрешенных IP-адресов сервера API
Сервер API Kubernetes предоставляет базовые API Kubernetes и обеспечивает взаимодействие с такими средствами управления, как kubectl и панель мониторинга Kubernetes. AKS предоставляет плоскость управления кластером с одним клиентом с выделенным сервером API. По умолчанию сервер API назначает общедоступный IP-адрес. Вы можете управлять доступом с помощью управления доступом на основе ролей Kubernetes (Kubernetes RBAC) или Azure RBAC.
Чтобы защитить доступ к общедоступному уровню управления AKS или серверу API, можно включить и использовать разрешенные IP-диапазоны. Диапазоны разрешенных IP-адресов позволяют обмениваться данными с сервером API только определенным диапазонам IP-адресов. Все запросы, сделанные на сервер API с IP-адреса, который не является частью этих авторизованных диапазонов IP-адресов, блокируются. Для распространения правил может потребоваться до двух минут. Разрешите тестирование подключения до указанного времени.
Рекомендуемые разрешенные диапазоны IP-адресов
Рекомендуется включить следующие диапазоны IP-адресов в конфигурацию авторизованных диапазонов IP-адресов сервера API:
- IP-адрес исходящего кластера (брандмауэр, шлюз NAT или другой адрес в зависимости от типа исходящего трафика).
- Любой диапазон, представляющий сети, из которыми будет администрироваться кластер.
Настройка кластера AKS с включенными разрешёнными IP-диапазонами сервера API
Примечание.
При включении разрешенных диапазонов IP-адресов сервера API во время создания кластера общедоступный IP-адрес сервера API и исходящий общедоступный IP-адрес подсистемы балансировки нагрузки SKU уровня "Стандартный " автоматически разрешены по умолчанию в дополнение к указанным диапазонам.
Особый случай - 0.0.0.0/32: Это специальное значение, которое указывает AKS разрешать доступ к серверу API только через исходящий публичный IP-адрес балансировщика нагрузки стандартного SKU. Значение 0.0.0.0/32 выступает в качестве заполнителя, который:
- Отключает разрешение дополнительных диапазонов IP-адресов клиента, установленное по умолчанию.
- Ограничивает доступ сервера API только к собственному исходящему IP-адресу кластера.
- Полезно для сценариев, когда кластер будет самостоятельно управлять, но блокировать внешний доступ.
При создании кластера с включенными диапазонами разрешенных IP-адресов сервера API вы предоставляете список авторизованных диапазонов общедоступных IP-адресов. При указании диапазона CIDR необходимо использовать сетевой адрес (первый IP-адрес в диапазоне). Например, если вы хотите разрешить диапазон 137.117.106.88137.117.106.95, необходимо указать 137.117.106.88/29.
Создайте кластер AKS с авторизованными диапазонами IP-адресов для сервера API, используя команду
az aks createс параметром--api-server-authorized-ip-ranges. В следующем примере создается кластер с именем 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
Создайте кластер AKS с авторизованными диапазонами IP-адресов сервера API, включенными с помощью командлета с параметром
New-AzAksCluster-ApiServerAccessAuthorizedIpRange. В следующем примере создается кластер с именем myAKSCluster в группе ресурсов с именем myResourceGroup, которому разрешен доступ к серверу API из диапазона IP-адресов73.140.245.0/24.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 уровня "Стандартный"
При создании кластера с разрешенными диапазонами IP-адресов сервера API можно также указать исходящие IP-адреса или префиксы для кластера с помощью параметров --load-balancer-outbound-ips или --load-balancer-outbound-ip-prefixes. Все IP-адреса, предоставленные в параметрах, разрешены вместе с IP-адресами в параметре --api-server-authorized-ip-ranges .
Создайте кластер AKS, включив диапазоны разрешённых IP-адресов для сервера API, и укажите исходящие IP-адреса для балансировщика нагрузки SKU стандарта "Standard" с помощью параметра
--load-balancer-outbound-ips. В следующем примере создается кластер с именем myAKSCluster в группе ресурсов с именем myResourceGroup, определяется диапазон IP-адресов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-адрес стандартного балансировщика нагрузки
Создайте кластер AKS с включенными диапазонами разрешенных IP-адресов сервера API и разрешайте только исходящий общедоступный IP-адрес подсистемы балансировки нагрузки SKU уровня "Стандартный" с помощью
--api-server-authorized-ip-rangesпараметра. В следующем примере создается кластер с именем myAKSCluster в группе ресурсов с именем myResourceGroup с включенными диапазонами IP-адресов сервера API и разрешен только исходящий общедоступный IP-адрес подсистемы балансировки нагрузки SKU уровня "Стандартный".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
Создайте кластер AKS с включенными диапазонами разрешенных IP-адресов сервера API и разрешайте только исходящий общедоступный IP-адрес подсистемы балансировки нагрузки SKU уровня "Стандартный" с помощью
-ApiServerAccessAuthorizedIpRangeпараметра. В следующем примере создается кластер с именем myAKSCluster в группе ресурсов с именем myResourceGroup с включенными диапазонами IP-адресов сервера API и разрешен только исходящий общедоступный IP-адрес подсистемы балансировки нагрузки SKU уровня "Стандартный".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 в существующем кластере
Обновите авторизованные диапазоны IP-адресов существующего кластера командой
az aks updateс параметром--api-server-authorized-ip-ranges. В следующем примере обновляется диапазон разрешенных IP-адресов сервера API в кластере myAKSCluster в группе ресурсов myResourceGroup, и диапазон IP-адресов обновляется следующим образом73.140.245.0/24:az aks update --resource-group myResourceGroup --name myAKSCluster --api-server-authorized-ip-ranges 73.140.245.0/24
Разрешить несколько диапазонов IP-адресов
Чтобы разрешить несколько диапазонов IP-адресов, можно перечислить несколько IP-адресов, разделенных запятыми.
Обновите авторизованные диапазоны IP-адресов для существующего кластера, чтобы разрешить несколько диапазонов, с помощью команды
az aks updateи параметра--api-server-authorized-ip-ranges. В следующем примере обновляются авторизованные диапазоны IP-адресов сервера API в кластере с именем myAKSCluster в группе ресурсов с именем myResourceGroup и разрешены несколько диапазонов IP-адресов: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
Обновите разрешенные диапазоны IP-адресов существующего кластера с помощью командлета
Set-AzAksCluster, используя параметр-ApiServerAccessAuthorizedIpRange. В следующем примере обновляется диапазон разрешенных IP-адресов сервера API в кластере myAKSCluster в группе ресурсов myResourceGroup, и диапазон IP-адресов обновляется на73.140.245.0/24.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
Используйте команду
az aks showс параметром--queryapiServerAccessProfile.authorizedIpRanges, чтобы найти текущие диапазоны разрешенных IP-адресов сервера API.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 с компьютера разработки, инструментов или автоматизации
Чтобы получить доступ к серверу API, необходимо добавить компьютеры разработки, инструментарий или IP-адреса автоматизации в список разрешенных диапазонов IP-адресов для кластера AKS.
Кроме того, можно настроить jumpbox с необходимым инструментарием в пределах отдельной подсети в виртуальной сети брандмауэра. Этот параметр предполагает, что в вашей среде есть брандмауэр с соответствующей сетью, и вы добавили IP-адреса брандмауэра в авторизованные диапазоны. Аналогичным образом, если вы применили принудительное туннелирование из подсети AKS в подсеть брандмауэра, наличие прыжкового сервера в кластерной подсети также работает.
Примечание.
В следующем примере добавляется еще один IP-адрес в утвержденные диапазоны. Он по-прежнему включает существующий IP-адрес. Если вы не включаете существующий IP-адрес, эта команда заменяет ее новой, а не добавляя ее в авторизованные диапазоны.
Получите IP-адрес и установите его в переменную среды с помощью следующей команды:
# Retrieve your IP address CURRENT_IP=$(dig +short "myip.opendns.com" "@resolver1.opendns.com")Добавьте IP-адрес в утвержденный список с помощью
az aks updateкоманды с параметром--api-server-authorized-ip-ranges. Следующий пример добавляет текущий IP-адрес в существующий диапазон разрешенных IP-адресов сервера API в кластере с именем myAKSCluster в группе ресурсов с именем myResourceGroup:az aks update --resource-group myResourceGroup --name myAKSCluster --api-server-authorized-ip-ranges $CURRENT_IP/24,73.140.245.0/24
Получите IP-адрес и установите его в переменную среды с помощью следующей команды:
# Retrieve your IP address CURRENT_IP=$(dig +short "myip.opendns.com" "@resolver1.opendns.com")Добавьте ваш IP-адрес в утвержденный список, используя командлет
Set-AzAksClusterс параметром-ApiServerAccessAuthorizedIpRange. Следующий пример добавляет текущий IP-адрес в существующий диапазон разрешенных IP-адресов сервера API в кластере с именем myAKSCluster в группе ресурсов с именем myResourceGroup:Set-AzAksCluster -ResourceGroupName myResourceGroup -Name myAKSCluster -ApiServerAccessAuthorizedIpRange '$CURRENT_IP/24,73.140.245.0/24'
Другим вариантом является использование следующей команды в системах Windows для получения общедоступного IPv4-адреса:
Invoke-RestMethod http://ipinfo.io/json | Select -exp ip
Вы также можете выполнить действия, описанные в разделе "Поиск IP-адреса " или поиск по моему IP-адресу? в браузере Интернета.
Связанный контент
Дополнительные сведения о безопасности в AKS см. в следующих статьях: