Настройка брандмауэра IP-адресов в Azure Cosmos DB
Область применения: Nosql Mongodb Кассандра Гремлин Таблица
Для защиты данных, хранящихся в учетной записи, в Azure Cosmos DB реализована поддержка модели авторизации на основе секретов. Проверка целостности данных в этой модели осуществляется с использованием надежного кода проверки подлинности сообщений с помощью хэш-функций (HMAC). Для поддержки входящего трафика брандмауэра Azure Cosmos DB использует политики контроля доступа на основе IP-адресов. Эта модель похожа на правила брандмауэра традиционной системы базы данных и обеспечивает другой уровень безопасности для вашей учетной записи. С помощью брандмауэров можно настроить учетную запись Azure Cosmos DB только из утвержденного набора компьютеров и (или) облачных служб. Доступ к данным, хранящимся в базе данных Azure Cosmos DB из этих утвержденных наборов компьютеров и служб, по-прежнему потребует, чтобы вызывающий объект присутствовал на допустимом маркере авторизации.
Управление доступом на основе IP-адресов
По умолчанию ваша учетная запись Azure Cosmos DB доступна из Интернета, если запрос сопровождается допустимым маркером авторизации. Чтобы настроить управление доступом на основе политик IP, пользователь должен предоставить набор IP-адресов или диапазонов IP-адресов в форме CIDR (маршрутизация между доменами без класса), чтобы включить в список разрешенных IP-адресов клиента для доступа к определенной учетной записи Azure Cosmos DB. После применения этой конфигурации любые запросы, полученные от компьютеров, IP-адреса которых не входят в список разрешенных, получат ответ "Ошибка 403: запрещено". При использовании брандмауэра IP рекомендуется разрешить портал Azure доступ к учетной записи. Доступ необходим для разрешения использования обозревателя данных и получения метрик для учетной записи, отображающейся на портал Azure. При использовании обозревателя данных нужно не только предоставить порталу Azure доступ к учетной записи, но и изменить параметры брандмауэра, добавив текущий IP-адрес в его правила. Изменения брандмауэра могут занять до 15 минут для распространения, и брандмауэр может проявлять несогласованное поведение в течение этого периода.
Брандмауэр на основе IP-адресов можно объединить с подсетью и управлением доступом к виртуальной сети. Объединяя их, вы можете ограничить доступ к любому источнику с общедоступным IP-адресом и (или) из определенной подсети в виртуальной сети. Дополнительные сведения об использовании подсети и управления доступом на основе виртуальной сети см. в статье "Доступ к ресурсам Azure Cosmos DB" из виртуальных сетей.
Для сводки маркер авторизации всегда требуется для доступа к учетной записи Azure Cosmos DB. Если брандмауэр IP и виртуальная сеть контроль доступа списки (ACL) не настроены, учетная запись Azure Cosmos DB можно получить с помощью маркера авторизации. После настройки брандмауэра IP-адресов или списков ACL виртуальной сети в учетной записи Azure Cosmos DB только запросы, поступающие из указанных источников (и с маркером авторизации), получают допустимые ответы.
Вы можете защитить данные, хранимые в учетной записи Azure Cosmos DB, с помощью брандмауэров IP-адресов. Для фильтрации входящего трафика Azure Cosmos DB поддерживает политики управления доступом на основе IP-адресов. Брандмауэр IP-адресов можно настроить в учетной записи Azure Cosmos DB любым из следующих способов:
- на портале Azure;
- декларативно с помощью шаблона Azure Resource Manager;
- программным способом, изменив значение свойства ipRangeFilter с помощью Azure CLI или Azure PowerShell.
Настройка брандмауэра IP-адресов с помощью портала Azure
Чтобы задать политику управления доступом ip-адресов в портал Azure, перейдите на страницу учетной записи Azure Cosmos DB и выберите "Сеть" в меню навигации. Измените значение параметра Разрешить доступ из, указав Выбранные сети, и нажмите Сохранить. Если вы еще не добавляете IP-адреса, необходимо также установить флажок, чтобы убедиться, что все виртуальные сети и IP-адреса будут заблокированы. Если вы изменяете параметры сети общедоступного доступа, отключив его или разрешив для всех сетей, вы потеряете IP-адрес брандмауэра, который вы могли настроить раньше.
При включенном контроле доступа на основе IP-адресов портал Azure предоставляет возможность указать IP-адреса, диапазоны IP-адресов и параметры. Параметры обеспечивают доступ к другим службам Azure и порталу Azure. Сведения об этих параметрах приведены в указанных ниже разделах.
Примечание.
После включения политики контроля доступа на основе IP-адресов для учетной записи Azure Cosmos DB отклоняются все запросы к этой учетной записи Azure Cosmos DB с компьютеров, IP-адреса которых не входят в список диапазонов разрешенных IP-адресов. В соответствии с этой политикой также блокируется возможность просмотра ресурсов Azure Cosmos DB на портале.
Разрешение запросов на портале Azure
При программном включении политики управления доступом к IP-адресам может потребоваться добавить IP-адреса для служб портал Azure в свойство ipRangeFilter, чтобы использовать некоторые функции портала.
К сценариям портала, которые требуют включения этого параметра, относятся:
- Специально для API для MongoDB или API для Apache Cassandra, доступ к учетным записям с помощью обозревателя данных или <cosmos.azure.com>
- Для всех API, используя следующие колонки Azure Cosmos DB в портал Azure:
- Обзор коллекций
- Power BI
- Azure Synapse
Вы можете включить запросы для доступа к портал Azure, выбрав параметр "Добавить IP-адреса ПО промежуточного слоя портала Azure", как показано на следующем снимке экрана:
IP-адреса ПО промежуточного слоя портала Azure будут добавлены в отдельный список, как показано на следующем снимке экрана. Нажмите кнопку "Сохранить", чтобы добавить эти адреса в учетную запись базы данных. Дополнительные сведения о IP-адресах ПО промежуточного слоя см. ниже в этой статье.
IP-адреса ПО промежуточного слоя портала Azure можно удалить, щелкнув параметр "Удалить IP-адреса ПО промежуточного слоя портала Azure" и нажав кнопку "Сохранить".
IP-адреса ПО промежуточного слоя портала Azure
IP-адреса ПО промежуточного слоя портала Azure перечислены ниже. Некоторые IP-адреса требуются только для определенных API учетной записи базы данных. При добавлении IP-адресов ПО промежуточного слоя на портале, как описано выше, будут добавлены только IP-адреса, необходимые для вашей учетной записи.
Например:
Для учетной записи API для NoSQL будут добавлены IP-адреса из категории "Все ".
Для учетной записи API для MongoDB будут добавлены IP-адреса из только категорий All и MongoDB.
Azure Public
API учетной записи базы данных | IP-адреса |
---|---|
Все | 13.91.105.215, 4.210.172.107, 13.88.56.148, 40.91.218.243 |
Только MongoDB | 20.245.81.54, 40.118.23.126, 40.80.152.199, 13.95.130.121 |
Только Apache Cassandra | 40.113.96.14, 104.42.11.145, 137.117.230.240, 168.61.72.237 |
Azure – Китай
API учетной записи базы данных | IP-адреса |
---|---|
Все | 163.228.137.6, 143.64.170.142 |
Только MongoDB | 52.131.240.99, 143.64.61.130 |
Только Apache Cassandra | 40.73.99.146, 143.64.62.47 |
Azure – Правительство США
API учетной записи базы данных | IP-адреса |
---|---|
Все | 52.247.163.6, 52.244.134.181 |
Только MongoDB | 52.244.176.112, 52.247.148.42 |
Только Apache Cassandra | 52.244.50.101, 52.227.165.24 |
Устаревшие IP-адреса ПО промежуточного слоя
Недавно службы портала Cosmos DB перешли на новую инфраструктуру, требующую новых IP-адресов ПО промежуточного слоя. После завершения этого перехода устаревшие IP-адреса, используемые старой инфраструктурой, теперь можно безопасно удалить. Если у вашей учетной записи есть устаревшие IP-адреса по промежуточного слоя промежуточного слоя, присутствующих в правилах брандмауэра, отобразится параметр "Удалить устаревшие IP-адреса по промежуточного слоя портала Azure". Выберите этот параметр и сохраните, чтобы удалить устаревшие IP-адреса.
Устаревшие IP-адреса зависят от облачной среды:
Среда Azure | IP-адреса |
---|---|
Azure Public | 104.42.195.92, 40.76.54.131, 52.176.6.30, 52.169.50.45, 52.187.184.26 |
Azure – Китай | 139.217.8.252, 52.176.6.30, 52.169.50.45, 52.187.184.26 |
Azure – Правительство США | 52.244.48.71, 52.176.6.30, 52.169.50.45, 52.187.184.26 |
Примечание.
Если у вас возникли проблемы, связанные с подключением к учетной записи Azure Cosmos DB из обозревателя данных, ознакомьтесь с руководством по устранению неполадок с Data Explorer.
Allow requests from global Azure datacenters or other sources within Azure (Разрешение запросов от глобальных центров обработки данных Azure или других источников в пределах Azure).
Если вы выполняете доступ к учетной записи Azure Cosmos DB из служб, которые не предоставляют статический IP-адрес (например, Azure Stream Analytics и "Функции Azure"), вы все равно можете использовать брандмауэр IP-адресов для ограничения доступа. Вы можете включить доступ из других источников Azure, установив флажок Принимать подключения из общедоступных центров данных Azure, как показано на следующем снимке экрана:
При включении этого параметра IP-адрес 0.0.0.0
будет добавлен в список разрешенных IP-адресов. IP-адрес 0.0.0.0
разрешает запросы к учетной записи Azure Cosmos DB только из диапазона IP-адресов центров обработки данных Azure. Этот параметр не разрешает доступ к другим диапазонам IP-адресов в учетной записи Azure Cosmos DB.
Примечание.
Параметр publicNetworkAccess значение Disabled имеет приоритет над этим подключением Accept из центра обработки данных Azure. См. раздел "блокировка-доступ к сети во время создания учетной записи"
Примечание.
Этот параметр настраивает брандмауэр на разрешение всех запросов из Azure, в том числе из подписок других пользователей, развернутых в Azure. Этот параметр разрешает большой список IP-адресов, что существенно снижает эффективность политики брандмауэра. Его следует использовать, только если запросы будут поступать из расположений без статических IP-адресов или подсетей в виртуальных сетях. При выборе этого варианта автоматически разрешается доступ с портала Azure, так как сам портал Azure развернут в Azure.
Запросы с текущего IP-адреса
Для упрощения разработки портал Azure помогает определить и добавить IP-адрес клиентского компьютера в список разрешенных адресов. Приложения, работающие на вашем компьютере, смогут после этого получить доступ к учетной записи Azure Cosmos DB.
Портал автоматически определяет IP-адрес клиента. Это может быть IP-адрес клиента вашего компьютера или сетевого шлюза. Удалите этот IP-адрес, прежде чем переносить рабочие нагрузки в рабочую среду.
Чтобы добавить текущий IP-адрес в список IP-адресов, выберите "Добавить текущий IP-адрес". Затем выберите Сохранить.
Запросы из облачных служб
В Azure облачные службы — это стандартный способ размещения логики службы среднего уровня с помощью Azure Cosmos DB. Чтобы разрешить доступ к учетной записи Azure Cosmos DB из облачной службы, обязательно добавьте общедоступный IP-адрес этой службы в список разрешенных IP-адресов, связанных с используемой учетной записью Azure Cosmos DB. Для этого настройте политику контроля доступа на основе IP-адресов. Так вы предоставите всем экземплярам ролей облачных служб доступ к учетной записи Azure Cosmos DB.
IP-адреса для ваших облачных служб можно получить на портале Azure, как показано на следующем снимке экрана:
При горизонтальном увеличении масштаба облачной службы за счет добавления экземпляров ролей каждый новый экземпляр автоматически получит доступ к учетной записи Azure Cosmos DB, так как он входит в ту же облачную службу.
Запросы из виртуальных машин
Можно использовать также виртуальные машины или масштабируемые наборы виртуальных машин для размещения служб среднего уровня с помощью Azure Cosmos DB. Чтобы настроить учетную запись Azure Cosmos DB, чтобы разрешить доступ к виртуальным машинам, необходимо настроить общедоступный IP-адрес виртуальной машины и (или) масштабируемый набор виртуальных машин в качестве одного из разрешенных IP-адресов для учетной записи Azure Cosmos DB, настроив политику управления доступом к IP-адресам.
IP-адреса для виртуальных машин можно узнать на портале Azure, как показано на следующем снимке экрана:
Добавленные в группу экземпляры виртуальных машин автоматически получают доступ к учетной записи Azure Cosmos DB.
Запросы из Интернета
Если вы выполняете доступ к учетной записи Azure Cosmos DB с компьютера через Интернет, необходимо добавить IP-адрес или диапазон IP-адресов клиента этого компьютера в список разрешенных IP-адресов для этой учетной записи.
Добавление в брандмауэр правил для исходящего трафика
Чтобы узнать, как получить текущий список диапазонов исходящих IP-адресов для добавления в параметры брандмауэра, ознакомьтесь со скачиванием списка диапазонов IP-адресов и тегов служб Azure.
Чтобы автоматизировать этот список, обратитесь к разделу Использование API обнаружения тегов служб.
Настройка брандмауэра IP-адресов с помощью шаблона Resource Manager
Чтобы настроить контроль доступа к учетной записи Azure Cosmos DB, обязательно укажите в шаблоне Resource Manager атрибут ipRules с массивом диапазонов разрешенных IP-адресов. Если настроить брандмауэр IP-адресов для уже развернутой учетной записи Azure Cosmos DB, убедитесь locations
, что массив соответствует развернутому в настоящее время. Невозможно одновременно изменить locations
массив и другие свойства. Дополнительные сведения и примеры шаблонов Azure Resource Manager для Azure Cosmos DB см . в шаблонах Azure Resource Manager для Azure Cosmos DB.
Внимание
Свойство ipRules было введено в API версии 2020-04-01. В предыдущих версиях вместо него можно было использовать свойство ipRangeFilter, которое представляет собой список IP-адресов, разделенных запятыми.
В примере показано, как свойство ipRules предоставляется в API версии 2020-04-01 или более поздней версии:
{
"type": "Microsoft.DocumentDB/databaseAccounts",
"name": "[variables('accountName')]",
"apiVersion": "2020-04-01",
"location": "[parameters('location')]",
"kind": "GlobalDocumentDB",
"properties": {
"consistencyPolicy": "[variables('consistencyPolicy')[parameters('defaultConsistencyLevel')]]",
"locations": "[variables('locations')]",
"databaseAccountOfferType": "Standard",
"enableAutomaticFailover": "[parameters('automaticFailover')]",
"ipRules": [
{
"ipAddressOrRange": "13.91.105.215"
},
{
"ipAddressOrRange": "4.210.172.107"
},
{
"ipAddressOrRange": "13.88.56.148"
},
{
"ipAddressOrRange": "40.91.218.243"
}
]
}
}
Ниже приведен тот же пример для любой версии API до 2020-04-01:
{
"type": "Microsoft.DocumentDB/databaseAccounts",
"name": "[variables('accountName')]",
"apiVersion": "2019-08-01",
"location": "[parameters('location')]",
"kind": "GlobalDocumentDB",
"properties": {
"consistencyPolicy": "[variables('consistencyPolicy')[parameters('defaultConsistencyLevel')]]",
"locations": "[variables('locations')]",
"databaseAccountOfferType": "Standard",
"enableAutomaticFailover": "[parameters('automaticFailover')]",
"ipRangeFilter":"13.91.105.215,4.210.172.107,13.88.56.148,40.91.218.243"
}
}
Настройка политики контроля доступа на основе IP-адресов с помощью интерфейса командной строки Azure
Следующая команда демонстрирует, как создать учетную запись Azure Cosmos DB с использованием контроля доступа на основе IP-адресов:
# Create an Azure Cosmos DB account with default values and IP Firewall enabled
resourceGroupName='MyResourceGroup'
accountName='mycosmosaccount'
ipRangeFilter='192.168.221.17,183.240.196.255,40.76.54.131'
# Make sure there are no spaces in the comma-delimited list of IP addresses or CIDR ranges.
az cosmosdb create \
-n $accountName \
-g $resourceGroupName \
--locations regionName='West US 2' failoverPriority=0 isZoneRedundant=False \
--locations regionName='East US 2' failoverPriority=1 isZoneRedundant=False \
--ip-range-filter $ipRangeFilter
Настройка политики контроля доступа на основе IP-адресов с помощью PowerShell
Следующий сценарий демонстрирует, как создать учетную запись Azure Cosmos DB с использованием контроля доступа на основе IP-адресов:
# Create an Azure Cosmos DB account with default values and IP Firewall enabled
$resourceGroupName = "myResourceGroup"
$accountName = "mycosmosaccount"
$ipRules = @("192.168.221.17","183.240.196.255","40.76.54.131")
$locations = @(
@{ "locationName"="West US 2"; "failoverPriority"=0; "isZoneRedundant"=False },
@{ "locationName"="East US 2"; "failoverPriority"=1, "isZoneRedundant"=False }
)
# Make sure there are no spaces in the comma-delimited list of IP addresses or CIDR ranges.
$CosmosDBProperties = @{
"databaseAccountOfferType"="Standard";
"locations"=$locations;
"ipRules"=$ipRules
}
New-AzResource -ResourceType "Microsoft.DocumentDb/databaseAccounts" `
-ApiVersion "2020-04-01" -ResourceGroupName $resourceGroupName `
-Name $accountName -PropertyObject $CosmosDBProperties
Устранение неполадок с политикой контроля доступа на основе IP-адресов
Для устранения неполадок с политикой контроля доступа на основе IP-адресов у вас есть следующие возможности и средства:
Портал Azure
Включив политику контроля доступа на основе IP-адресов для учетной записи Azure Cosmos DB, вы заблокируете все запросы к этой учетной записи с любых компьютеров, IP-адреса которых не входят в список диапазонов разрешенных IP-адресов. Чтобы разрешить операции плоскости данных на портале (например, просмотр контейнеров и запрашивание документов), следует явным образом разрешить доступ к порталу Azure на панели Брандмауэр портала.
Пакеты SDK
При доступе к ресурсам Azure Cosmos DB с помощью пакетов SDK на компьютерах, которые не указаны в разрешенном списке, возвращается универсальный ответ 403 Запрещено без дополнительных сведений. Проверьте список разрешенных IP-адресов для учетной записи и убедитесь, что к учетной записи Azure Cosmos DB применяется правильная конфигурация политики.
IP-адреса источника в заблокированных запросах
Включение журнала ведения диагностики для учетной записи Azure Cosmos DB. Эти журналы отображают все запросы и отклики. Сообщения, имеющие отношение к брандмауэру, помещаются в журнал с кодом ответа 403. Отфильтровав эти сообщения, вы получите список исходных IP-адресов для заблокированных запросов. См. дополнительные сведения о журнале ведения диагностики Azure Cosmos DB.
Запросы из подсети, в которой включена конечная точка службы для Azure Cosmos DB
Запросы из подсети виртуальной сети, в которой включена конечная точка службы для Azure Cosmos DB, передают в учетную запись Azure Cosmos DB идентификаторы виртуальной сети и подсети. Такие запросы не имеют общедоступного IP-адреса источника, поэтому они отклоняются фильтрами IP-адресов. Чтобы разрешить доступ из определенных подсетей в виртуальных сетях, добавьте список управления доступом, как описано в руководстве по настройке доступа на основе подсети и виртуальной сети для учетной записи Azure Cosmos DB. Для применения правил брандмауэра может потребоваться до 15 минут, и брандмауэр может проявлять несогласованное поведение в течение этого периода.
Частные IP-адреса в списке разрешенных адресов
Создание или обновление учетной записи Azure Cosmos DB со списком разрешенных адресов, содержащих частные IP-адреса, завершается ошибкой. Убедитесь, что в списке нет частных IP-адресов.