Configurer un pare-feu IP dans Azure Cosmos DB

S’APPLIQUE À : NoSQL MongoDB Cassandra Gremlin Table

Pour sécuriser les données stockées dans votre compte, Azure Cosmos DB prend en charge un modèle d’autorisation basé sur un secret, qui utilise un code d’authentification de message basé sur un hachage (Hash-based Message Authentication Code, HMAC) fort. De plus, Azure Cosmos DB prend en charge les contrôles d’accès basés sur IP pour le pare-feu entrant. Ce modèle est semblable aux règles de pare-feu d’un système de base de données classique et renforce la sécurité de votre compte. Avec des pare-feu, vous pouvez configurer un compte Azure Cosmos DB pour qu’il soit uniquement accessible à partir d’un ensemble d’ordinateurs et/ou de services cloud approuvés. L’accès aux données stockées dans votre base de données Azure Cosmos DB à partir de ces ensembles d’ordinateurs et de services approuvés nécessite toujours que l’appelant présente un jeton d’autorisation valide.

Contrôle d’accès IP

Par défaut, votre compte Azure Cosmos DB est accessible depuis Internet, tant que la demande est accompagnée d’un jeton d’autorisation valide. Pour configurer le contrôle d’accès basé sur la stratégie IP, l’utilisateur doit fournir le jeu d’adresses IP ou de plages d’adresses IP au format CIDR (Classless Inter-Domain Routing) afin de l’ajouter à la liste des adresses IP clientes autorisées à accéder à un compte Azure Cosmos DB donné. Une fois cette configuration appliquée, toutes les demandes provenant d'ordinateurs qui ne figurent pas sur cette liste autorisée reçoivent une réponse 403 (Interdit). Lorsque vous utilisez un pare-feu IP, il est recommandé d’autoriser le portail Azure à accéder à votre compte. L’accès est requis pour autoriser l’utilisation de l’Explorateur de données ainsi que pour récupérer des métriques pour votre compte qui s’affichent sur le portail Azure. Lorsque vous utilisez l’explorateur de données, en plus de permettre au portail Azure d'accéder à votre compte, vous devez mettre à jour vos paramètres de pare-feu pour ajouter votre adresse IP actuelle aux règles de pare-feu. Notez que les modifications de pare-feu peuvent prendre jusqu’à 15 minutes pour se propager et que le pare-feu peut présenter un comportement incohérent pendant cette période.

Vous pouvez combiner des pare-feu IP avec le contrôle d’accès de réseau virtuel et de sous-réseau. En les combinant, vous pouvez limiter l’accès à n’importe quelle source qui a une adresse IP publique et/ou à partir d’un sous-réseau spécifique au sein du réseau virtuel. Pour en savoir plus sur l’utilisation du contrôle d’accès basé sur le sous-réseau et le réseau virtuel, consultez Accéder aux ressources Azure Cosmos DB à partir de réseaux virtuels.

Pour résumer, le jeton d’autorisation est toujours requis pour accéder à un compte Azure Cosmos DB. Si le pare-feu IP et la liste de contrôle d’accès (ACL) de réseau virtuel ne sont pas configurés, le compte Azure Cosmos DB est accessible avec le jeton d’autorisation. Une fois que le pare-feu IP ou la liste de contrôle d’accès (ACL) de réseau virtuel (ou les deux) sont configurés sur le compte Azure Cosmos DB, seules les demandes provenant des sources que vous avez spécifiées (et avec le jeton d’autorisation) obtiennent des réponses valides.

Vous pouvez sécuriser les données stockées dans votre compte Azure Cosmos DB à l’aide de pare-feu IP. Azure Cosmos DB prend en charge les contrôles d’accès basés sur IP pour le pare-feu entrant. Vous pouvez définir un pare-feu IP sur le compte Azure Cosmos DB de l’une des manières suivantes :

  • À partir du portail Azure
  • De manière déclarative en utilisant un modèle Azure Resource Manager
  • Par programmation avec Azure CLI ou Azure PowerShell en mettant à jour la propriété ipRangeFilter

Configurer un pare-feu IP à l’aide du portail Azure

Pour définir la stratégie de contrôle d’accès IP dans le portail Azure, accédez à la page du compte Azure Cosmos DB, puis sélectionnez Pare-feu et réseaux virtuels dans le menu de navigation. Définissez la valeur Autoriser l’accès depuis sur Réseaux sélectionnés, puis choisissez Enregistrer. Si vous modifiez les paramètres du réseau d'accès public, soit en le désactivant, soit en l'autorisant pour tous les réseaux, vous perdrez l'IP du pare-feu que vous avez peut-être configuré auparavant.

Capture d’écran montrant comment ouvrir la page Pare-feu sur le Portail Azure

Lorsque le contrôle d’accès IP est activé, le portail Azure offre la possibilité de spécifier des adresses IP, des plages d’adresses IP et des commutateurs. Les commutateurs permettent d’accéder à d’autres services Azure et au portail Azure. Les sections suivantes fournissent plus d’informations sur ces commutateurs.

Notes

Une fois la stratégie de contrôle d’accès IP activée pour votre compte Azure Cosmos DB, toutes les demandes envoyées à votre compte Azure Cosmos DB à partir d’ordinateurs ne figurant pas dans la liste autorisée de plages d’adresses IP sont refusées. L’exploration de ressources Azure Cosmos DB à partir du portail est également bloquée pour garantir l’intégrité du contrôle d’accès.

Autoriser les demandes à partir du portail Azure

Lorsque vous activez une stratégie de contrôle d’accès IP par programme, vous devez ajouter l’adresse IP du Portail Azure à la propriété ipRangeFilter pour conserver l’accès. Les adresses IP du portail sont :

Région Adresse IP
Chine 139.217.8.252
Gouvernement des États-Unis 52.244.48.71
Toutes les autres régions 104.42.195.92,40.76.54.131,52.176.6.30,52.169.50.45,52.187.184.26

Vous pouvez autoriser l’accès de demandes au portail Azure en sélectionnant l’option Autoriser l’accès à partir du portail Azure, comme illustré dans la capture d’écran suivante :

Capture d’écran montrant comment activer l’accès au Portail Azure

Nouvelles adresses IP du Portail Azure

Les services du portail Cosmos DB seront transférés vers une nouvelle infrastructure en 2024. Dans le cadre de cette transition, il est nécessaire d’attribuer de nouvelles adresses IP aux comptes pour lesquels le pare-feu est activé afin qu’ils puissent continuer à accéder à certaines fonctionnalités du portail, telles que l’Explorateur de données. Ce changement introduit également des adresses IP dédiées pour les comptes Mongo DB et Apache Cassandra API.

Pendant cette transition, l’option Autoriser l’accès à partir du Portail Azure ajoute les adresses IP actuelles et nouvelles aux paramètres de pare-feu de compte (y compris les adresses spécifiques MongoDB et Cassandra pour ces comptes). Lorsque la transition sera terminée, une option du portail sera disponible pour supprimer les anciennes adresses IP.

Azure public
API compte de base de données Adresses IP
Tous 13.91.105.215, 4.210.172.107, 13.88.56.148, 40.91.218.243
MongoDB uniquement 20.245.81.54, 40.118.23.126, 40.80.152.199, 13.95.130.121
Apache Cassandra uniquement 40.113.96.14, 104.42.11.145, 137.117.230.240, 168.61.72.237
Azure Chine
API compte de base de données Adresses IP
Tous 163.228.137.6, 143.64.170.142
MongoDB uniquement 52.131.240.99, 143.64.61.130
Apache Cassandra uniquement 40.73.99.146, 143.64.62.47
Azure US Government
API compte de base de données Adresses IP
Tous 52.247.163.6, 52.244.134.181
MongoDB uniquement 52.244.176.112, 52.247.148.42
Apache Cassandra uniquement 52.244.50.101, 52.227.165.24

Remarque

Si vous rencontrez des difficultés pour vous connecter à votre compte Azure Cosmos DB à partir de l’Explorateur de données, consultez le guide de résolution des problèmes Data Explorer.

Autoriser les demandes à partir de centres de données Azure internationaux ou d’autres sources au sein d’Azure

Si vous accédez à votre compte Azure Cosmos DB à partir de services qui ne fournissent pas d’adresse IP statique (par exemple, Azure Stream Analytics et Azure Functions), vous pouvez toujours utiliser le pare-feu IP pour limiter l’accès. Vous pouvez autoriser l’accès à partir d’autres sources au sein du portail Azure en sélectionnant l’option Accepter les connexions des centres de données Azure, comme illustré dans la capture d’écran suivante :

Capture d'écran montrant comment accepter les connexions des centres de données Azure

Lorsque vous activez cette option, l’adresse IP 0.0.0.0 est ajoutée à la liste des adresses IP autorisées. L’adresse IP 0.0.0.0 limite les demandes envoyées à votre compte Azure Cosmos DB à partir de la plage d’adresses IP du centre de données Azure. Ce paramètre n’autorise aucune autre plage d’adresses IP à accéder à votre compte Azure Cosmos DB.

Notes

Cette option configure le pare-feu pour autoriser toutes les demandes d’Azure, notamment les demandes envoyées par les abonnements d’autres clients déployés dans Azure. Comme la liste des adresses IP autorisées par cette option est grande, elle limite l’efficacité d’une stratégie de pare-feu. Utilisez cette option uniquement si vos demandes ne proviennent pas d’adresses IP statiques ou de sous-réseaux de réseaux virtuels. Comme le portail est déployé dans Azure, quand vous choisissez cette option, vous autorisez automatiquement l’accès à partir du portail Azure.

Demandes à partir de votre adresse IP actuelle

Pour simplifier le développement, le portail Azure vous aide à identifier et à ajouter l’adresse IP de votre ordinateur client à la liste autorisée, afin que les applications qui exécutent votre machine puissent accéder au compte Azure Cosmos DB.

Le portail détecte automatiquement l’adresse IP du client. Il peut s’agir de l’adresse IP de votre ordinateur ou de votre passerelle réseau. N’oubliez pas de supprimer cette adresse IP avant de mettre vos charges de travail en production.

Pour ajouter votre adresse IP actuelle à la liste des adresses IP, sélectionnez Ajouter mon adresse IP actuelle. Ensuite, sélectionnez Enregistrer.

Capture d’écran montrant comment configurer les paramètres de pare-feu pour l’adresse IP actuelle

Demandes à partir de services cloud

Dans Azure, les services cloud sont une méthode courante d’hébergement de la logique de service de couche intermédiaire à l’aide d’Azure Cosmos DB. Pour autoriser l’accès à votre compte Azure Cosmos DB à partir d’un service cloud, vous devez ajouter l’adresse IP publique de ce dernier à la liste autorisée d’adresses IP associées à votre compte Azure Cosmos DB en configurant la stratégie de contrôle d’accès IP. De cette façon, toutes les instances de rôle des services cloud ont accès à votre compte Azure Cosmos DB.

Vous pouvez récupérer des adresses IP pour vos services cloud dans le portail Azure, comme illustré dans la capture d’écran suivante :

Capture d’écran illustrant l’adresse IP publique pour un service cloud affichée dans le portail Azure

Quand vous effectuez un scale-out de votre service cloud en ajoutant des instances de rôle, ces nouvelles instances ont automatiquement accès au compte Azure Cosmos DB car elles font partie du même service cloud.

Demandes à partir de machines virtuelles

Vous pouvez également utiliser des machines virtuelles ou des jeux de mise à l’échelle de machine virtuelle pour héberger les services de couche intermédiaire à l’aide d’Azure Cosmos DB. Pour configurer votre compte Azure Cosmos DB afin qu’il autorise l’accès à partir de machines virtuelles, vous devez configurer l’adresse IP publique de la machine virtuelle et/ou du groupe de machines virtuelles identiques comme étant l’une des adresses IP autorisées pour votre compte Azure Cosmos DB en configurant la stratégie de contrôle d’accès IP.

Vous pouvez récupérer des adresses IP pour les machines virtuelles dans le portail Azure, comme illustré dans la capture d’écran suivante :

Capture d’écran illustrant une adresse IP publique pour une machine virtuelle affichée dans le portail Azure

Quand vous ajoutez des instances de machine virtuelle au groupe, elles ont automatiquement accès à votre compte Azure Cosmos DB.

Demandes à partir d’Internet

Quand vous accédez à votre compte Azure Cosmos DB à partir d’un ordinateur sur Internet, l’adresse IP ou la plage d’adresses IP de l’ordinateur doit être ajoutée à la liste d’adresses IP autorisées pour votre compte.

Ajouter des règles de trafic sortant au pare-feu

Pour accéder à la liste actuelle des plages d’adresses IP sortantes à ajouter à vos paramètres de pare-feu, consultez Télécharger des plages d’adresses IP et des étiquettes de service Azure.

Pour automatiser la liste, consultez Utiliser l’API Service Tag Discovery.

Configurer un pare-feu IP à l’aide d’un modèle Resource Manager

Pour configurer le contrôle d'accès à votre compte Azure Cosmos DB, vérifiez que le modèle Resource Manager spécifie la propriété ipRules avec un tableau de plages d'adresses IP autorisées. Si vous configurez le pare-feu IP sur un compte Azure Cosmos DB déjà déployé, vérifiez que le tableau locations correspond à ce qui est actuellement déployé. Vous ne pouvez pas modifier simultanément le tableau locations et d’autres propriétés. Pour plus d’informations et pour obtenir des exemples de modèles Azure Resource Manager pour Azure Cosmos DB, consultez Modèles Azure Resource Manager pour Azure Cosmos DB.

Important

La propriété ipRules a été introduite avec la version 2020-04-01 de l'API. Les versions précédentes exposaient plutôt une propriété ipRangeFilter, qui correspond à une liste d'adresses IP séparées par des virgules.

L'exemple ci-dessous montre comment la propriété ipRules est exposée dans la version 2020-04-01 ou ultérieure de l'API :

{
  "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"
      }
    ]
  }
}

Voici le même exemple pour toute version de l'API antérieure à la version 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"
  }
}

Configurer une stratégie de contrôle d’accès IP à l’aide d’Azure CLI

La commande suivante montre comment créer un compte Azure Cosmos DB avec le contrôle d’accès 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

Configurer une stratégie de contrôle d’accès IP à l’aide de PowerShell

Le script suivant montre comment créer un compte Azure Cosmos DB avec contrôle d’accès 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

Résoudre les problèmes de stratégie de contrôle d’accès IP

Vous pouvez résoudre les problèmes de stratégie de contrôle d’accès IP en utilisant les options suivantes :

Portail Azure

En activant une stratégie de contrôle d’accès IP pour votre compte Azure Cosmos DB, vous bloquez toutes les demandes envoyées à votre compte à partir d’ordinateurs ne figurant pas dans la liste autorisée de plages d’adresses IP. Pour autoriser des opérations de plan de données du portail comme la navigation dans les conteneurs et l’interrogation de documents, vous devez autoriser explicitement l’accès au portail Azure à l’aide du volet Pare-feu du portail.

Kits SDK

Lorsque vous accédez à des ressources Azure Cosmos DB à l’aide de kits SDK sur des ordinateurs qui ne sont pas dans la liste autorisée, une réponse générique 403 Interdit est renvoyée sans plus de détails. Vérifiez la liste d’adresses IP autorisées pour votre compte et vérifiez que la configuration de stratégie appropriée est appliquée à votre compte Azure Cosmos DB.

Adresses IP sources dans les demandes bloquées

Activez la journalisation des diagnostics sur votre compte Azure Cosmos DB. Ces journaux d’activité affichent chaque demande et réponse. Les messages associés au pare-feu sont journalisés avec le code de retour 403. En filtrant ces messages, vous pouvez voir les adresses IP sources des demandes bloquées. Consultez Journalisation des diagnostics Azure Cosmos DB.

Demandes à partir d’un sous-réseau avec un point de terminaison de service activé pour Azure Cosmos DB

Les demandes à partir d’un sous-réseau de réseau virtuel avec un point de terminaison de service activé pour Azure Cosmos DB envoient l’identité de réseau virtuel et de sous-réseau aux comptes Azure Cosmos DB. Comme ces demandes n’ont pas l’adresse IP publique de la source, les filtres IP les rejettent. Pour autoriser l’accès à partir de sous-réseaux spécifiques de réseaux virtuels, ajoutez une liste de contrôle d’accès, comme indiqué dans Configurer l’accès à votre compte Azure Cosmos DB à partir d’un réseau virtuel et d’un sous-réseau. L’application de règles de pare-feu peut prendre jusqu’à 15 minutes et le pare-feu peut présenter un comportement incohérent pendant cette période.

Adresses IP privées dans la liste des adresses autorisées

La création ou la mise à jour d’un compte Azure Cosmos DB avec une liste d’adresses autorisées contenant des adresses IP privées échouera. Assurez-vous qu'aucune adresse IP privée ne figure dans la liste.

Étapes suivantes

Pour configurer un point de terminaison de service de réseau virtuel pour votre compte Azure Cosmos DB, consultez les articles suivants :