Konfigurieren der IP-Firewall in Azure Cosmos DB
GILT FÜR: NoSQL MongoDB Cassandra Gremlin Tabelle
Zum Sichern der in Ihrem Konto gespeicherten Daten unterstützt Azure Cosmos DB ein auf Geheimnissen basierendes Autorisierungsmodell, das einen starken hashbasierten Nachrichtenauthentifizierungscode (HMAC) nutzt. Darüber hinaus unterstützt Azure Cosmos DB die IP-basierte Zugriffssteuerung zur Unterstützung der Firewall für eingehende Verbindungen. Dieses Modell ähnelt den Firewallregeln eines herkömmlichen Datenbanksystems und bietet zusätzliche Sicherheit für Ihr Konto. Mit Firewalls können Sie nun Ihr Azure Cosmos DB-Konto so konfigurieren, dass es nur über eine genehmigte Gruppe von Computern und/oder Clouddiensten zugänglich ist. Für den Zugriff auf Daten, die in Ihrer Azure Cosmos DB-Datenbank gespeichert sind, über diese genehmigten Gruppen von Computern und Diensten muss der Aufrufer weiterhin ein gültiges Autorisierungstoken vorlegen.
IP-Zugriffssteuerung
Standardmäßig ist ein Azure Cosmos DB-Konto über das Internet zugänglich, solange die Anforderung zusammen mit einem gültigen Autorisierungstoken erfolgt. Zum Konfigurieren der auf IP-Richtlinien basierenden Zugriffssteuerung muss der Benutzer die Gruppe der IP-Adressen oder IP-Adressbereiche im CIDR-Format (Classless Inter-Domain Routing, klassenloses domänenübergreifendes Routing) angeben, die als Liste der zulässigen Client-IPs für den Zugriff auf ein bestimmtes Azure Cosmos DB-Konto aufgenommen wird. Nachdem diese Konfiguration angewendet wurde, erhalten alle Anforderungen von Computern, die nicht in dieser Zulassungsliste enthalten sind, die Antwort „403 (Nicht zulässig)“. Wenn Sie eine IP-Firewall verwenden, empfiehlt es sich, dem Azure-Portal Zugriff auf Ihr Konto zu gewähren. Zugriff ist erforderlich, um den Daten-Explorer verwenden zu können und um Metriken für Ihr Konto abzurufen, die im Azure-Portal angezeigt werden. Bei Verwendung des Daten-Explorers müssen Sie nicht nur dem Azure-Portal den Zugriff auf Ihr Konto gestatten, sondern auch Ihre Firewalleinstellungen aktualisieren, um den Firewallregeln Ihre aktuelle IP-Adresse hinzuzufügen. Die Verteilung von Firewalländerungen kann bis zu 15 Minuten dauern, und die Firewall zeigt während dieses Zeitraums möglicherweise ein inkonsistentes Verhalten.
Sie können die IP-basierte Firewall mit Subnetz- und VNet-Zugriffssteuerung kombinieren. Durch diese Kombination können Sie den Zugriff auf eine beliebige Quelle mit einer öffentlichen IP-Adresse und/oder von einem bestimmten Subnetz im virtuellen Netzwerk beschränken. Weitere Informationen zur Verwendung von Subnetz- und VNet-basierter Zugriffssteuerung finden Sie unter Zugreifen auf Azure Cosmos DB-Ressourcen über virtuelle Netzwerke.
Zusammenfassend lässt sich sagen, dass für den Zugriff auf ein Azure Cosmos DB-Konto immer ein Autorisierungstoken erforderlich ist. Wenn IP-Firewall- und VNet-Zugriffssteuerungslisten (Access Control Lists, ACLs) nicht eingerichtet sind, kann mit dem Authentifizierungstoken auf das Azure Cosmos DB-Konto zugegriffen werden. Nachdem IP-Firewall- oder VNet-ACLs oder beides für das Azure Cosmos DB-Konto eingerichtet wurden, erhalten nur Anforderungen aus den von Ihnen angegebenen Quellen (und mit Autorisierungstoken) gültige Antworten.
Sie können die in Ihrem Azure Cosmos DB-Konto gespeicherten Daten mithilfe von IP-Firewalls sichern. Azure Cosmos DB unterstützt die IP-basierte Zugriffssteuerung zur Unterstützung der Firewall für eingehende Verbindungen. Sie können über eine der folgenden Methoden eine IP-Firewall für das Azure Cosmos DB-Konto festlegen:
- Über das Azure-Portal
- Deklarativ durch Verwenden einer Azure Resource Manager-Vorlage
- Programmgesteuert über die Azure CLI oder mit Azure PowerShell durch Aktualisieren der Eigenschaft ipRangeFilter
Konfigurieren einer IP-Firewall über das Azure-Portal
Um die IP-Zugriffssteuerungsrichtlinie im Azure-Portal festzulegen, wechseln Sie zur Seite für das Azure Cosmos DB-Konto, und wählen Sie im Navigationsmenü Netzwerk aus. Ändern Sie den Wert Zugriff zulassen über in Ausgewählte Netzwerke, und klicken Sie dann auf Speichern. Wenn Sie noch keine IP-Adressen hinzufügen, müssen Sie auch das Kontrollkästchen aktivieren, um zu bestätigen, dass alle VNets und IPs blockiert werden. Wenn Sie die Einstellungen für das Netzwerk mit öffentlichem Zugriff ändern, indem Sie sie entweder deaktivieren oder für alle Netzwerke zulassen, geht die Firewall-IP-Adresse verloren, die Sie möglicherweise zuvor eingerichtet haben.
Wenn die IP-Zugriffssteuerung aktiviert ist, können Sie im Azure-Portal IP-Adressen, IP-Adressbereiche und Schalter angeben. Schalter ermöglichen den Zugriff auf andere Azure-Dienste und das Azure-Portal. Details zu diesen Schaltern finden Sie in den folgenden Abschnitten.
Hinweis
Nach dem Aktivieren der IP-Zugriffssteuerungsrichtlinie für Ihr Azure Cosmos DB-Konto werden alle Anforderungen für das Azure Cosmos DB-Konto von Computern abgelehnt, die nicht in der Liste der zugelassenen IP-Adressbereiche enthalten sind. Darüber hinaus wird das Durchsuchen der Azure Cosmos DB-Ressourcen über das Portal blockiert, um die Integrität der Zugriffssteuerung sicherzustellen.
Zulassen von Anforderungen über das Azure-Portal
Wenn Sie eine IP-Zugriffssteuerungsrichtlinie programmgesteuert aktivieren, müssen Sie der Eigenschaft ipRangeFilter möglicherweise die IP-Adressen für die Azure-Portaldienste hinzufügen, damit einige Portalfunktionen weiterhin verwendet werden können.
Portalszenarien, für die diese Option aktiviert werden muss, sind unter anderem:
- Speziell für die API für die MongoDB oder API für Apache Cassandra, Zugriff auf Konten mit dem Daten-Explorer oder <cosmos.azure.com>
- Verwenden Sie für alle APIs die folgenden Azure Cosmos DB-Blades im Azure-Portal:
- Sammlungen durchsuchen
- Power BI
- Azure Synapse
Sie können Anforderungen für den Zugriff auf das Azure-Portal ermöglichen, indem Sie wie im folgenden Screenshot gezeigt die Option Middleware-IP-Adressen für Azure-Portal hinzufügen auswählen:
Die Middleware-IP-Adressen für das Azure-Portal werden einer separaten Liste hinzugefügt, wie im folgenden Screenshot gezeigt. Klicken Sie auf Speichern, um diese Adressen Ihrem Datenbankkonto hinzuzufügen. Weitere Details zu den Middleware-IP-Adressen finden Sie weiter unten in diesem Artikel.
Die Middleware-IP-Adressen für das Azure-Portal können entfernt werden, indem Sie auf die Option Middleware-IP-Adressen für Azure-Portal entfernen klicken und dann Speichern auswählen.
Azure-Portal-Middleware-IP-Adressen
Die Middleware-IP-Adressen für das Azure-Portal sind unten aufgeführt. Einige IP-Adressen sind nur für bestimmte Datenbankkonto-APIs erforderlich. Wenn Sie die Middleware-IP-Adressen wie oben beschrieben im Portal hinzufügen, werden nur die für Ihr Konto erforderlichen IP-Adressen hinzugefügt.
Zum Beispiel:
Für eine API für ein NoSQL-Konto werden die IP-Adressen aus der Kategorie Alle hinzugefügt.
Für eine API für ein MongoDB-Konto werden die IP-Adressen aus den Kategorien Alle und Nur MongoDB hinzugefügt.
Azure öffentlich
Datenbankkonto-API | IP-Adressen |
---|---|
Alle | 13.91.105.215, 4.210.172.107, 13.88.56.148, 40.91.218.243 |
Nur MongoDB | 20.245.81.54, 40.118.23.126, 40.80.152.199, 13.95.130.121 |
Nur Apache Cassandra | 40.113.96.14, 104.42.11.145, 137.117.230.240, 168.61.72.237 |
Azure China
Datenbankkonto-API | IP-Adressen |
---|---|
Alle | 163.228.137.6, 143.64.170.142 |
Nur MongoDB | 52.131.240.99, 143.64.61.130 |
Nur Apache Cassandra | 40.73.99.146, 143.64.62.47 |
Azure US Government
Datenbankkonto-API | IP-Adressen |
---|---|
Alle | 52.247.163.6, 52.244.134.181 |
Nur MongoDB | 52.244.176.112, 52.247.148.42 |
Nur Apache Cassandra | 52.244.50.101, 52.227.165.24 |
Legacy-Middleware-IP-Adressen
Die Cosmos DB-Portaldienste wurden kürzlich auf eine neue Infrastruktur umgestellt, für die neue Middleware-IP-Adressen erforderlich waren. Nach Abschluss dieser Umstellung können die von der alten Infrastruktur verwendeten Legacy-IP-Adressen nun sicher entfernt werden. Wenn für Ihr Konto Legacy-Middleware-IP-Adressen in den Firewallregeln vorhanden sind, wird die Option Legacy-Middleware-IP-Adressen für das Azure-Portal entfernen angezeigt. Wählen Sie diese Option und dann „Speichern“ aus, um die Legacy-IP-Adressen zu entfernen.
Die Legacy-IP-Adressen sind von der Cloudumgebung abhängig:
Azure-Umgebung | IP-Adressen |
---|---|
Azure öffentlich | 104.42.195.92, 40.76.54.131, 52.176.6.30, 52.169.50.45, 52.187.184.26 |
Azure China | 139.217.8.252, 52.176.6.30, 52.169.50.45, 52.187.184.26 |
Azure US Government | 52.244.48.71, 52.176.6.30, 52.169.50.45, 52.187.184.26 |
Hinweis
Wenn Sie in Daten-Explorer Probleme beim Herstellen einer Verbindung mit Ihrem Azure Cosmos DB-Konto haben, lesen Sie das Handbuch zur Problembehandlung im Daten-Explorer.
Zulassen von Anforderungen von globalen Azure-Rechenzentren oder anderen Quellen in Azure
Wenn Sie in Diensten, die keine statische IP bereitstellen, z.B. Azure Stream Analytics oder Azure Functions, auf das Azure Cosmos DB-Konto zugreifen, können Sie dennoch den Zugriff über die IP-Firewall einschränken. Sie können den Zugriff über andere Quellen innerhalb von Azure ermöglichen, indem Sie wie im folgenden Screenshot gezeigt die Option Verbindungen aus Azure-Rechenzentren akzeptieren auswählen:
Wenn Sie diese Option aktivieren, wird die IP-Adresse 0.0.0.0
zur Liste der zulässigen IP-Adressen hinzugefügt. Die IP-Adresse 0.0.0.0
beschränkt Anforderungen für das Azure Cosmos DB-Konto auf den IP-Adressbereich des Azure-Rechenzentrums. Mit dieser Einstellung ist der Zugriff auf das Azure Cosmos DB-Konto über andere IP-Adressbereiche nicht zulässig.
Hinweis
Das Festlegen von „publicNetworkAccess“ auf „Deaktiviert“ hat Vorrang vor der Option Verbindung von Azure-Rechenzentren akzeptieren. Weitere Informationen finden Sie unter Blockieren des Zugriffs auf öffentliche Netzwerke während der Kontoerstellung.
Hinweis
Über diese Option wird die Firewall so konfiguriert, dass alle von Azure ausgehenden Anforderungen zugelassen werden, einschließlich Anforderungen von den in Azure bereitgestellten Abonnements anderer Kunden. Die Liste der durch diese Option zugelassenen IP-Adressen ist umfangreich, sodass die Wirksamkeit einer Firewallrichtlinie eingeschränkt wird. Verwenden Sie diese Option nur, wenn die Anforderungen nicht von statischen IP-Adressen oder Subnetzen in virtuellen Netzwerken stammen. Durch das Aktivieren dieser Option wird automatisch der Zugriff über das Azure-Portal ermöglicht, da das Azure-Portal in Azure bereitgestellt wird.
Anforderungen über Ihre aktuelle IP-Adresse
Um die Entwicklung zu vereinfachen, unterstützt das Azure-Portal Sie dabei, die IP-Adresse Ihres Clientcomputers zu ermitteln und der Zulassungsliste hinzuzufügen. So können auf Ihrem Computer ausgeführte Apps auf Ihr Azure Cosmos DB-Konto zugreifen.
Das Portal erkennt die Client-IP-Adresse automatisch. Es kann sich um die Client-IP-Adresse Ihres Computers oder um die IP-Adresse Ihres Netzwerkgateways handeln. Sie müssen diese IP-Adresse entfernen, bevor Sie Ihre Workloads in die Produktion überführen.
Wählen Sie Aktuelle IP-Adresse hinzufügen aus, um Ihre aktuelle IP-Adresse zur Liste der IP-Adressen hinzuzufügen. Klicken Sie dann auf Speichern.
Anforderungen über Clouddienste
In Azure ist es üblich, dass Clouddienste Dienstlogik der mittleren Ebene mithilfe von Azure Cosmos DB hosten. Um den Zugriff auf das Azure Cosmos DB-Konto über einen Clouddienst zu ermöglichen, muss die öffentliche IP-Adresse des Clouddiensts der Liste der zugelassenen IP-Adressen hinzugefügt werden, die dem Azure Cosmos DB-Konto zugeordnet ist. Dies erfolgt durch das Konfigurieren der IP-Zugriffssteuerungsrichtlinie. So wird sichergestellt, dass alle Rolleninstanzen von Clouddiensten Zugriff auf das Azure Cosmos DB-Konto haben.
Sie können die IP-Adressen für Ihre Clouddienste im Azure-Portal abrufen (siehe dazu den folgenden Screenshot).
Wenn Sie Ihren Clouddienst aufskalieren, indem Sie Rolleninstanzen hinzufügen, haben diese neuen Instanzen automatisch Zugriff auf das Azure Cosmos DB-Konto, da sie zum gleichen Clouddienst gehören.
Anforderungen über virtuelle Computer
Sie können auch virtuelle Computer oder VM-Skalierungsgruppen zum Hosten von Diensten der mittleren Ebene über Azure Cosmos DB verwenden. Um Ihr Azure Cosmos DB-Konto so zu konfigurieren, dass virtuelle Computer (VMs) darauf zugreifen können, müssen Sie die öffentliche IP-Adresse der VM und/oder VM-Skalierungsgruppe als eine der zulässigen IP-Adressen für Ihr Azure Cosmos DB-Konto konfigurieren, indem Sie die IP-Zugriffssteuerungsrichtlinie konfigurieren.
Sie können die IP-Adressen für virtuelle Computer wie im folgenden Screenshot gezeigt im Azure-Portal abrufen:
Wenn Sie der Gruppe VM-Instanzen hinzufügen, erhalten diese automatisch Zugriff auf das Azure Cosmos DB-Konto.
Anforderungen aus dem Internet
Wenn Sie über einen Computer im Internet auf das Azure Cosmos DB-Konto zugreifen, muss die Client-IP-Adresse oder der Client-IP-Adressbereich des Computers der Liste der zugelassenen IP-Adressen für das Konto hinzugefügt werden.
Hinzufügen von Ausgangsregeln zur Firewall
Auf der Seite zum Herunterladen von Azure-IP-Adressbereichen und Diensttags finden Sie eine aktuelle Liste mit Ausgangs-IP-Adressbereichen, die Sie Ihrer Firewall hinzufügen können.
Informationen zum Automatisieren dieser Liste finden Sie unter Verwendung der Diensttagermittlungs-API.
Konfigurieren einer IP-Firewall mithilfe einer Resource Manager-Vorlage
Zum Konfigurieren der Zugriffssteuerung für Ihr Azure Cosmos DB-Konto muss in der Resource Manager-Vorlage das Attribut ipRules mit einem Array der zugelassenen IP-Adressbereiche angegeben sein. Wenn Sie die IP-Firewall für ein bereits bereitgestelltes Azure Cosmos DB-Konto konfigurieren, stellen Sie sicher, dass das locations
-Array mit dem aktuell bereitgestellten übereinstimmt. Sie können nicht gleichzeitig das locations
-Array und andere Eigenschaften ändern. Weitere Informationen und Beispiele zu Azure Resource Manager-Vorlagen für Azure Cosmos DB finden Sie unter Azure Resource Manager-Vorlagen für Azure Cosmos DB.
Wichtig
Die Eigenschaft ipRules wurde in API-Version 2020-04-01 eingeführt. In früheren Versionen wurde stattdessen die Eigenschaft ipRangeFilter verfügbar gemacht: eine Liste mit durch Trennzeichen getrennten IP-Adressen.
Das Beispiel zeigt, wie die Eigenschaft ipRules in der API-Version 2020-04-01 oder höher verfügbar gemacht wird:
{
"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"
}
]
}
}
Hier sehen Sie dasselbe Beispiel für eine beliebige API-Version vor 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"
}
}
Konfigurieren einer IP-Zugriffssteuerungsrichtlinie über die Azure CLI
Der folgende Befehl zeigt, wie ein Azure Cosmos DB-Konto mit IP-Zugriffssteuerung erstellt wird:
# 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
Konfigurieren einer IP-Zugriffssteuerungsrichtlinie mithilfe von PowerShell
Das folgende Skript zeigt, wie Sie ein Azure Cosmos DB-Konto mit IP-Zugriffssteuerung erstellen:
# 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
Behandeln von Problemen mit einer IP-Zugriffssteuerungsrichtlinie
Sie haben folgende Optionen, um Probleme mit einer IP-Zugriffssteuerungsrichtlinie zu behandeln:
Azure-Portal
Durch das Aktivieren einer IP-Zugriffssteuerungsrichtlinie für Ihr Azure Cosmos DB-Konto werden alle Anforderungen für das Konto von Computern außerhalb der Liste der zugelassenen IP-Adressbereiche blockiert. Um Vorgänge auf Portaldatenebene zu ermöglichen, z.B. das Durchsuchen von Containern und das Abfragen von Dokumenten, müssen Sie den Zugriff über das Azure-Portal im Bereich Firewall im Portal explizit zulassen.
SDKs
Beim Zugriff auf Azure Cosmos DB-Ressourcen mithilfe von SDKs über Computer, die nicht in der Zulassungsliste enthalten sind, wird eine generische Antwort 403: Unzulässig ohne weitere Details zurückgegeben. Überprüfen Sie die Liste der zugelassenen IP-Adressen für Ihr Konto, und stellen Sie sicher, dass die richtige Richtlinienkonfiguration auf das Cosmos DB-Konto angewendet wird.
Überprüfen von Quell-IP-Adressen in blockierten Anforderungen
Aktivieren Sie die Diagnoseprotokollierung für Ihr Azure Cosmos DB-Konto. Diese Protokolle zeigen jede Anforderung und Antwort. Die firewallbezogenen Meldungen werden mit einem „403“-Rückgabecode protokolliert. Wenn Sie diese Meldungen filtern, können Sie die Quell-IP-Adressen für die blockierten Anforderungen anzeigen. Siehe Diagnoseprotokollierung für Azure Cosmos DB.
Anforderungen über ein Subnetz mit einem aktiviertem Dienstendpunkt für Azure Cosmos DB
Bei Anforderungen über ein Subnetz in einem virtuellen Netzwerk, für das der Dienstendpunkt für Azure Cosmos DB aktiviert ist, werden die Identitäten des virtuellen Netzwerks und des Subnetzes an Azure Cosmos DB-Konten gesendet. Diese Anforderungen enthalten nicht die öffentliche IP-Adresse der Quelle und werden deshalb durch die IP-Filter abgelehnt. Um den Zugriff über bestimmte Subnetze in virtuellen Netzwerken zu ermöglichen, fügen Sie eine VNET-Zugriffssteuerungsliste hinzu. Informationen dazu finden Sie unter Konfigurieren des VNET- und subnetzbasierten Zugriffs für Ihr Azure Cosmos DB-Konto. Es kann bis zu 15 Minuten dauern, bis Firewallregeln angewendet werden, und während dieses Zeitraums zeigt die Firewall möglicherweise ein inkonsistentes Verhalten.
Private IP-Adressen in der Liste zulässiger Adressen
Wenn die Liste zulässiger Adressen private IP-Adressen enthält, kann ein Azure Cosmos DB-Konto nicht erstellt oder aktualisiert werden. Stellen Sie sicher, dass in der Liste keine privaten IP-Adressen angegeben sind.