Брандмауэрный доступ из службы приложений Azure к хранилищу больших двоичных объектов - PullRequest
0 голосов
/ 03 мая 2019

Я пытаюсь заблокировать доступ к хранилищу больших двоичных объектов службе приложений. У меня есть следующий код powershell, который получает возможные исходящие ip-адреса от запускаемой мной службы приложений, а затем ограничивает доступ к хранилищу больших двоичных объектов этими ip-адресами:

Write-Host ("Setting blob storage access restrictions")
$appServiceIPAddresses = (Get-AzureRmWebApp -ResourceGroupName $resourceGroupName -name $webSiteName).PossibleOutboundIpAddresses.Split(",")
$currentStorageAccessRules = (Get-AzureRmStorageAccountNetworkRuleSet -ResourceGroupName $resourceGroupName -Name $storageAccountName).IpRules 
$currentStorageAccessRules = {$currentStorageAccessRules}.Invoke() # Convert to modifiable list
foreach($ipAddress in $appServiceIPAddresses) {
    if (($currentStorageAccessRules | Where-Object { $_.IPAddressOrRange -eq $ipAddress }) -ne $null) {
        Write-Host("IP $ipAddress already has access to blob storage $storageAccountName")
    } else {
        Write-Host("Allowing IP $ipAddress access to blob storage $storageAccountName")
        $ipRule = New-Object -TypeName Microsoft.Azure.Commands.Management.Storage.Models.PSIpRule
        $ipRule.Action = 'Allow'
        $ipRule.IPAddressOrRange = $ipAddress
        $currentStorageAccessRules.Add($ipRule)
    }
}
Update-AzureRmStorageAccountNetworkRuleSet -ResourceGroupName $resourceGroupName -Name $storageAccountName -IPRule $currentStorageAccessRules -DefaultAction Deny
Write-Host ("Updated blob storage access restrictions")

Это устанавливает все IP-адреса, которые я ожидаю правильно, однако теперь я получаю 403 Forbiden, когда служба приложения пытается получить доступ к хранилищу больших двоичных объектов. Все контейнеры являются частными, поэтому не должно быть URL-доступа к BLOB-объектам. Я просто обращаюсь к ним программно из службы приложений. Кто-нибудь может понять, почему вышеуказанный подход не работает?

Ответы [ 2 ]

0 голосов
/ 08 мая 2019

Согласно статье здесь: https://docs.microsoft.com/en-us/azure/storage/common/storage-network-security "Правила IP-сети не влияют на запросы, исходящие из того же региона Azure, что и учетная запись хранения. Используйте правила виртуальной сети, чтобы разрешать запросы из одного региона".так что мои правила выше были бы проигнорированы, и мне нужно настроить виртуальную сеть для блокировки доступа.Надеюсь, это кому-нибудь поможет.

Дополнительная информация о том, как это сделать, находится здесь: https://docs.microsoft.com/en-us/azure/app-service/web-sites-integrate-with-vnet

0 голосов
/ 03 мая 2019

Скорее всего, это может быть проблема с разрешениями, в зависимости от того, какой конкретный метод аутентификации вы используете для доступа к учетной записи хранения, их три: SAS, ключ и имя хранилища и AAD.Вы должны убедиться, что у вас есть доступ к хранилищу BLOB-объектов в качестве службы, в зависимости от того, какую версию вы используете.Я бы рекомендовал проверить эту документацию , которая содержит больше информации.

Кроме того, в настройках брандмауэра попробуйте установить флажок «Разрешить доверенным службам Microsoft доступ к этой учетной записи хранения» и повторите попытку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...