Можно ли ограничить доступ к экземпляру контейнера Azure с ограничениями IP

Я создаю экземпляр контейнера Azure для размещения индекса в целях тестирования. В настоящее время я могу заставить его работать только с IpAddressType, установленным как Public, но, конечно, это делает индекс доступным для всего мира.

Можно ли защитить экземпляр контейнера Azure с ограничениями IP, предпочтительно с помощью PowerShell?

Когда я настраиваю образ контейнера с IpAddressType, установленным как Private, я не могу получить доступ к индексу.

Ниже приведена команда, которую я использую для создания экземпляра контейнера:

   New-AzureRmContainerGroup -ResourceGroupName $resourceGroup `
                              -Name indexcontainer `
                              -Image $image `
                              -IpAddressType Public `
                              -Location $resourceGroupLocation `
                              -MemoryInGB 6 `
                              -Cpu 2 `
                              -Port 9200

3 ответа

СЕГОДНЯ:

Не с группами контейнеров: если вы открываете порт в группе контейнеров, он открыт для всего мира.

Container-Group - младший брат (мини-версия) полноценного AKS.

AKS, старший брат, дает тебе больше контроля.

См.: https://docs.microsoft.com/en-us/azure/aks/internal-lb


-IpAddressType Допустимые значения: общедоступные

https://docs.microsoft.com/en-us/powershell/module/azurerm.containerinstance/new-azurermcontainergroup?view=azurermps-6.13.0

Обратите внимание, что единственное значение, принятое в документации, это "Public"

Тем не менее, они помещают заполнитель для будущих аргументов помимо "Public"... так что я думаю, что они видят в этом пробел в функциональности........

Похоже, что нет, по крайней мере изначально с Azure Container Instance.
Существует два варианта развертывания экземпляров контейнеров Azure.

  1. publicIP — вы не можете ограничить доступ к этому типу развертывания.
  2. Настраиваемая виртуальная сеть — вы можете применять ограничения с помощью групп безопасности сети (NSG), но в этом случае Azure Container Instances не поддерживает публичное предоставление контейнеров.
    См. документацию :

Неподдерживаемые сетевые сценарии:
общедоступный IP-адрес или метка DNS. Группы контейнеров, развернутые в виртуальной сети, в настоящее время не поддерживают предоставление контейнеров непосредственно в Интернете с общедоступным IP-адресом или полным доменным именем.

Как вариант можно попробовать сделать следующее (поддерживает ограничения только для HTTP/HTTPS трафика):

  1. Поместите Шлюз приложений перед развертыванием ACI в настраиваемой виртуальной сети, чтобы открыть доступ к контейнерам (вы можете найти несколько примеров, например этот ) .
  2. Добавьте ограничения белого списка IP-адресов в NSG в настраиваемой виртуальной сети для ACI.

Как уже упоминалось в приведенном выше комментарии, вы можете открыть их для VNET сейчас (в Preview)

https://docs.microsoft.com/en-us/azure/container-instances/container-instances-vnet

После подключения к VNET вы можете использовать группы сетевой безопасности, чтобы разрешить трафик только с разрешенных IP-адресов или сетей. Маршрут, который вы сейчас выбираете, не будет работать.

Другие вопросы по тегам