Создание и связывание политик конечных точек службы
Статья
Политики конечной точки службы позволяют фильтровать трафик виртуальной сети, передаваемый к ресурсам Azure, с помощью конечных точек службы. Если вы не работали с политиками конечной точки службы, ознакомьтесь с обзором политик конечной точки службы, чтобы получить дополнительные сведения.
В этом руководстве описано следующее:
Создайте виртуальную сеть.
Добавьте подсеть и включите конечную точку службы для хранилища Azure.
Создайте две служба хранилища Azure учетные записи и разрешите доступ к ней из подсети в виртуальной сети.
Формирование политики для конечных точек службы для разрешения доступа только к одной из учетных записей хранения.
Развертывание виртуальной машины в подсети.
Подтверждение доступа из подсети к разрешенной учетной записи хранения.
Убедитесь, что доступ запрещен к учетной записи хранения, отличной от подсети.
В Azure есть Azure Cloud Shell, интерактивная оболочка среды, с которой можно работать в браузере. Для работы со службами Azure можно использовать Bash или PowerShell с Cloud Shell. Для запуска кода из этой статьи можно использовать предварительно установленные команды Cloud Shell. Ничего дополнительного в локальной среде устанавливать не нужно.
Начало работы с Azure Cloud Shell
Вариант
Пример и ссылка
Нажмите кнопку Попробовать в правом верхнем углу блока кода или команд. При нажатии кнопки Попробовать код или команда не копируется в Cloud Shell автоматически.
Чтобы открыть Cloud Shell в браузере, перейдите по адресу https://shell.azure.com или нажмите кнопку Запуск Cloud Shell.
Нажмите кнопку Cloud Shell в строке меню в правом верхнем углу окна портала Azure.
Чтобы использовать Azure Cloud Shell, выполните следующие действия:
Запустите Cloud Shell.
Нажмите кнопку Копировать в блоке кода (или блоке команд), чтобы скопировать код или команду.
Вставьте код или команду в окно сеанса Cloud Shell, нажав клавиши CTRL+SHIFT+V в Windows и Linux или CMD+SHIFT+V в macOS.
Нажмите клавишу ВВОД, чтобы запустить код или команду.
Чтобы установить и использовать PowerShell локально для работы с этой статьей, вам понадобится модуль Azure PowerShell 1.0.0 или более поздней версии. Выполните командлет Get-Module -ListAvailable Az, чтобы узнать установленную версию. Если вам необходимо выполнить обновление, ознакомьтесь со статьей, посвященной установке модуля Azure PowerShell. При использовании PowerShell на локальном компьютере также нужно запустить Connect-AzAccount, чтобы создать подключение к Azure.
Если вы предпочитаете выполнять справочные команды CLI локально, установите Azure CLI. Если вы работаете в Windows или macOS, Azure CLI можно запустить в контейнере Docker. Дополнительные сведения см. в статье Как запустить Azure CLI в контейнере Docker.
Если вы используете локальную установку, выполните вход в Azure CLI с помощью команды az login. Чтобы выполнить аутентификацию, следуйте инструкциям в окне терминала. Сведения о других возможностях, доступных при входе, см. в статье Вход с помощью Azure CLI.
Установите расширение Azure CLI при первом использовании, когда появится соответствующий запрос. Дополнительные сведения о расширениях см. в статье Использование расширений с Azure CLI.
Выполните команду az version, чтобы узнать установленную версию и зависимые библиотеки. Чтобы обновиться до последней версии, выполните команду az upgrade.
Для работы с этой статьей требуется Azure CLI версии 2.0.28 или более поздней. Если вы используете Azure Cloud Shell, последняя версия уже установлена.
Создание виртуальной сети и включение конечной точки службы
Создайте виртуальную сеть для хранения ресурсов, создаваемых в этом руководстве.
В поле поиска на портале введите виртуальные сети. В результатах поиска выберите Виртуальные сети.
Нажмите кнопку +Создать , чтобы создать новую виртуальную сеть.
Введите или выберите следующие сведения на вкладке "Основные сведения" в разделе "Создание виртуальной сети".
Параметр
Значение
Сведения о проекте
Отток подписок
Выберите свою подписку.
Группа ресурсов
Выберите Создать. Введите test-rg в name. Нажмите кнопку ОК.
Имя.
Введите vnet-1.
Область/регион
Выберите Западная часть США 2.
Выберите Далее.
Выберите Далее.
На вкладке IP-адресов в подсетях выберите подсеть по умолчанию.
Введите или выберите следующие сведения в подсети "Изменить".
Параметр
Значение
Имя.
Введите подсеть-1.
Конечные точки службы
Сервисы;
В раскрывающемся меню выберите Microsoft.Storage.
Выберите Сохранить.
Выберите Review + Create (Просмотреть и создать).
Нажмите кнопку создания.
Перед созданием виртуальной сети необходимо создать для нее группу ресурсов и другие компоненты, указанные в этой статье. Создайте группу ресурсов с помощью командлета New-AzResourceGroup. В следующем примере создается группа ресурсов с именем test-rg:
Создайте виртуальную сеть с помощью командлета New-AzVirtualNetwork. В следующем примере создается виртуальная сеть с именем vnet-1 с префиксом адреса 10.0.0.0.0/16.
Создайте конфигурацию подсети с помощью командлета Set-AzVirtualNetworkSubnetConfig, а затем сохраните эту конфигурацию подсети в виртуальную сеть с помощью командлета Set-AzVirtualNetwork. В следующем примере в виртуальную сеть добавляется подсеть с именем subnet-1 и создается конечная точка службы для Microsoft.Storage.
Перед созданием виртуальной сети необходимо создать для нее группу ресурсов и другие компоненты, указанные в этой статье. Создайте группу ресурсов с помощью команды az group create. В следующем примере создается группа ресурсов с именем test-rg в расположении westus2 .
az group create \
--name test-rg \
--location westus2
В поле поиска на портале введите группы безопасности сети. В результатах поиска выберите Группы безопасности сети.
Нажмите кнопку "+ Создать ", чтобы создать новую группу безопасности сети.
На вкладке "Основные сведения" в разделе "Создание группы безопасности сети" введите или выберите следующие сведения.
Параметр
Значение
Сведения о проекте
Отток подписок
Выберите свою подписку.
Группа ресурсов
Выберите test-rg.
Имя.
Введите nsg-1.
Область/регион
Выберите Западная часть США 2.
Выберите Review + Create (Просмотреть и создать).
Нажмите кнопку создания.
Создание правил группы безопасности сети
В поле поиска на портале введите группы безопасности сети. В результатах поиска выберите Группы безопасности сети.
Выберите nsg-1.
Разверните Параметры. Выберите правила безопасности исходящего трафика.
Нажмите кнопку +Добавить, чтобы добавить новое правило безопасности исходящего трафика.
В окне Добавление правила безопасности для входящего трафика введите или выберите указанные ниже значения параметров.
Параметр
Значение
Оригинал
Выберите Service Tag (Тег службы).
Тег службы источника
Выберите VirtualNetwork.
Диапазоны исходных портов
Введите *.
Назначение
Выберите Service Tag (Тег службы).
Назначение: тег службы
Выберите Хранилище.
Service
Выберите Пользовательский.
Диапазоны портов назначения
Введите *.
Протокол
Выберите Любые.
Действие
Выберите Разрешить.
Приоритет
Введите 100.
Имя.
Введите allow-storage-all.
Выберите Добавить.
Нажмите кнопку +Добавить, чтобы добавить другое правило безопасности исходящего трафика.
В окне Добавление правила безопасности для входящего трафика введите или выберите указанные ниже значения параметров.
Параметр
Значение
Оригинал
Выберите Service Tag (Тег службы).
Тег службы источника
Выберите VirtualNetwork.
Диапазоны исходных портов
Введите *.
Назначение
Выберите Service Tag (Тег службы).
Назначение: тег службы
Выберите Интернет.
Service
Выберите Пользовательский.
Диапазоны портов назначения
Введите *.
Протокол
Выберите Любые.
Действие
Выберите Отклонить.
Приоритет
Введите 110.
Имя.
Введите deny-internet-all.
Выберите Добавить.
Разверните Параметры. Выберите подсети.
Выберите Связать.
В разделе "Связать подсеть" введите или выберите следующие сведения.
Параметр
Значение
Виртуальная сеть
Выберите vnet-1 (test-rg).
Подсеть
Выберите подсеть-1.
Нажмите ОК.
Создайте правила безопасности для группы безопасности сети с помощью командлета New-AzNetworkSecurityRuleConfig. Приведенное ниже правило разрешает исходящий доступ к общедоступным IP-адресам, назначенным службе хранилища Azure.
Следующее правило запрещает доступ ко всем общедоступным IP-адресам. Предыдущее правило переопределяет это правило ввиду более высокого приоритета. Оно предоставляет доступ к общедоступным IP-адресам службы хранилища Azure.
Создайте группу безопасности сети с помощью командлета New-AzNetworkSecurityGroup. В следующем примере создается группа безопасности сети с именем nsg-1.
Свяжите группу безопасности сети с подсетью-1 с Set-AzVirtualNetworkSubnetConfig, а затем запишите конфигурацию подсети в виртуальную сеть. В следующем примере группа безопасности сети nsg-1 связывается с подсетью-1.
Создайте группу безопасности сети с помощью команды az network nsg create. В следующем примере создается группа безопасности сети с именем nsg-1.
az network nsg create \
--resource-group test-rg \
--name nsg-1
Свяжите группу безопасности сети с подсетью-1 с az network vnet subnet update. В следующем примере группа безопасности сети nsg-1 связывается с подсетью-1.
Создайте правила безопасности командой az network nsg rule create. Приведенное ниже правило разрешает исходящий доступ к общедоступным IP-адресам, назначенным службе хранилища Azure.
Каждая группа безопасности сети содержит несколько правил безопасности по умолчанию. Следующее правило переопределяет правило безопасности по умолчанию, разрешающее исходящий доступ ко всем общедоступным IP-адресам. Параметр destination-address-prefix "Internet" запрещает доступ ко всем общедоступным IP-адресам. Предыдущее правило переопределяет это правило ввиду более высокого приоритета. Оно предоставляет доступ к общедоступным IP-адресам службы хранилища Azure.
Ограничение сетевого доступа к учетным записям хранения Azure
Действия, необходимые для ограничения сетевого доступа к ресурсам, созданным с помощью служб Azure, использующих конечные точки службы, отличаются в зависимости службы. Ознакомьтесь с документацией по отдельным службам, чтобы получить точные инструкции для них. В оставшейся части этой статьи в качестве примера приведены инструкции по ограничению сетевого доступа для учетной записи хранения Azure.
В поле поиска на портале введите учетные записи хранения. Выбор Учетные записи хранения в результатах поиска.
Нажмите кнопку +Создать , чтобы создать новую учетную запись хранения.
В разделе "Создание учетной записи хранения" введите или выберите следующие сведения.
Параметр
Значение
Сведения о проекте
Отток подписок
Выберите свою подписку.
Группа ресурсов
Выберите test-rg.
Сведения об экземпляре
Storage account name
Введите allowedaccount(random-number). Примечание. Имя учетной записи хранения должно быть уникальным. Добавьте случайное число в конец имени allowedaccount.
Область/регион
Выберите Западная часть США 2.
Производительность
Выберите Стандартное.
Избыточность
Выберите Локально избыточное хранилище (LRS).
Нажмите кнопку "Далее", пока не перейдете на вкладку "Защита данных".
В средстве восстановления отмените выбор всех параметров.
Выберите Review + Create (Просмотреть и создать).
Нажмите кнопку создания.
Повторите предыдущие шаги, чтобы создать другую учетную запись хранения со следующими сведениями.
В поле поиска на портале введите учетные записи хранения. Выбор Учетные записи хранения в результатах поиска.
Выберите allowedaccount(random-number).
Разверните раздел хранилища данных и выберите общие папки.
Нажмите + Общая папка.
В новой общей папке введите или выберите следующие сведения.
Параметр
Значение
Имя.
Введите общую папку.
Оставьте остальные параметры в качестве значения по умолчанию и нажмите кнопку "Проверить и создать".
Нажмите кнопку создания.
Повторите предыдущие шаги, чтобы создать общую папку в deniedaccount(random-number).
Создание общей папки разрешенной учетной записи хранения
Используйте Get-AzStorageAccountKey , чтобы получить ключ учетной записи хранения для разрешенной учетной записи хранения. Этот ключ будет использоваться на следующем шаге для создания общей папки в разрешенной учетной записи хранения.
Создайте объект контекста для учетной записи хранения и ключа, выполнив командлет New-AzStorageContext. Контекст включает имя учетной записи хранения и ключ.
Создание общей папки с запрещенной учетной записью хранения
Используйте Get-AzStorageAccountKey , чтобы получить ключ учетной записи хранения для разрешенной учетной записи хранения. Этот ключ будет использоваться на следующем шаге, чтобы создать общую папку в учетной записи хранения с отказом.
Создайте объект контекста для учетной записи хранения и ключа, выполнив командлет New-AzStorageContext. Контекст включает имя учетной записи хранения и ключ.
Создание общей папки разрешенной учетной записи хранения
Получите строка подключения для учетных записей хранения в переменную с az storage account show-connection-string. Строка подключения используется для создания файлового ресурса на более позднем этапе.
Создайте файловый ресурс в учетной записи хранения командой az storage share create. Позже этот файловый ресурс будет подключен для подтверждения сетевого доступа к нему.
Создание общей папки с запрещенной учетной записью хранения
Получите строка подключения для учетных записей хранения в переменную с az storage account show-connection-string. Строка подключения используется для создания файлового ресурса на более позднем этапе.
Создайте файловый ресурс в учетной записи хранения командой az storage share create. Позже этот файловый ресурс будет подключен для подтверждения сетевого доступа к нему.
Запретить доступ ко всем сетевым учетным записям хранения
По умолчанию учетные записи хранения принимают сетевые подключения клиентов в любой сети. Чтобы ограничить сетевой доступ к учетным записям хранения, можно настроить учетную запись хранения для приема подключений только из определенных сетей. В этом примере учетная запись хранения настроена для приема подключений только из подсети виртуальной сети, созданной ранее.
В поле поиска на портале введите учетные записи хранения. Выбор Учетные записи хранения в результатах поиска.
Выберите allowedaccount(random-number).
Разверните узел "Безопасность и сеть" и выберите "Сеть".
В брандмауэрах и виртуальных сетях в общедоступном сетевом доступе выберите "Включено" из выбранных виртуальных сетей и IP-адресов.
В виртуальных сетях выберите + Добавить существующую виртуальную сеть.
В разделе "Добавление сетей" введите или выберите следующие сведения.
Параметр
Значение
Отток подписок
Выберите свою подписку.
Виртуальные сети
Выберите виртуальную сеть-1.
подсети;
Выберите подсеть-1.
Выберите Добавить.
Выберите Сохранить.
Повторите предыдущие шаги, чтобы запретить сетевой доступ к denyedaccount(random-number).
Используйте Update-AzStorageAccountNetworkRuleSet , чтобы запретить доступ к учетным записям хранения, кроме виртуальной сети и подсети, созданной ранее. После запрета доступа к сети учетная запись хранения недоступна из любой сети.
По умолчанию учетные записи хранения принимают сетевые подключения клиентов в любой сети. Чтобы ограничить доступ выбранными сетями, измените действие по умолчанию на Запретить, выполнив команду az storage account update. После запрета доступа к сети учетная запись хранения недоступна из любой сети.
Применение политики для разрешения доступа к допустимой учетной записи хранения
Политику конечной точки службы можно создать. Политика гарантирует, что пользователи в виртуальной сети могут получать доступ только к безопасным и разрешенным учетным записям служба хранилища Azure. Эта политика содержит список разрешенных учетных записей хранения, применяемых к подсети виртуальной сети, подключенной к хранилищу через конечные точки службы.
Создание политики конечной точки службы
В этом разделе создается определение политики со списком разрешенных ресурсов для доступа к конечной точке службы.
Политики конечной точки службы применяются к конечным точкам службы. Начните с создания политики конечной точки службы. Затем создайте определения политики в этой политике для утверждения учетных записей служба хранилища Azure для этой подсети.
Используйте az storage account show , чтобы получить идентификатор ресурса для разрешенной учетной записи хранения.
serviceResourceId=$(az storage account show --name allowedaccount --query id --output tsv)
Перед тем как связать политику с подсетью, убедитесь, что все ресурсы, доступ к которым осуществляется из данной подсети, добавлены в эту политику. Когда политика становится связанной, из конечных точек службы будет разрешен только доступ к ресурсам разрешить указанные.
Убедитесь, что управляемые службы Azure не существуют в подсети, связанной с политикой конечной точки службы.
Доступ к ресурсам хранилища Azure во всех регионах будет ограничен в соответствии с политикой конечной точки службы этой подсети.
Проверка ограничения доступа для учетных записей хранения Azure
Чтобы протестировать сетевой доступ к учетной записи хранения, разверните VM в каждой подсети.
В поле поиска на портале введите виртуальные машины. В результатах поиска выберите Виртуальные машины.
На вкладке Основные сведения страницы Создание виртуальной машины введите или выберите следующие значения параметров:
Параметр
Значение
Сведения о проекте
Отток подписок
Выберите свою подписку.
Группа ресурсов
Выберите test-rg.
Сведения об экземпляре
Virtual machine name
Введите vm-1.
Область/регион
Выберите (США) Западная часть США 2.
Параметры доступности
Выберите Избыточность инфраструктуры не требуется.
Тип безопасности
Выберите Стандартное.
Изображения
Выберите Windows Server 2022 Datacenter — x64-го поколения 2-го поколения.
Размер
Выберите размер.
Учетная запись администратора
Username
Введите имя пользователя.
Пароль
Введите пароль.
Подтверждение пароля
Введите пароль еще раз.
Правила входящего порта
Нажмите кнопку "Далее": диски, а затем нажмите кнопку "Далее: сеть".
На вкладке Сеть введите или выберите следующие значения параметров.
Параметр
Значение
Сетевой интерфейс
Виртуальная сеть
Выберите виртуальную сеть-1.
Подсеть
Выберите подсеть-1 (10.0.0.0/24).
Общедоступный IP-адрес
Выберите Отсутствует.
Группа безопасности сети сетевого адаптера
Выберите Отсутствует.
Оставьте остальные параметры в качестве значения по умолчанию и нажмите кнопку "Просмотр и создание".
Нажмите кнопку создания.
Создайте виртуальную машину в подсети подсети-1 с помощью New-AzVM. При выполнении следующей команды вам будет предложено указать учетные данные. В качестве вводимых значений указываются имя пользователя и пароль для виртуальной машины.
В поле поиска на портале введите учетные записи хранения. Выбор Учетные записи хранения в результатах поиска.
Выберите allowedaccount(random-number).
Разверните узел "Безопасность и сеть" и выберите ключи доступа.
Скопируйте значение key1. Этот ключ используется для сопоставления диска с учетной записью хранения из созданной ранее виртуальной машины.
В поле поиска на портале введите виртуальные машины. В результатах поиска выберите Виртуальные машины.
Выберите vm-1.
Развертывание операций. Выберите команду "Выполнить".
Выберите RunPowerShellScript.
Вставьте следующий скрипт в скрипт выполнения команд.
## Enter the storage account key for the allowed storage account that you recorded earlier.
$storageAcctKey1 = (pasted from procedure above)
$acctKey = ConvertTo-SecureString -String $storageAcctKey1 -AsPlainText -Force
## Replace the login account with the name of the storage account you created.
$credential = New-Object System.Management.Automation.PSCredential -ArgumentList ("Azure\allowedaccount"), $acctKey
## Replace the storage account name with the name of the storage account you created.
New-PSDrive -Name Z -PSProvider FileSystem -Root "\\allowedaccount.file.core.windows.net\file-share" -Credential $credential
Выберите Выполнить.
Если карта диска выполнена успешно, выходные данные в поле вывода выглядят примерно так:
Name Used (GB) Free (GB) Provider Root
---- --------- --------- -------- ----
Z FileSystem \\allowedaccount.file.core.windows.net\fil..
Подтверждение того, что доступ запрещен к учетной записи хранения, запрещенной
В поле поиска на портале введите учетные записи хранения. Выбор Учетные записи хранения в результатах поиска.
Выберите deniedaccount(random-number).
Разверните узел "Безопасность и сеть" и выберите ключи доступа.
Скопируйте значение key1. Этот ключ используется для сопоставления диска с учетной записью хранения из созданной ранее виртуальной машины.
В поле поиска на портале введите виртуальные машины. В результатах поиска выберите Виртуальные машины.
Выберите vm-1.
Развертывание операций. Выберите команду "Выполнить".
Выберите RunPowerShellScript.
Вставьте следующий скрипт в скрипт выполнения команд.
## Enter the storage account key for the denied storage account that you recorded earlier.
$storageAcctKey2 = (pasted from procedure above)
$acctKey = ConvertTo-SecureString -String $storageAcctKey2 -AsPlainText -Force
## Replace the login account with the name of the storage account you created.
$credential = New-Object System.Management.Automation.PSCredential -ArgumentList ("Azure\deniedaccount"), $acctKey
## Replace the storage account name with the name of the storage account you created.
New-PSDrive -Name Z -PSProvider FileSystem -Root "\\deniedaccount.file.core.windows.net\file-share" -Credential $credential
Выберите Выполнить.
В окне вывода появится следующее сообщение об ошибке:
New-PSDrive : Access is denied
At line:1 char:1
+ New-PSDrive -Name Z -PSProvider FileSystem -Root "\\deniedaccount8675 ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (Z:PSDriveInfo) [New-PSDrive], Win32Exception
+ FullyQualifiedErrorId : CouldNotMapNetworkDrive,Microsoft.PowerShell.Commands.NewPSDriveCommand
Карта диска запрещена из-за политики конечной точки службы, которая ограничивает доступ к учетной записи хранения.
Завершив использование созданных ресурсов, можно удалить группу ресурсов и все ее ресурсы.
Войдите на портал Azure; найдите в поиске и выберите Группы ресурсов.
На странице групп ресурсов выберите группу ресурсов test-rg.
На странице test-rg выберите "Удалить группу ресурсов".
Введите test-rg в поле Ввод имени группы ресурсов, чтобы подтвердить удаление, а затем нажмите кнопку "Удалить".
Вы можете удалить ненужную группу ресурсов и все содержащиеся в ней ресурсы с помощью командлета Remove-AzResourceGroup:
$params = @{
Name = "test-rg"
Force = $true
}
Remove-AzResourceGroup @params
Вы можете удалить ненужную группу ресурсов и все содержащиеся в ней ресурсы, выполнив команду az group delete.
az group delete \
--name test-rg \
--yes \
--no-wait
Следующие шаги
При работе с этим руководстве вы создали политику конечной точки службы и связали ее с подсетью. Чтобы узнать больше о политиках конечной точки службы, ознакомьтесь с обзором политик конечной точки службы.