Настройте стандартную конечную точку службы с помощью Azure CLI

В этой статье вы проведете вас через настройку стандартной конечной точки сервиса с помощью Azure CLI. Вы создаёте публичный IP-адрес как сетевой идентификатор, связываете его с сервисными конечными точками в подсети, настраиваете периметр сетевой безопасности и проверяете связность.

Important

Стандартная сервисная конечная точка сейчас находится в публичном предварительном просмотре. Предварительная версия предоставляется без соглашения об уровне обслуживания и не рекомендуется для использования в рабочей среде. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Для получения дополнительной информации см. Дополнительные условия использования для предварительных версий Microsoft Azure.

Необходимые условия

  • Учетная запись Azure с активной подпиской. Если у вас нет учетной записи, создайте бесплатную учетную запись.

  • Роль участника сети или выше в подписке. В частности, вам нужно разрешение Microsoft.Network/publicIPAddresses/joinServiceEndpointNetworkIdentifier/action . Для получения дополнительной информации см. требования к ролевому управлению доступом для периметра сетевой безопасности.

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

    az feature register \
        --namespace Microsoft.Network \
        --name AllowServiceEndpointNetworkIdentifier
    

    Проверьте состояние регистрации:

    az feature show \
        --namespace Microsoft.Network \
        --name AllowServiceEndpointNetworkIdentifier \
        --query "properties.state" \
        --output tsv
    

    Дождитесь, пока штат покажет «Зарегистрирован», затем обновите регистрацию провайдера ресурсов:

    az provider register --namespace Microsoft.Network
    
  • Azure CLI версии 2.x или новее. Чтобы узнать версию, выполните команду az --version. Если необходимо установить или обновить, см. раздел Install Azure CLI.

Создайте группу ресурсов

Создайте группу ресурсов с помощью az group create.

az group create \
  --name test-rg \
  --location eastus2

Создание виртуальной сети

Создайте виртуальную сеть и подсеть, используя az network vnet create.

az network vnet create \
  --resource-group test-rg \
  --name vnet-1 \
  --address-prefix 10.0.0.0/16 \
  --subnet-name subnet-1 \
  --subnet-prefix 10.0.0.0/24 \
  --location eastus2

Создание шлюза NAT.

Создайте шлюз NAT v2 и свяжите его с подсетью 1 для обеспечения исходящего интернет-соединения виртуальной машины.

  1. Создайте общедоступный IP-адрес для шлюза NAT с помощью az network public-ip create.

    az network public-ip create \
      --resource-group test-rg \
      --name public-ip-nat \
      --sku Standard \
      --allocation-method Static \
      --location eastus2
    
  2. Создайте NAT-шлюз с помощью az network nat gateway create.

    az network nat gateway create \
      --resource-group test-rg \
      --name nat-gateway \
      --location eastus2 \
      --public-ip-addresses public-ip-nat \
      --idle-timeout 4  
    
  3. Ассоциируйте шлюз NAT с подсетью 1 , используя обновление подсети az network vnet.

    az network vnet subnet update \
      --resource-group test-rg \
      --vnet-name vnet-1 \
      --name subnet-1 \
      --nat-gateway nat-gateway
    

Развертывание Бастиона Azure

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

Замечание

Почасовая оплата начисляется с момента развертывания Bastion независимо от объема исходящего трафика. Дополнительные сведения см. в разделе Pricing и SKUs. Если вы развертываете Бастион в рамках руководства или теста, рекомендуется удалить этот ресурс после завершения работы с ним.

Создайте узел Бастион Azure с помощью az network bastion create.

az network bastion create \
  --name bastion \
  --resource-group test-rg \
  --vnet-name vnet-1 \
  --location eastus2 \
  --sku Basic

Создание виртуальной машины

Создайте виртуальную машину с именем vm-1 в виртуальной сети. Виртуальная машина используется для проверки подключения после настройки.

Создайте виртуальную машину с помощью команды az vm create.

az vm create \
  --resource-group test-rg \
  --name vm-1 \
  --image Ubuntu2204 \
  --vnet-name vnet-1 \
  --subnet subnet-1 \
  --admin-username azureuser \
  --generate-ssh-keys \
  --public-ip-address "" \
  --nsg nsg-1

Замечание

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

Замечание

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

IP-адрес исходящего доступа по умолчанию отключен при возникновении одного из следующих событий:

  • Общедоступный IP-адрес назначается виртуальной машине.
  • Виртуальная машина размещается в серверном пуле стандартной подсистемы балансировки нагрузки с правилами исходящего трафика или без нее.
  • Ресурс Azure NAT Gateway присвоен подсети виртуальной машины.

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

Для получения дополнительной информации о исходящих подключениях в Azure смотрите раздел Стандартный исходящий доступ в Azure и Использование преобразования сетевых адресов источника (SNAT) для исходящих подключений.

Установка инструментов на виртуальную машину

Установить cifs-utils и Azure CLI на виртуальную машину, запустив shell-скрипт с az vm run-command invoke.

az vm run-command invoke \
  --resource-group test-rg \
  --name vm-1 \
  --command-id RunShellScript \
  --scripts "sudo apt-get update && sudo apt-get install -y cifs-utils && curl -sL https://aka.ms/InstallAzureCLIDeb | sudo bash"

Создание учетной записи хранения

Создайте учетную запись хранения Azure с файловым ресурсом, который будет использоваться в качестве ресурса PaaS для тестирования подключения через конечную точку сервиса.

  1. Создайте учётную запись хранения с помощью команды az storage account create. Замените <storage-account-name> на глобально уникальное имя.

    az storage account create \
      --name <storage-account-name> \
      --resource-group test-rg \
      --location eastus2 \
      --sku Standard_LRS \
      --kind StorageV2
    
  2. Создайте общий файловый ресурс с помощью команды az storage share-rm create.

    az storage share-rm create \
      --resource-group test-rg \
      --storage-account <storage-account-name> \
      --name fileshare-1
    

Создание публичного IP-префикса

Создайте публичный IP-префикс и публичный IP-адрес для использования в качестве сетевого идентификатора.

  1. Создайте общедоступный префикс IP-адресов с помощью az network public-ip prefix create.

    az network public-ip prefix create \
      --resource-group test-rg \
      --name public-ip-prefix \
      --length 31 \
      --location eastus2
    
  2. Создайте публичный IP-адрес с префиксом az network public-ip create.

    az network public-ip create \
      --resource-group test-rg \
      --name public-ip-1 \
      --public-ip-prefix public-ip-prefix \
      --sku Standard \
      --allocation-method Static
    

Настройка сервисных конечных точек с сетевым идентификатором

Этот шаг является ключевой конфигурацией для стандартной точки сервиса. Вы связываете публичный IP-адрес как сетевой идентификатор с сервисными конечными точками в подсети.

Идентификатор сети — это публичный IP-адрес, который вы присваиваете своей конечной точке сервиса. Публичный IP не используется для принятия решений по маршрутизации сети. Когда вы создаёте публичный IP-адрес внутри вашей подписки, он автоматически назначается из выделенного IP-пула вашего сервиса. Сервисы внутри сетевого периметра используют этот публичный IP-адрес для распознавания трафика конечных точек сервиса и настройки соответствующих правил доступа.

Замечание

Публичный IP-адрес, используемый в качестве сетевого идентификатора, должен соответствовать всем следующим требованиям: стандартный SKU, статический метод назначения, IPv4, состояние подготовки “Succeeded”, а также он должен уже существовать до связывания с конечной точкой службы. NRP отклоняет IP, если какие-либо из этих условий не выполнены.

Обновите подсеть, чтобы добавить конечную точку сервиса с публичным IP-адресом в качестве сетевого идентификатора с помощью обновления подсети az network vnet.

az network vnet subnet update \
  --resource-group test-rg \
  --vnet-name vnet-1 \
  --name subnet-1 \
  --add serviceEndpoints '{"service":"Microsoft.Storage","networkIdentifier":{"id":"/subscriptions/<subscription-id>/resourceGroups/test-rg/providers/Microsoft.Network/publicIPAddresses/public-ip-1"}}'

Замечание

Замените <subscription-id> идентификатором подписки Azure. Идентификатор подписки можно найти, выполнив команду az account show --query id --output tsv.

Один и тот же публичный IP-адрес может быть назначен всем подсетям региона в рамках подписки. Идентификатор сети поддерживается во всех подписках во время публичного предварительного просмотра.

Создание периметра безопасности сети

Создайте сетевой периметр безопасности и свяжите с ним ваши PaaS-ресурсы.

  1. Создайте сетевой периметр с использованием az network perimeter create.

    az network perimeter create \
      --name nsp-1 \
      --resource-group test-rg \
      --location eastus2
    
  2. Создайте профиль в периметре сетевой безопасности с помощью команды az network perimeter profile create.

    az network perimeter profile create \
      --perimeter-name nsp-1 \
      --resource-group test-rg \
      --name profile-1
    
  3. Свяжите свою учётную запись хранения с сетевым периметром безопасности с помощью az network perimeter association create. Замените <subscription-id> и <storage-account-name> собственными значениями.

    az network perimeter association create \
      --perimeter-name nsp-1 \
      --resource-group test-rg \
      --association-name assoc-storage \
      --access-mode Learning \
      --profile "{id:/subscriptions/<subscription-id>/resourceGroups/test-rg/providers/Microsoft.Network/networkSecurityPerimeters/nsp-1/profiles/profile-1}" \
      --private-link-resource "{id:/subscriptions/<subscription-id>/resourceGroups/test-rg/providers/Microsoft.Storage/storageAccounts/<storage-account-name>}"
    

Создайте правило входного доступа по периметру сети безопасности

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

Создайте правило входящего доступа с помощью az network perimeter profile access-rule create. Замените <public-ip-prefix-range> на диапазон адресов вашего публичного IP-префикса.

az network perimeter profile access-rule create \
  --perimeter-name nsp-1 \
  --resource-group test-rg \
  --profile-name profile-1 \
  --access-rule-name allow-se-standard \
  --direction Inbound \
  --address-prefixes "<public-ip-prefix-range>"

Замечание

Чтобы найти диапазон адресов вашего публичного IP-префикса, запустите az network public-ip prefix show --resource-group test-rg --name public-ip-prefix --query ipPrefix --output tsv.

Проверка подключения

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

Подключитесь к виртуальной машине

  1. На портале Azure найдите и выберите Виртуальные машины.

  2. Выберите vm-1.

  3. Выберите Подключить, затем выберите Подключить через Bastion.

  4. На странице Бастиона введите следующую информацию:

    Setting Value
    Тип проверки подлинности Выберите закрытый ключ SSH из локального файла.
    Имя пользователя Введите azureuser.
    Локальный файл Выберите файл vm-1-key.pem , который вы скачали при создании виртуальной машины.
  5. Нажмите Подключиться.

Тестирование подключения к учетной записи хранения

  1. В сеансе SSH на vm-1 выполните вход в Azure CLI:

    az login
    
  2. Подключите общий файловый ресурс Azure, чтобы проверить подключение к учётной записи хранения через конечную точку службы. Замените <storage-account-name> именем учетной записи хранения:

    sudo mkdir -p /mnt/fileshare-1
    STORAGE_KEY=$(az storage account keys list \
        --resource-group test-rg \
        --account-name <storage-account-name> \
        --query "[0].value" -o tsv)
    
    sudo mount -t cifs //<storage-account-name>.file.core.windows.net/fileshare-1 /mnt/fileshare-1 \
        -o username=<storage-account-name>,password=$STORAGE_KEY,serverino,nosharesock,actimeo=30,mfsymlinks
    
  3. Проверьте, что файловый обмен успешно монтируется:

    df -h /mnt/fileshare-1
    
  4. Чтобы убедиться, что правило входящего доступа работает, проверьте логи диагностики периметра сетевой безопасности. Для получения дополнительной информации о логах диагностики по периметру безопасности сети см . раздел Диагностический лог для периметра сетевой безопасности.

Очистите ресурсы

Когда вам больше не нужны ресурсы, созданные в этой статье, удалите группу ресурсов:

az group delete --name test-rg --yes --no-wait

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