Политики конечной точки службы позволяют вам фильтровать трафик виртуальной сети к конкретным ресурсам Azure через конечные точки службы. Если вы не работали с политиками конечной точки службы, ознакомьтесь с обзором политик конечной точки службы, чтобы получить дополнительные сведения.
В этом руководстве описано следующее:
- Создайте виртуальную сеть.
- Добавьте подсеть и включите конечную точку службы для хранилища Azure.
- Создайте два аккаунта хранилища Azure и разрешите сетевой доступ к ним из подсети в виртуальной сети.
- Формирование политики для конечных точек службы для разрешения доступа только к одной из учетных записей хранения.
- Развертывание виртуальной машины в подсети.
- Подтверждение доступа из подсети к разрешенной учетной записи хранения.
- Убедитесь, что к запрещенной учетной записи хранения закрыт доступ из подсети.
Предварительные условия
Azure Cloud Shell
В 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.
Если у вас нет аккаунта Azure, создайте бесплатную учетную запись перед началом.
- Для работы с этой статьей требуется Azure CLI версии 2.0.28 или более поздней. Если вы используете Azure Cloud Shell, последняя версия уже установлена.
Создание виртуальной сети и включение конечной точки службы
Создайте виртуальную сеть для хранения ресурсов, создаваемых в этом руководстве.
В поле поиска на портале введите виртуальные сети. В результатах поиска выберите Виртуальные сети.
Нажмите кнопку +Создать , чтобы создать новую виртуальную сеть.
Введите или выберите следующие сведения на вкладке "Основные сведения" в разделе "Создание виртуальной сети".
Настройки |
Значение |
Сведения о проекте |
|
Подписка |
Выберите свою подписку. |
Группа ресурсов |
Выберите Создать новый.
Введите test-rg в name.
Нажмите кнопку ОК. |
Имя. |
Введите vnet-1. |
Область/регион |
Выберите Западная часть США 2. |
Выберите Далее.
Выберите Далее.
На вкладке IP-адресов в подсетях выберите подсеть по умолчанию.
Введите или выберите следующие сведения в разделе Изменить подсеть.
Настройки |
Значение |
Имя. |
Введите subnet-1. |
Конечные точки службы |
|
Сервисы; |
|
В раскрывающемся меню выберите Microsoft.Storage. |
|
Выберите Сохранить.
Выберите Просмотреть и создать.
Нажмите кнопку создания.
Перед созданием виртуальной сети необходимо создать для нее группу ресурсов и другие компоненты, указанные в этой статье. Создайте группу ресурсов с помощью New-AzResourceGroup. В следующем примере создается группа ресурсов с именем test-rg:
$rg = @{
ResourceGroupName = "test-rg"
Location = "westus2"
}
New-AzResourceGroup @rg
Создайте виртуальную сеть с помощью команды New-AzVirtualNetwork. В следующем примере создается виртуальная сеть с именем vnet-1 с префиксом адреса 10.0.0.0.0/16.
$vnet = @{
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "vnet-1"
AddressPrefix = "10.0.0.0/16"
}
$virtualNetwork = New-AzVirtualNetwork @vnet
Создайте конфигурацию подсети с помощью командлета Set-AzVirtualNetworkSubnetConfig, а затем сохраните эту конфигурацию подсети в виртуальную сеть с помощью командлета Set-AzVirtualNetwork. В следующем примере в виртуальную сеть добавляется подсеть с именем subnet-1 и создается конечная точка службы для Microsoft.Storage.
$subnet = @{
Name = "subnet-1"
VirtualNetwork = $virtualNetwork
AddressPrefix = "10.0.0.0/24"
ServiceEndpoint = "Microsoft.Storage"
}
Add-AzVirtualNetworkSubnetConfig @subnet
$virtualNetwork | Set-AzVirtualNetwork
Перед созданием виртуальной сети необходимо создать для нее группу ресурсов и другие компоненты, указанные в этой статье. Создайте группу ресурсов с помощью команды az group create. В следующем примере создается группа ресурсов с именем test-rg в расположении westus2 .
az group create \
--name test-rg \
--location westus2
Создайте виртуальную сеть с одной подсетью при помощи команды az network vnet create.
az network vnet create \
--name vnet-1 \
--resource-group test-rg \
--address-prefix 10.0.0.0/16 \
--subnet-name subnet-1 \
--subnet-prefix 10.0.0.0/24
В этом примере для подсети Microsoft.Storage
создается конечная точка службы .
az network vnet subnet create \
--vnet-name vnet-1 \
--resource-group test-rg \
--name subnet-1 \
--address-prefix 10.0.0.0/24 \
--service-endpoints Microsoft.Storage
Ограничение сетевого доступа для подсети
Создайте группу безопасности сети и правила, ограничивающие сетевой доступ для подсети.
Создание группы безопасности сети
В поле поиска на портале введите группы безопасности сети. В результатах поиска выберите Группы безопасности сети.
Нажмите кнопку "+ Создать ", чтобы создать новую группу безопасности сети.
На вкладке "Основные сведения" в разделе "Создание группы безопасности сети" введите или выберите следующие сведения.
Настройки |
Значение |
Сведения о проекте |
|
Подписка |
Выберите свою подписку. |
Группа ресурсов |
Выберите test-rg. |
Имя. |
Введите nsg-1. |
Область/регион |
Выберите Западная часть США 2. |
Выберите Просмотреть и создать.
Нажмите кнопку создания.
Создание правил группы безопасности сети
В поле поиска на портале введите группы безопасности сети. В результатах поиска выберите Группы безопасности сети.
Выберите nsg-1.
Разверните Параметры. Выберите правила безопасности исходящего трафика.
Нажмите кнопку +Добавить, чтобы добавить новое правило безопасности исходящего трафика.
В окне Добавление правила безопасности для входящего трафика введите или выберите указанные ниже значения параметров.
Настройки |
Значение |
Оригинал |
Выберите Service Tag (Тег службы). |
Тег службы источника |
Выберите VirtualNetwork. |
Диапазоны исходных портов |
Введите *. |
Назначение |
Выберите Service Tag (Тег службы). |
Тег службы назначения |
Выберите Хранилище. |
Услуга |
Выберите Настраиваемый. |
Диапазоны портов назначения |
Введите *. |
Протокол |
Выберите Любой. |
Действие |
Выберите Разрешить. |
Приоритет |
Введите 100. |
Имя. |
Введите allow-storage-all. |
Выберите Добавить.
Нажмите кнопку +Добавить, чтобы добавить другое правило безопасности исходящего трафика.
В окне Добавление правила безопасности для входящего трафика введите или выберите указанные ниже значения параметров.
Настройки |
Значение |
Оригинал |
Выберите Service Tag (Тег службы). |
Тег службы источника |
Выберите VirtualNetwork. |
Диапазоны исходных портов |
Введите *. |
Назначение |
Выберите Service Tag (Тег службы). |
Тег службы назначения |
Выберите Интернет. |
Услуга |
Выберите Настраиваемый. |
Диапазоны портов назначения |
Введите *. |
Протокол |
Выберите Любой. |
Действие |
Выберите Отклонить. |
Приоритет |
Введите 110. |
Имя. |
Введите deny-internet-all. |
Выберите Добавить.
Разверните Параметры. Выберите Подсети.
Выберите Связать.
В разделе "Связать подсеть" введите или выберите следующие сведения.
Настройки |
Значение |
Виртуальная сеть |
Выберите vnet-1 (test-rg). |
Подсеть |
Выберите подсеть-1. |
Нажмите ОК.
Создание правил безопасности для группы безопасности сети с New-AzNetworkSecurityRuleConfig. Приведенное ниже правило разрешает исходящий доступ к общедоступным IP-адресам, назначенным службе хранилища Azure.
$r1 = @{
Name = "Allow-Storage-All"
Access = "Allow"
DestinationAddressPrefix = "Storage"
DestinationPortRange = "*"
Direction = "Outbound"
Priority = 100
Protocol = "*"
SourceAddressPrefix = "VirtualNetwork"
SourcePortRange = "*"
}
$rule1 = New-AzNetworkSecurityRuleConfig @r1
Следующее правило запрещает доступ ко всем общедоступным IP-адресам. Предыдущее правило переопределяет это правило ввиду более высокого приоритета. Оно предоставляет доступ к общедоступным IP-адресам службы хранилища Azure.
$r2 = @{
Name = "Deny-Internet-All"
Access = "Deny"
DestinationAddressPrefix = "Internet"
DestinationPortRange = "*"
Direction = "Outbound"
Priority = 110
Protocol = "*"
SourceAddressPrefix = "VirtualNetwork"
SourcePortRange = "*"
}
$rule2 = New-AzNetworkSecurityRuleConfig @r2
Создайте группу безопасности сети с помощью команды New-AzNetworkSecurityGroup. В следующем примере создается группа безопасности сети с именем nsg-1.
$securityRules = @($rule1, $rule2)
$nsgParams = @{
ResourceGroupName = "test-rg"
Location = "westus2"
Name = "nsg-1"
SecurityRules = $securityRules
}
$nsg = New-AzNetworkSecurityGroup @nsgParams
Свяжите группу безопасности сети с подсетью subnet-1 с помощью Set-AzVirtualNetworkSubnetConfig, а затем запишите конфигурацию подсети в виртуальную сеть. В следующем примере группа безопасности сети nsg-1 связывается с подсетью-1.
$subnetConfig = @{
VirtualNetwork = $VirtualNetwork
Name = "subnet-1"
AddressPrefix = "10.0.0.0/24"
ServiceEndpoint = "Microsoft.Storage"
NetworkSecurityGroup = $nsg
}
Set-AzVirtualNetworkSubnetConfig @subnetConfig
$virtualNetwork | Set-AzVirtualNetwork
Создайте группу безопасности сети с помощью команды az network nsg create. В следующем примере создается группа безопасности сети с именем nsg-1.
az network nsg create \
--resource-group test-rg \
--name nsg-1
Назначьте группу безопасности сети подсети subnet-1 с помощью az network vnet subnet update. В следующем примере группа безопасности сети nsg-1 связывается с подсетью-1.
az network vnet subnet update \
--vnet-name vnet-1 \
--name subnet-1 \
--resource-group test-rg \
--network-security-group nsg-1
Создайте правила безопасности командой az network nsg rule create. Приведенное ниже правило разрешает исходящий доступ к общедоступным IP-адресам, назначенным службе хранилища Azure.
az network nsg rule create \
--resource-group test-rg \
--nsg-name nsg-1 \
--name Allow-Storage-All \
--access Allow \
--protocol "*" \
--direction Outbound \
--priority 100 \
--source-address-prefix "VirtualNetwork" \
--source-port-range "*" \
--destination-address-prefix "Storage" \
--destination-port-range "*"
Каждая группа безопасности сети содержит несколько правил безопасности по умолчанию. Следующее правило переопределяет правило безопасности по умолчанию, разрешающее исходящий доступ ко всем общедоступным IP-адресам. Параметр destination-address-prefix "Internet"
запрещает доступ ко всем общедоступным IP-адресам. Предыдущее правило переопределяет это правило ввиду более высокого приоритета. Оно предоставляет доступ к общедоступным IP-адресам службы хранилища Azure.
az network nsg rule create \
--resource-group test-rg \
--nsg-name nsg-1 \
--name Deny-Internet-All \
--access Deny \
--protocol "*" \
--direction Outbound \
--priority 110 \
--source-address-prefix "VirtualNetwork" \
--source-port-range "*" \
--destination-address-prefix "Internet" \
--destination-port-range "*"
Ограничение сетевого доступа к учетным записям хранения Azure
Действия, необходимые для ограничения сетевого доступа к ресурсам, созданным с помощью служб Azure, использующих конечные точки службы, отличаются в зависимости от службы. Ознакомьтесь с документацией по отдельным службам, чтобы получить точные инструкции для них. В оставшейся части этой статьи в качестве примера приведены инструкции по ограничению сетевого доступа для учетной записи хранения Azure.
Создание двух учетных записей хранения
В поле поиска на портале введите аккаунты хранилища. Выберите Учетные записи хранения в результатах поиска.
Нажмите кнопку +Создать , чтобы создать новую учетную запись хранения.
В разделе "Создание учетной записи хранения" введите или выберите следующие сведения.
Настройки |
Значение |
Сведения о проекте |
|
Подписка |
Выберите свою подписку. |
Группа ресурсов |
Выберите test-rg. |
Сведения об экземпляре |
|
Имя учетной записи хранения |
Введите allowedaccount(random-number). Примечание. Имя учетной записи хранения должно быть уникальным. Добавьте случайное число в конец имени allowedaccount . |
Область/регион |
Выберите Западная часть США 2. |
Производительность |
Выберите Стандартное. |
Избыточность |
Выберите Локально избыточное хранилище (LRS). |
Нажмите кнопку "Далее", пока не перейдете на вкладку "Защита данных".
В средстве восстановления отмените выбор всех параметров.
Выберите Просмотреть и создать.
Нажмите кнопку создания.
Повторите предыдущие шаги, чтобы создать другую учетную запись хранения со следующими сведениями.
Настройки |
Значение |
Имя учетной записи хранения |
Введите deniedaccount(random-number). |
Создайте допустимую учетную запись хранения Azure с помощью команды New-AzStorageAccount.
$storageAcctParams = @{
Location = 'westus2'
Name = 'allowedaccount'
ResourceGroupName = 'test-rg'
SkuName = 'Standard_LRS'
Kind = 'StorageV2'
}
New-AzStorageAccount @storageAcctParams
Используйте ту же команду, чтобы создать учетную запись хранилища Azure с ограниченным доступом, но измените её имя на deniedaccount
.
$storageAcctParams = @{
Location = 'westus2'
Name = 'deniedaccount'
ResourceGroupName = 'test-rg'
SkuName = 'Standard_LRS'
Kind = 'StorageV2'
}
New-AzStorageAccount @storageAcctParams
Создайте две учетные записи хранения Azure с помощью команды az storage account create.
storageAcctName1="allowedaccount"
az storage account create \
--name $storageAcctName1 \
--resource-group test-rg \
--sku Standard_LRS \
--kind StorageV2
Используйте ту же команду, чтобы создать учетную запись хранилища Azure с ограниченным доступом, но измените её имя на deniedaccount
.
storageAcctName2="deniedaccount"
az storage account create \
--name $storageAcctName2 \
--resource-group test-rg \
--sku Standard_LRS \
--kind StorageV2
Создание общих папок
В поле поиска на портале введите аккаунты хранилища. Выберите Учетные записи хранения в результатах поиска.
Выберите разрешенныйаккаунт(random-number).
Разверните раздел хранилища данных и выберите общие папки.
Нажмите + Общий доступ к файлам.
В новом файловом хранилище введите или выберите следующие сведения.
Настройки |
Значение |
Имя. |
Введите файловый обмен. |
Оставьте остальные параметры в качестве значения по умолчанию и нажмите кнопку "Проверить и создать".
Нажмите кнопку создания.
Повторите предыдущие шаги, чтобы создать общую папку в deniedaccount(random-number).
Создание файлового хранилища для разрешенной учетной записи хранения
Используйте Get-AzStorageAccountKey, чтобы получить ключ учетной записи хранения для разрешенной учетной записи хранения. Вы используете этот ключ на следующем шаге для создания доступа к файлам в разрешенной учетной записи для хранения данных.
$storageAcctName1 = "allowedaccount"
$storageAcctParams1 = @{
ResourceGroupName = "test-rg"
AccountName = $storageAcctName1
}
$storageAcctKey1 = (Get-AzStorageAccountKey @storageAcctParams1).Value[0]
Создайте объект контекста для учетной записи хранения и ключа, выполнив командлет New-AzStorageContext. Контекст включает имя учетной записи для хранения и ключ.
$storageContext1 = New-AzStorageContext $storageAcctName1 $storageAcctKey1
Создайте с помощью New-AzStorageShare общий доступ к файлу.
$share1 = New-AzStorageShare file-share -Context $storageContext1
Создание файловой общей папки с учетной записью с ограниченным доступом.
Используйте Get-AzStorageAccountKey, чтобы получить ключ учетной записи хранения для разрешенной учетной записи хранения. Этот ключ будет использоваться на следующем шаге, чтобы создать общий доступ к файлу в учетной записи хранилища, доступ к которой запрещен.
$storageAcctName2 = "deniedaccount"
$storageAcctParams2 = @{
ResourceGroupName = "test-rg"
AccountName = $storageAcctName2
}
$storageAcctKey2 = (Get-AzStorageAccountKey @storageAcctParams2).Value[0]
Создайте объект контекста для учетной записи хранения и ключа, выполнив командлет New-AzStorageContext. Контекст включает имя учетной записи для хранения и ключ.
$storageContext2= New-AzStorageContext $storageAcctName2 $storageAcctKey2
Создайте с помощью New-AzStorageShare общий доступ к файлу.
$share2 = New-AzStorageShare file-share -Context $storageContext2
Создание файлового хранилища для разрешенной учетной записи хранения
Получите строку подключения для учетной записи хранения в переменной с помощью az storage account show-connection-string. Строка подключения используется для создания файлового общего ресурса на более позднем этапе.
saConnectionString1=$(az storage account show-connection-string \
--name $storageAcctName1 \
--resource-group test-rg \
--query 'connectionString' \
--out tsv)
Создайте файловое хранилище в хранилищном аккаунте командой az storage share create. В более позднем этапе этот файловый ресурс будет подмонтирован для подтверждения наличия к нему сетевого доступа.
az storage share create \
--name file-share \
--quota 2048 \
--connection-string $saConnectionString1 > /dev/null
Создание файловой общей папки с учетной записью с ограниченным доступом.
Получите строку подключения для учетной записи хранения в переменной с помощью az storage account show-connection-string. Строка подключения используется для создания файлового общего ресурса на более позднем этапе.
saConnectionString2=$(az storage account show-connection-string \
--name $storageAcctName2 \
--resource-group test-rg \
--query 'connectionString' \
--out tsv)
Создайте файловое хранилище в хранилищном аккаунте командой az storage share create. В более позднем этапе этот файловый ресурс будет подмонтирован для подтверждения наличия к нему сетевого доступа.
az storage share create \
--name file-share \
--quota 2048 \
--connection-string $saConnectionString2 > /dev/null
Это важно
Корпорация Майкрософт рекомендует использовать самый безопасный поток проверки подлинности. Поток проверки подлинности, описанный в этой процедуре, требует очень высокого уровня доверия к приложению и несет риски, которые отсутствуют в других потоках. Этот поток следует использовать только в том случае, если другие более безопасные потоки, такие как идентификации с управлением, не являются приемлемыми.
Запретить доступ ко всем сетевым учетным записям хранения
По умолчанию учетные записи хранения принимают сетевые подключения клиентов в любой сети. Чтобы ограничить сетевой доступ к учетным записям хранения, можно настроить учетную запись хранения для приема подключений только из определенных сетей. В этом примере учетная запись хранения настроена для приема подключений только из подсети виртуальной сети, созданной ранее.
В поле поиска на портале введите аккаунты хранилища. Выберите Учетные записи хранения в результатах поиска.
Выберите разрешенныйаккаунт(random-number).
Разверните категорию Security + networking и выберите Networking.
В брандмауэрах и виртуальных сетях в общедоступном сетевом доступе выберите "Включено" из выбранных виртуальных сетей и IP-адресов.
В виртуальных сетях выберите + Добавить существующую виртуальную сеть.
В разделе "Добавление сетей" введите или выберите следующие сведения.
Настройки |
Значение |
Подписка |
Выберите свою подписку. |
Виртуальные сети |
Выберите vnet-1. |
подсети; |
Выберите подсеть-1. |
Выберите Добавить.
Выберите Сохранить.
Повторите предыдущие шаги, чтобы запретить сетевой доступ к denyedaccount(random-number).
Используйте Update-AzStorageAccountNetworkRuleSet , чтобы запретить доступ к учетным записям хранения, кроме виртуальной сети и подсети, созданной ранее. После запрета доступа к сети учетная запись хранения недоступна из любой сети.
$storageAcctParams1 = @{
ResourceGroupName = "test-rg"
Name = $storageAcctName1
DefaultAction = "Deny"
}
Update-AzStorageAccountNetworkRuleSet @storageAcctParams1
$storageAcctParams2 = @{
ResourceGroupName = "test-rg"
Name = $storageAcctName2
DefaultAction = "Deny"
}
Update-AzStorageAccountNetworkRuleSet @storageAcctParams2
Включение сетевого доступа только из подсети виртуальной сети
Извлеките созданную виртуальную сеть, выполнив командлет Get-AzVirtualNetwork, а затем передайте объект подсети Private в переменную с помощью командлета Get-AzVirtualNetworkSubnetConfig:
$privateSubnetParams = @{
ResourceGroupName = "test-rg"
Name = "vnet-1"
}
$privateSubnet = Get-AzVirtualNetwork @privateSubnetParams | Get-AzVirtualNetworkSubnetConfig -Name "subnet-1"
Разрешить сетевой доступ к учетной записи хранения из подсети-1 с помощью Add-AzStorageAccountNetworkRule.
$networkRuleParams1 = @{
ResourceGroupName = "test-rg"
Name = $storageAcctName1
VirtualNetworkResourceId = $privateSubnet.Id
}
Add-AzStorageAccountNetworkRule @networkRuleParams1
$networkRuleParams2 = @{
ResourceGroupName = "test-rg"
Name = $storageAcctName2
VirtualNetworkResourceId = $privateSubnet.Id
}
Add-AzStorageAccountNetworkRule @networkRuleParams2
По умолчанию учетные записи хранения принимают сетевые подключения клиентов в любой сети. Чтобы ограничить доступ выбранными сетями, измените действие по умолчанию на Запретить, выполнив команду az storage account update. После запрета доступа к сети учетная запись хранения недоступна из любой сети.
az storage account update \
--name $storageAcctName1 \
--resource-group test-rg \
--default-action Deny
az storage account update \
--name $storageAcctName2 \
--resource-group test-rg \
--default-action Deny
Включение сетевого доступа только из подсети виртуальной сети
С помощью команды az storage account network-rule add разрешите сетевой доступ к учетной записи хранения из подсети subnet-1.
az storage account network-rule add \
--resource-group test-rg \
--account-name $storageAcctName1 \
--vnet-name vnet-1 \
--subnet subnet-1
az storage account network-rule add \
--resource-group test-rg \
--account-name $storageAcctName2 \
--vnet-name vnet-1 \
--subnet subnet-1
Применить политику для разрешения доступа к действительной учетной записи хранения
Вы можете создать политику конечной точки службы. Политика гарантирует, что пользователи в виртуальной сети могут получать доступ только к безопасным и разрешенным учетным записям служба хранилища Azure. Эта политика содержит список разрешенных учетных записей хранения, применяемых к подсети виртуальной сети, подключенной к хранилищу через конечные точки службы.
Создание политики конечной точки службы
В этом разделе создается определение политики со списком разрешенных ресурсов для доступа к конечной точке службы.
В поле поиска на портале введите политику конечной точки службы. Выберите Политики конечных точек службы в результатах поиска.
Нажмите кнопку +Создать , чтобы создать политику конечной точки службы.
Введите или выберите следующие сведения на вкладке Основные в разделе Создание политики конечной точки службы.
Настройки |
Значение |
Сведения о проекте |
|
Подписка |
Выберите свою подписку. |
Группа ресурсов |
Выберите test-rg. |
Сведения об экземпляре |
|
Имя. |
Введите service-endpoint-policy. |
Расположение |
Выберите Западная часть США 2. |
Выберите Далее: Определения политик.
Выберите + Добавить ресурс в ресурсах.
В поле "Добавление ресурса" введите или выберите следующие сведения:
Настройки |
Значение |
Услуга |
Выберите Microsoft.Storage. |
Область |
Выбор одной учетной записи |
Подписка |
Выберите свою подписку. |
Группа ресурсов |
Выберите test-rg. |
Ресурс |
Выберите allowedaccount(random-number) |
Выберите Добавить.
Выберите Просмотреть и создать.
Нажмите кнопку создания.
Чтобы получить идентификатор ресурса для первой (разрешенной) учетной записи хранения, используйте Get-AzStorageAccount.
$storageAcctParams1 = @{
ResourceGroupName = "test-rg"
Name = $storageAcctName1
}
$resourceId = (Get-AzStorageAccount @storageAcctParams1).id
Чтобы создать определение политики, позволяющее использование предыдущего ресурса, используйте New-AzServiceEndpointPolicyDefinition.
$policyDefinitionParams = @{
Name = "policy-definition"
Description = "Service Endpoint Policy Definition"
Service = "Microsoft.Storage"
ServiceResource = $resourceId
}
$policyDefinition = New-AzServiceEndpointPolicyDefinition @policyDefinitionParams
Используйте New-AzServiceEndpointPolicy , чтобы создать политику конечной точки службы с определением политики.
$sepolicyParams = @{
ResourceGroupName = "test-rg"
Name = "service-endpoint-policy"
Location = "westus2"
ServiceEndpointPolicyDefinition = $policyDefinition
}
$sepolicy = New-AzServiceEndpointPolicy @sepolicyParams
Политики конечной точки службы применяются к конечным точкам службы. Начните с создания политики конечной точки службы. Затем создайте определения политики для утверждения учетных записей Azure Storage для этой подсети в рамках данной политики.
Используйте az storage account show , чтобы получить идентификатор ресурса для разрешенной учетной записи хранения.
serviceResourceId=$(az storage account show --name allowedaccount --query id --output tsv)
Создание политики конечной точки службы
az network service-endpoint policy create \
--resource-group test-rg \
--name service-endpoint-policy \
--location westus2
Создайте и добавьте определение политики для разрешения предыдущей учетной записи Azure Storage в политику конечной точки службы.
az network service-endpoint policy-definition create \
--resource-group test-rg \
--policy-name service-endpoint-policy \
--name policy-definition \
--service "Microsoft.Storage" \
--service-resources $serviceResourceId
Свяжите политику конечной точки службы с подсетью.
После создания политики конечной точки службы ее необходимо привязать к целевой подсети с конфигурацией конечной точки службы для хранилища Azure.
В поле поиска на портале введите политику конечной точки службы. Выберите Политики конечных точек службы в результатах поиска.
Выберите service-endpoint-policy.
Разверните раздел "Параметры" и выберите "Связанные подсети".
Выберите + Изменить связь подсети.
В изменении связи подсети выберите vnet-1 и подсеть-1.
Выберите Применить.
Используйте Set-AzVirtualNetworkSubnetConfig , чтобы связать политику конечной точки службы с подсетью.
$subnetConfigParams = @{
VirtualNetwork = $VirtualNetwork
Name = "subnet-1"
AddressPrefix = "10.0.0.0/24"
NetworkSecurityGroup = $nsg
ServiceEndpoint = "Microsoft.Storage"
ServiceEndpointPolicy = $sepolicy
}
Set-AzVirtualNetworkSubnetConfig @subnetConfigParams
$virtualNetwork | Set-AzVirtualNetwork
Используйте az network vnet subnet update , чтобы связать политику конечной точки службы с подсетью.
az network vnet subnet update \
--vnet-name vnet-1 \
--resource-group test-rg \
--name subnet-1 \
--service-endpoints Microsoft.Storage \
--service-endpoint-policy service-endpoint-policy
Предупреждение
Перед тем как связать политику с подсетью, убедитесь, что все ресурсы, доступ к которым осуществляется из данной подсети, добавлены в эту политику. После связывания политики будет разрешен доступ только к разрешенным ресурсам из конечных точек службы.
Убедитесь, что управляемые службы Azure не существуют в подсети, связанной с политикой конечной точки службы.
Доступ к ресурсам хранилища Azure во всех регионах будет ограничен в соответствии с политикой конечной точки службы этой подсети.
Проверка ограничения доступа для учетных записей хранения Azure
Чтобы протестировать сетевой доступ к учетной записи хранения, разверните VM в каждой подсети.
Развертывание виртуальной машины
В поле поиска на портале введите виртуальные машины. В результатах поиска выберите Виртуальные машины.
На вкладке Основные сведения страницы Создание виртуальной машины введите или выберите следующие значения параметров:
Настройки |
Значение |
Сведения о проекте |
|
Подписка |
Выберите свою подписку. |
Группа ресурсов |
Выберите test-rg. |
Сведения об экземпляре |
|
Имя виртуальной машины |
Введите vm-1. |
Область/регион |
Выберите (США) Западная часть США 2. |
Параметры доступности |
Выберите Избыточность инфраструктуры не требуется. |
Тип безопасности |
Выберите Стандартное. |
Изображение |
Выберите Windows Server 2022 Datacenter - x64 Gen2. |
Размер |
Выберите размер. |
Учетная запись администратора |
|
Имя пользователя |
Введите имя пользователя. |
Пароль |
Введите пароль. |
Подтверждение пароля |
Введите пароль еще раз. |
Правила входящего порта |
|
Нажмите кнопку "Далее": диски, а затем нажмите кнопку "Далее: сеть".
На вкладке Сеть введите или выберите следующие значения параметров.
Настройки |
Значение |
Сетевой интерфейс |
|
Виртуальная сеть |
Выберите vnet-1. |
Подсеть |
Выберите подсеть-1 (10.0.0.0/24). |
Общедоступный IP-адрес |
Выберите Отсутствует. |
Группа безопасности сетевого интерфейса |
Выберите Отсутствует. |
Оставьте остальные параметры в качестве значения по умолчанию и нажмите кнопку "Просмотр и создание".
Нажмите кнопку создания.
Создайте виртуальную машину в подсети подсети-1 с помощью New-AzVM. При выполнении следующей команды вам будет предложено указать учетные данные. В качестве вводимых значений указываются имя пользователя и пароль для виртуальной машины.
$vmParams = @{
ResourceGroupName = "test-rg"
Location = "westus2"
VirtualNetworkName = "vnet-1"
SubnetName = "subnet-1"
Name = "vm-1"
}
New-AzVm @vmParams
Создайте виртуальную машину в подсети подсети-1 с помощью az vm create.
az vm create \
--resource-group test-rg \
--name vm-1 \
--image Win2022Datacenter \
--admin-username azureuser \
--vnet-name vnet-1 \
--subnet subnet-1
Дождитесь завершения развертывания виртуальной машины, прежде чем продолжить выполнение следующих действий.
Подтверждение доступа для разрешенной учетной записи хранения
Войдите на портал Azure.
В поле поиска на портале введите аккаунты хранилища. Выберите Учетные записи хранения в результатах поиска.
Выберите разрешенныйаккаунт(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
Следующие шаги
В этом руководстве вы создали политику конечной точки службы и назначили ее подсети. Чтобы узнать больше о политиках конечной точки службы, ознакомьтесь с обзором политик конечной точки службы.