Konfigurowanie zapory IP w usłudze Azure Cosmos DB

DOTYCZY: Nosql Mongodb Cassandra Gremlin Tabeli

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 dodatkowy 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 ip zaleca się zezwolenie witrynie Azure Portal na dostęp do konta. Dostęp jest wymagany do umożliwienia korzystania z eksploratora danych oraz 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. Należy pamiętać, że propagacja zmian zapory może potrwać do 15 minut, a zapora może wykazywać niespójne zachowanie w tym okresie.

Zaporę opartą na adresach 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 na temat używania podsieci i kontroli dostępu opartej na sieci wirtualnej, zobacz 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, dostęp do konta usługi Azure Cosmos DB można uzyskać przy użyciu 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ę Zapora i sieci wirtualne w menu nawigacji. Zmień wartość Zezwalaj na dostęp z wartości Wybrane sieci, a następnie wybierz pozycję Zapisz. 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.

Zrzut ekranu przedstawiający sposób otwierania strony Zapora w witrynie Azure Portal

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 należy dodać adres IP witryny Azure Portal do właściwości ipRangeFilter , aby zachować dostęp. Adresy IP portalu to:

Region (Region) Adres IP
Chiny 139.217.8.252
US Gov 52.244.48.71
Wszystkie inne regiony: 104.42.195.92,40.76.54.131,52.176.6.30,52.169.50.45,52.187.184.26

Możesz włączyć żądania dostępu do witryny Azure Portal, wybierając opcję Zezwalaj na dostęp z witryny Azure Portal , jak pokazano na poniższym zrzucie ekranu:

Zrzut ekranu przedstawiający sposób włączania dostępu do witryny Azure Portal

Nowe adresy IP witryny Azure Portal

Usługi portalu usługi Cosmos DB przechodzą do nowej infrastruktury w 2024 roku. W ramach tego przejścia konta z włączoną zaporą będą wymagać, aby nowe adresy IP mogły nadal uzyskiwać dostęp do niektórych funkcji portalu, takich jak Eksplorator danych. W tym przeniesieniu wprowadzono również dedykowane adresy IP dla kont interfejsu API Mongo DB i Apache Cassandra.

Podczas tego przejścia opcja Zezwalaj na dostęp z witryny Azure Portal dodaje zarówno bieżące, jak i nowe adresy IP do ustawień zapory konta (w tym dla określonych adresów MongoDB i Cassandra dla tych kont) Po zakończeniu przejścia zostanie udostępniona opcja portalu w celu usunięcia starych adresów IP.

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

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:

Zrzut ekranu przedstawiający sposób akceptowania połączeń z centrów danych platformy Azure

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 konta usługi Azure Cosmos DB z jakiegokolwiek innego adresu IP.

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 mój bieżący adres IP. Następnie wybierz opcję Zapisz.

Zrzut ekranu przedstawiający sposób konfigurowania ustawień zapory dla bieżącego adresu IP

Żą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:

Zrzut ekranu przedstawiający publiczny adres IP usługi w chmurze wyświetlany w witrynie Azure Portal

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:

Zrzut ekranu przedstawiający publiczny adres IP maszyny wirtualnej wyświetlanej w witrynie Azure Portal

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, które mają zostać dodane do ustawień zapory, zobacz Pobieranie zakresów adresów IP platformy Azure i tagów usługi.

Aby zautomatyzować listę, zobacz Używanie interfejsu API odnajdywania tagów usługi.

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 poniższym 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": "40.76.54.131"
      },
      {
        "ipAddressOrRange": "52.176.6.30"
      },
      {
        "ipAddressOrRange": "52.169.50.45"
      },
      {
        "ipAddressOrRange": "52.187.184.26"
      }
    ]
  }
}

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":"40.76.54.131,52.176.6.30,52.169.50.45,52.187.184.26"
  }
}

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 zakończy się niepowodzeniem. Upewnij się, że na liście nie określono żadnego prywatnego adresu IP.

Następne kroki

Aby skonfigurować punkt końcowy usługi sieci wirtualnej dla konta usługi Azure Cosmos DB, zobacz następujące artykuły: