Konfigurowanie zapory IP w usłudze Azure Cosmos DB
DOTYCZY: NoSQL MongoDB Kasandra Gremlin Stół
Aby zabezpieczyć dane przechowywane na koncie, usługa Azure Cosmos DB obsługuje model autoryzacji opartej na wpisie tajnym, który korzysta z silnego kodu uwierzytelniania komunikatów opartego na skrótach (HMAC). Ponadto usługa Azure Cosmos DB obsługuje mechanizmy kontroli dostępu oparte na adresach IP na potrzeby obsługi zapory dla ruchu przychodzącego. Ten model jest podobny do reguł zapory tradycyjnego systemu bazy danych i zapewnia kolejny poziom zabezpieczeń twojego konta. Za pomocą zapór można skonfigurować konto usługi Azure Cosmos DB tak, aby było dostępne tylko z zatwierdzonego zestawu maszyn i/lub usług w chmurze. Dostęp do danych przechowywanych w bazie danych usługi Azure Cosmos DB z tych zatwierdzonych zestawów maszyn i usług nadal będzie wymagał od obiektu wywołującego przedstawienia prawidłowego tokenu autoryzacji.
Kontrola dostępu do adresu IP
Domyślnie konto usługi Azure Cosmos DB jest dostępne z Internetu, o ile do żądania dołączy prawidłowy token autoryzacji. Aby skonfigurować kontrolę dostępu opartą na zasadach adresów IP, użytkownik musi podać zestaw adresów IP lub zakresów adresów IP w formularzu CIDR (routing międzydomenowy bezklasowy) do uwzględnienia jako listy dozwolonych adresów IP klientów w celu uzyskania dostępu do danego konta usługi Azure Cosmos DB. Po zastosowaniu tej konfiguracji wszystkie żądania pochodzące z maszyn spoza tej listy dozwolonych otrzymają odpowiedź 403 (Zabronione). W przypadku korzystania z zapory adresów IP zaleca się zezwolenie witrynie Azure Portal na dostęp do konta. Dostęp jest wymagany do umożliwienia korzystania z Eksploratora danych i pobierania metryk dla konta wyświetlanego w witrynie Azure Portal. W przypadku korzystania z Eksploratora danych oprócz umożliwienia witrynie Azure Portal dostępu do konta należy również zaktualizować ustawienia zapory, aby dodać bieżący adres IP do reguł zapory. Propagacja zmian zapory może potrwać do 15 minut, a zapora może wykazywać niespójne zachowanie w tym okresie.
Zaporę opartą na protokole IP można połączyć z podsiecią i kontrolą dostępu do sieci wirtualnej. Łącząc je, można ograniczyć dostęp do dowolnego źródła, które ma publiczny adres IP i/lub z określonej podsieci w sieci wirtualnej. Aby dowiedzieć się więcej o korzystaniu z podsieci i kontroli dostępu opartej na sieci wirtualnej, zobacz Access Azure Cosmos DB resources from virtual networks (Uzyskiwanie dostępu do zasobów usługi Azure Cosmos DB z sieci wirtualnych).
Podsumowując, token autoryzacji jest zawsze wymagany do uzyskania dostępu do konta usługi Azure Cosmos DB. Jeśli zapora ip i lista kontroli dostępu do sieci wirtualnej nie są skonfigurowane, konto usługi Azure Cosmos DB można uzyskać dostęp za pomocą tokenu autoryzacji. Po skonfigurowaniu zapory adresów IP lub list ACL sieci wirtualnej na koncie usługi Azure Cosmos DB tylko żądania pochodzące z określonych źródeł (i z tokenem autoryzacji) otrzymają prawidłowe odpowiedzi.
Dane przechowywane na koncie usługi Azure Cosmos DB można zabezpieczyć przy użyciu zapór adresów IP. Usługa Azure Cosmos DB obsługuje mechanizmy kontroli dostępu oparte na adresach IP na potrzeby obsługi zapory dla ruchu przychodzącego. Zaporę adresu IP można ustawić na koncie usługi Azure Cosmos DB, korzystając z jednego z następujących sposobów:
- Z witryny Azure Portal
- Deklaratywnie za pomocą szablonu usługi Azure Resource Manager
- Programowo za pomocą interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell przez zaktualizowanie właściwości ipRangeFilter
Konfigurowanie zapory adresów IP przy użyciu witryny Azure Portal
Aby ustawić zasady kontroli dostępu do adresów IP w witrynie Azure Portal, przejdź do strony konta usługi Azure Cosmos DB i wybierz pozycję Sieć w menu nawigacji. Zmień wartość Zezwalaj na dostęp z wartości Wybrane sieci, a następnie wybierz pozycję Zapisz. Jeśli nie dodajesz jeszcze żadnych adresów IP, należy również zaznaczyć pole wyboru, aby potwierdzić , że wszystkie sieci wirtualne i adresy IP zostaną zablokowane. Jeśli zmienisz ustawienia sieci dostępu publicznego, wyłączając je lub zezwalając na nie dla wszystkich sieci, utracisz wcześniej skonfigurowany adres IP zapory.
Po włączeniu kontroli dostępu do adresu IP witryna Azure Portal umożliwia określanie adresów IP, zakresów adresów IP i przełączników. Przełączniki umożliwiają dostęp do innych usług platformy Azure i witryny Azure Portal. Poniższe sekcje zawierają szczegółowe informacje o tych przełącznikach.
Uwaga
Po włączeniu zasad kontroli dostępu ip dla konta usługi Azure Cosmos DB wszystkie żądania do konta usługi Azure Cosmos DB z maszyn spoza dozwolonej listy zakresów adresów IP zostaną odrzucone. Przeglądanie zasobów usługi Azure Cosmos DB z portalu jest również zablokowane, aby zapewnić integralność kontroli dostępu.
Zezwalaj na żądania z witryny Azure Portal
Po programowym włączeniu zasad kontroli dostępu ip może być konieczne dodanie adresów IP dla usług witryny Azure Portal do właściwości ipRangeFilter , aby nadal korzystać z niektórych funkcji portalu.
Scenariusze portalu, które wymagają włączenia tej opcji, obejmują:
- Specjalnie dla interfejsu API dla bazy danych MongoDB lub interfejsu API dla systemu Apache Cassandra, uzyskiwanie dostępu do kont za pomocą Eksploratora danych lub <cosmos.azure.com>
- Dla wszystkich interfejsów API użyj następujących bloków usługi Azure Cosmos DB w witrynie Azure Portal:
- Przeglądaj kolekcje
- Power BI
- Azure Synapse
Możesz włączyć żądania dostępu do witryny Azure Portal, wybierając opcję Dodaj adresy IP oprogramowania pośredniczącego w witrynie Azure Portal, jak pokazano na poniższym zrzucie ekranu:
Adresy IP oprogramowania pośredniczącego w witrynie Azure Portal zostaną dodane do oddzielnej listy, jak pokazano na poniższym zrzucie ekranu. Kliknij pozycję Zapisz , aby dodać te adresy do konta bazy danych. Więcej informacji na temat adresów IP oprogramowania pośredniczącego można znaleźć poniżej w tym artykule.
Adresy IP oprogramowania pośredniczącego w witrynie Azure Portal można usunąć, klikając opcję Usuń adresy IP oprogramowania pośredniczącego w witrynie Azure Portal, a następnie wybierając pozycję Zapisz.
Adresy IP oprogramowania pośredniczącego w witrynie Azure Portal
Poniżej wymieniono adresy IP oprogramowania pośredniczącego w witrynie Azure Portal. Niektóre adresy IP są wymagane tylko dla określonych interfejsów API konta bazy danych. Po dodaniu adresów IP oprogramowania pośredniczącego w portalu, zgodnie z powyższym opisem, zostaną dodane tylko adresy IP wymagane dla Twojego konta.
Na przykład:
W przypadku konta interfejsu API dla noSQL zostaną dodane adresy IP z kategorii Wszystkie .
W przypadku konta interfejsu API dla bazy danych MongoDB zostaną dodane adresy IP z kategorii Wszystkie i MongoDB.
Publiczna platforma Azure
Interfejs API konta bazy danych | Adresy IP |
---|---|
wszystkie | 13.91.105.215, 4.210.172.107, 13.88.56.148, 40.91.218.243 |
Tylko baza danych MongoDB | 20.245.81.54, 40.118.23.126, 40.80.152.199, 13.95.130.121 |
Tylko apache Cassandra | 40.113.96.14, 104.42.11.145, 137.117.230.240, 168.61.72.237 |
Azure Chiny
Interfejs API konta bazy danych | Adresy IP |
---|---|
wszystkie | 163.228.137.6, 143.64.170.142 |
Tylko baza danych MongoDB | 52.131.240.99, 143.64.61.130 |
Tylko apache Cassandra | 40.73.99.146, 143.64.62.47 |
Wersja platformy Azure dla administracji USA
Interfejs API konta bazy danych | Adresy IP |
---|---|
wszystkie | 52.247.163.6, 52.244.134.181 |
Tylko baza danych MongoDB | 52.244.176.112, 52.247.148.42 |
Tylko apache Cassandra | 52.244.50.101, 52.227.165.24 |
Starsze adresy IP oprogramowania pośredniczącego
Usługi portalu usługi Cosmos DB ostatnio przeszły do nowej infrastruktury, która wymagała nowych adresów IP oprogramowania pośredniczącego. Po zakończeniu tego przejścia starsze adresy IP używane przez starą infrastrukturę można teraz bezpiecznie usunąć. Jeśli Twoje konto ma starsze adresy IP oprogramowania pośredniczącego obecne w regułach zapory, zostanie wyświetlona opcja Usuń starsze adresy IP oprogramowania pośredniczącego w witrynie Azure Portal. Wybierz tę opcję, a następnie pozycję Zapisz, aby usunąć starsze adresy IP.
Starsze adresy IP są zależne od środowiska chmury:
Środowisko platformy Azure | Adresy IP |
---|---|
Publiczna platforma Azure | 104.42.195.92, 40.76.54.131, 52.176.6.30, 52.169.50.45, 52.187.184.26 |
Azure Chiny | 139.217.8.252, 52.176.6.30, 52.169.50.45, 52.187.184.26 |
Wersja platformy Azure dla administracji USA | 52.244.48.71, 52.176.6.30, 52.169.50.45, 52.187.184.26 |
Uwaga
Jeśli występują problemy z nawiązywaniem połączenia z kontem usługi Azure Cosmos DB z Poziomu Eksploratora danych, zapoznaj się z przewodnikiem rozwiązywania problemów z Eksploratorem danych.
Zezwalaj na żądania z globalnych centrów danych platformy Azure lub innych źródeł na platformie Azure
Jeśli uzyskujesz dostęp do konta usługi Azure Cosmos DB z usług, które nie udostępniają statycznego adresu IP (na przykład usług Azure Stream Analytics i Azure Functions), nadal możesz użyć zapory ip, aby ograniczyć dostęp. Dostęp z innych źródeł na platformie Azure można włączyć, wybierając opcję Akceptuj połączenia z poziomu centrów danych platformy Azure, jak pokazano na poniższym zrzucie ekranu:
Po włączeniu tej opcji adres 0.0.0.0
IP zostanie dodany do listy dozwolonych adresów IP. Adres 0.0.0.0
IP ogranicza żądania do konta usługi Azure Cosmos DB z zakresu adresów IP centrum danych platformy Azure. To ustawienie nie zezwala na dostęp do żadnych innych zakresów adresów IP na koncie usługi Azure Cosmos DB.
Uwaga
Ustawienie opcji publicNetworkAccess na Wyłączone ma pierwszeństwo przed tym połączeniem Akceptuj z poziomu opcji centrów danych platformy Azure. Zobacz blocking-public-network-access-during-account-creation
Uwaga
Ta opcja umożliwia skonfigurowanie zapory tak, aby zezwalała na wszystkie żądania z platformy Azure, w tym żądania z subskrypcji innych klientów wdrożonych na platformie Azure. Lista adresów IP dozwolonych przez tę opcję jest szeroka, dlatego ogranicza skuteczność zasad zapory. Użyj tej opcji tylko wtedy, gdy żądania nie pochodzą ze statycznych adresów IP lub podsieci w sieciach wirtualnych. Wybranie tej opcji automatycznie zezwala na dostęp z witryny Azure Portal, ponieważ witryna Azure Portal jest wdrożona na platformie Azure.
Żądania z bieżącego adresu IP
Aby uprościć programowanie, witryna Azure Portal ułatwia identyfikowanie i dodawanie adresu IP maszyny klienckiej do listy dozwolonych. Aplikacje z uruchomioną maszyną mogą następnie uzyskiwać dostęp do konta usługi Azure Cosmos DB.
Portal automatycznie wykrywa adres IP klienta. Może to być adres IP klienta maszyny lub adres IP bramy sieci. Pamiętaj, aby usunąć ten adres IP przed przełączenie obciążeń do środowiska produkcyjnego.
Aby dodać bieżący adres IP do listy adresów IP, wybierz pozycję Dodaj bieżący adres IP. Następnie wybierz opcję Zapisz.
Żądania z usług w chmurze
Na platformie Azure usługi w chmurze są typowym sposobem hostowania logiki usług warstwy środkowej przy użyciu usługi Azure Cosmos DB. Aby umożliwić dostęp do konta usługi Azure Cosmos DB z poziomu usługi w chmurze, należy dodać publiczny adres IP usługi w chmurze do listy dozwolonych adresów IP skojarzonych z kontem usługi Azure Cosmos DB, konfigurując zasady kontroli dostępu ip. Dzięki temu wszystkie wystąpienia ról usług w chmurze mają dostęp do konta usługi Azure Cosmos DB.
Adresy IP usług w chmurze można pobrać w witrynie Azure Portal, jak pokazano na poniższym zrzucie ekranu:
W przypadku skalowania w poziomie usługi w chmurze przez dodanie wystąpień ról te nowe wystąpienia będą automatycznie miały dostęp do konta usługi Azure Cosmos DB, ponieważ są one częścią tej samej usługi w chmurze.
Żądania z maszyn wirtualnych
Możesz również użyć maszyn wirtualnych lub zestawów skalowania maszyn wirtualnych do hostowania usług warstwy środkowej przy użyciu usługi Azure Cosmos DB. Aby skonfigurować konto usługi Azure Cosmos DB tak, aby zezwalało na dostęp z maszyn wirtualnych, należy skonfigurować publiczny adres IP maszyny wirtualnej i/lub zestawu skalowania maszyn wirtualnych jako jeden z dozwolonych adresów IP dla konta usługi Azure Cosmos DB, konfigurując zasady kontroli dostępu do adresów IP.
Adresy IP maszyn wirtualnych można pobrać w witrynie Azure Portal, jak pokazano na poniższym zrzucie ekranu:
Po dodaniu wystąpień maszyn wirtualnych do grupy automatycznie otrzymają one dostęp do konta usługi Azure Cosmos DB.
Żądania z Internetu
Gdy uzyskujesz dostęp do konta usługi Azure Cosmos DB z komputera w Internecie, adres IP klienta lub zakres adresów IP maszyny muszą zostać dodane do listy dozwolonych adresów IP twojego konta.
Dodawanie reguł ruchu wychodzącego do zapory
Aby uzyskać dostęp do bieżącej listy zakresów adresów IP dla ruchu wychodzącego w celu dodania ich do ustawień zapory, zobacz Pobieranie zakresów adresów IP platformy Azure i tagów usług.
Aby uzyskać informacje na temat automatyzowania listy, zobacz Korzystanie z interfejsu API odnajdywania tagów usług.
Konfigurowanie zapory adresów IP przy użyciu szablonu usługi Resource Manager
Aby skonfigurować kontrolę dostępu do konta usługi Azure Cosmos DB, upewnij się, że szablon usługi Resource Manager określa właściwość ipRules z tablicą dozwolonych zakresów adresów IP. W przypadku konfigurowania zapory adresów IP na już wdrożonym koncie usługi Azure Cosmos DB upewnij się, że tablica locations
jest zgodna z aktualnie wdrożonym rozwiązaniem. Nie można jednocześnie modyfikować locations
tablicy i innych właściwości. Aby uzyskać więcej informacji i przykłady szablonów usługi Azure Resource Manager dla usługi Azure Cosmos DB, zobacz Szablony usługi Azure Resource Manager dla usługi Azure Cosmos DB
Ważne
Właściwość ipRules została wprowadzona z interfejsem API w wersji 2020-04-01. Poprzednie wersje uwidoczniły właściwość ipRangeFilter , która jest listą adresów IP rozdzielanych przecinkami.
W przykładzie pokazano, jak właściwość ipRules jest uwidoczniona w interfejsie API w wersji 2020-04-01 lub nowszej:
{
"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"
}
]
}
}
Oto ten sam przykład dla dowolnej wersji interfejsu API przed 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"
}
}
Konfigurowanie zasad kontroli dostępu do adresów IP przy użyciu interfejsu wiersza polecenia platformy Azure
Następujące polecenie pokazuje, jak utworzyć konto usługi Azure Cosmos DB z kontrolą dostępu do adresów 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
Konfigurowanie zasad kontroli dostępu do adresów IP przy użyciu programu PowerShell
Poniższy skrypt pokazuje, jak utworzyć konto usługi Azure Cosmos DB z kontrolą dostępu do adresów 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
Rozwiązywanie problemów z zasadami kontroli dostępu do adresów IP
Problemy z zasadami kontroli dostępu do adresów IP można rozwiązać, korzystając z następujących opcji:
Azure Portal
Włączenie zasad kontroli dostępu do adresu IP dla konta usługi Azure Cosmos DB powoduje zablokowanie wszystkich żądań do konta z maszyn spoza dozwolonej listy zakresów adresów IP. Aby włączyć operacje płaszczyzny danych portalu, takie jak przeglądanie kontenerów i wykonywanie zapytań dotyczących dokumentów, należy jawnie zezwolić na dostęp do witryny Azure Portal przy użyciu okienka Zapora w portalu.
Zestawy SDK
Gdy uzyskujesz dostęp do zasobów usługi Azure Cosmos DB przy użyciu zestawów SDK z maszyn, które nie znajdują się na liście dozwolonych, zwracana jest ogólna odpowiedź 403 Zabronione bez dodatkowych szczegółów. Sprawdź listę dozwolonych adresów IP dla konta i upewnij się, że do konta usługi Azure Cosmos DB zastosowano poprawną konfigurację zasad.
Źródłowe adresy IP w zablokowanych żądaniach
Włącz rejestrowanie diagnostyczne na koncie usługi Azure Cosmos DB. Te dzienniki pokazują każde żądanie i odpowiedź. Komunikaty związane z zaporą są rejestrowane przy użyciu kodu zwrotnego 403. Filtrując te komunikaty, możesz zobaczyć źródłowe adresy IP dla zablokowanych żądań. Zobacz Rejestrowanie diagnostyczne usługi Azure Cosmos DB.
Żądania z podsieci z punktem końcowym usługi dla usługi Azure Cosmos DB włączone
Żądania z podsieci w sieci wirtualnej, która ma punkt końcowy usługi dla usługi Azure Cosmos DB z włączoną obsługą, wysyła tożsamość sieci wirtualnej i podsieci do kont usługi Azure Cosmos DB. Te żądania nie mają publicznego adresu IP źródła, więc filtry adresów IP je odrzucają. Aby zezwolić na dostęp z określonych podsieci w sieciach wirtualnych, dodaj listę kontroli dostępu zgodnie z opisem w temacie Konfigurowanie dostępu do sieci wirtualnej i dostępu opartego na podsieci dla konta usługi Azure Cosmos DB. Zastosowanie reguł zapory może potrwać do 15 minut, a zapora może wykazywać niespójne zachowanie w tym okresie.
Prywatne adresy IP na liście dozwolonych adresów
Tworzenie lub aktualizowanie konta usługi Azure Cosmos DB z listą dozwolonych adresów zawierających prywatne adresy IP nie powiodło się. Upewnij się, że na liście nie określono żadnego prywatnego adresu IP.