Tutoriel : Stocker et utiliser des informations d’identification Azure Cosmos DB avec Azure Key Vault
S’APPLIQUE À : NoSQL MongoDB Cassandra Gremlin Table
Important
Il est recommandé d’accéder à Azure Cosmos DB en utilisant une identité managée affectée par le système. Si la solution d’identité managée et la solution basée sur le certificat ne répondent pas à vos besoins, utilisez la solution Azure Key Vault mentionnée dans cet article.
Si vous utilisez Azure Cosmos DB comme base de données, vous vous connectez aux bases de données, au conteneur et aux éléments à l’aide d’un SDK, du point de terminaison d’API et de la clé primaire ou secondaire.
Il n’est pas recommandé de stocker l’URI du point de terminaison et les clés en lecture-écriture sensibles directement dans le code de l’application ou le fichier de configuration. L’idéal consiste à lire ces données à partir de variables d’environnement au sein de l’hôte. Dans Azure App Service, les paramètres d’application vous permettent d’injecter des informations d’identification d’exécution pour votre compte Azure Cosmos DB sans que les développeurs n’aient besoin de stocker ces informations d’identification sous forme de texte clair non sécurisé.
Azure Key Vault s’appuie sur cette bonne pratique en vous permettant de stocker ces informations d’identification de manière sécurisée tout en donnant à des services comme Azure App Service un accès managé aux informations d’identification. Azure App Service lit en toute sécurité vos informations d’identification issues d’Azure Key Vault et les injecte dans votre application en cours d’exécution.
Cette bonne pratique permet aux développeurs de stocker les informations d’identification pour des outils comme l’émulateur Azure Cosmos DB ou Essayer Azure Cosmos DB gratuitement pendant le développement. Ensuite, l’équipe des opérations peut veiller à ce que les paramètres de production appropriés soient injectés au moment de l’exécution.
Dans ce tutoriel, vous allez apprendre à :
- Créer une instance Azure Key Vault
- Ajouter des informations d’identification Azure Cosmos DB en tant que secrets au coffre de clés
- Créer et inscrire une ressource Azure App Service et accorder des autorisations de « lecture de clé »
- Injecter des secrets de coffre de clés dans la ressource App Service
Notes
Ce tutoriel et l’exemple d’application utilisent un compte Azure Cosmos DB for NoSQL. Vous pouvez effectuer la plupart des mêmes étapes à l’aide d’autres API.
Prérequis
- Un compte Azure Cosmos DB for NoSQL existant.
- Si vous n’avez pas d’abonnement Azure, créez-en un.
- Si vous n’avez pas d’abonnement Azure, créez un compte gratuit avant de commencer.
- Vous pouvez également essayer Azure Cosmos DB gratuitement avant de vous engager.
- Un compte GitHub.
Avant de commencer : Obtenir des informations d’identification Azure Cosmos DB
Avant de commencer, vous allez obtenir les informations d’identification de votre compte existant.
Accédez à la page du portail Azure du compte Azure Cosmos DB for NoSQL existant.
Dans la page du compte d’Azure Cosmos DB for NoSQL, sélectionnez l’option de menu de navigation Clés.
Enregistrez les valeurs des champs URI et CLÉ PRIMAIRE. Vous allez utiliser ces valeurs plus tard dans ce tutoriel.
Créer une ressource Azure Key Vault
Tout d’abord, créez un coffre de clés pour stocker les informations d’identification de votre API pour NoSQL.
Connectez-vous au portail Azure.
Sélectionnez Créer une ressource > Sécurité > Coffre de clés.
Dans la page Créer un coffre de clés, indiquez les informations suivantes :
Paramètre Description Abonnement Sélectionnez l’abonnement Azure à utiliser pour ce compte Azure Cosmos. Groupe de ressources Sélectionnez un groupe de ressources ou sélectionnez Créer, puis entrez un nom unique pour le nouveau groupe de ressources. Nom du coffre de clés Entrez un nom globalement unique pour votre point de terminaison. Région Sélectionnez la zone géographique dans laquelle héberger votre compte Azure Cosmos DB. Utilisez l’emplacement le plus proche de vos utilisateurs pour leur donner l’accès le plus rapide possible aux données. Niveau tarifaire Sélectionnez Standard. Conservez les valeurs par défaut des paramètres restants.
Sélectionnez Revoir + créer.
Passez en revue les paramètres que vous fournissez, puis sélectionnez Créer. La création du compte prend quelques minutes. Attendez que la page du portail affiche Votre déploiement est terminé.
Ajouter des clés d’accès Azure Cosmos DB au coffre de clés
À présent, stockez vos informations d’identification Azure Cosmos DB en tant que secrets dans le coffre de clés.
Sélectionnez Accéder à la ressource pour accéder à la page de la ressource Azure Key Vault.
Dans la page de la ressource Azure Key Vault, sélectionnez l’option de menu Secrets.
Sélectionnez Générer/importer dans le menu.
Dans la page Créer un secret, indiquez les informations suivantes :
Paramètre Description Options de chargement Manuel Nom cosmos-endpoint Valeur du secret Entrez l’URI que vous avez copié précédemment dans ce tutoriel. Sélectionnez Créer pour créer le secret cosmos-endpoint.
Sélectionnez une nouvelle fois Générer/importer dans le menu. Dans la page Créer un secret, indiquez les informations suivantes :
Paramètre Description Options de chargement Manuel Nom cosmos-readwrite-key Valeur du secret Entrez la CLÉ PRIMAIRE que vous avez copiée précédemment dans ce tutoriel. Sélectionnez Créer pour créer le secret cosmos-readwrite-key.
Une fois les secrets créés, consultez-les dans la liste des secrets de la page Secrets.
Sélectionnez chaque clé, sélectionnez la dernière version, puis copiez l’identificateur de secret. Vous allez utiliser l’identificateur des secrets cosmos-endpoint et cosmos-readwrite-key plus tard dans ce tutoriel.
Conseil
L’identificateur de secret aura le format
https://<key-vault-name>.vault.azure.net/secrets/<secret-name>/<version-id>
. Par exemple, si le nom du coffre de clés est msdocs-key-vault, le nom de la clé est cosmos-readwrite-key et la version est 83b995e363d947999ac6cf487ae0e12e, alors l’identificateur de secret esthttps://msdocs-key-vault.vault.azure.net/secrets/cosmos-readwrite-key/83b995e363d947999ac6cf487ae0e12e
.
Créer et inscrire une application web Azure auprès d’Azure Key Vault
Dans cette section, créez une application web Azure, déployez un exemple d’application, puis inscrivez l’identité managée de l’application web auprès d’Azure Key Vault.
Créez un dépôt GitHub à l’aide du modèle cosmos-db-nosql-dotnet-sample-web-environment-variables.
Dans le portail Azure, sélectionnez Créer une ressource > Web > Application web.
Dans la page Créer une application web et sous l’onglet Informations de base, indiquez les informations suivantes :
Paramètre Description Abonnement Sélectionnez l’abonnement Azure à utiliser pour ce compte Azure Cosmos. Groupe de ressources Sélectionnez un groupe de ressources ou sélectionnez Créer, puis entrez un nom unique pour le nouveau groupe de ressources. Nom Entrez un nom globalement unique pour votre application web. Publier Sélectionnez Code. Pile d’exécution Sélectionnez .NET 6 (LTS). Système d’exploitation Sélectionnez Windows. Région Sélectionnez la zone géographique dans laquelle héberger votre compte Azure Cosmos DB. Utilisez l’emplacement le plus proche de vos utilisateurs pour leur donner l’accès le plus rapide possible aux données. Conservez les valeurs par défaut des paramètres restants.
Sélectionnez Suivant : Déploiement.
Sous l’onglet Déploiement, indiquez les informations suivantes :
Paramètre Description Déploiement continu Sélectionnez Activer. Compte GitHub Sélectionnez Autoriser. Suivez les invites d’autorisation de compte GitHub pour accorder à Azure l’autorisation de lire votre dépôt GitHub nouvellement créé. Organisation Sélectionnez l’organisation pour votre nouveau dépôt GitHub. Référentiel Sélectionnez le nom de votre nouveau dépôt GitHub. Branche Sélectionnez principal. Sélectionnez Revoir + créer.
Passez en revue les paramètres que vous fournissez, puis sélectionnez Créer. La création du compte prend quelques minutes. Attendez que la page du portail affiche Votre déploiement est terminé.
Vous devrez éventuellement attendre quelques minutes supplémentaires pour que l’application web soit initialement déployée. Dans la page de la ressource Azure Web App, sélectionnez Parcourir pour voir l’état par défaut de l’application.
Sélectionnez l’option de menu de navigation Identité.
Dans la page Identité, sélectionnez Activé pour Identité managée affectée par le système, puis sélectionnez Enregistrer.
Injecter des secrets Azure Key Vault en tant que paramètres de l’application web Azure
Enfin, injectez les secrets stockés dans votre coffre de clés en tant que paramètres d’application dans l’application web. Les paramètres d’application injectent à leur tour les informations d’identification dans l’application au moment de l’exécution sans les stocker en texte clair.
Revenez à la page du coffre de clés dans le portail Azure. Sélectionnez Stratégies d’accès à partir du menu de navigation.
Dans la page Stratégies d’accès, sélectionnez Créer dans le menu.
Sous l’onglet Autorisations de la page Créer une stratégie d’accès, sélectionnez l’option Obtenir dans la section Autorisations du secret. Sélectionnez Suivant.
Sous l’onglet Principal, sélectionnez le nom de l’application web que vous avez créée précédemment dans ce tutoriel. Sélectionnez Suivant.
Notes
Dans cet exemple de capture d’écran, l’application web porte le nom msdocs-dotnet-web.
Sélectionnez encore Suivant pour ignorer l’onglet Application. Sous l’onglet Vérifier + créer, passez en revue les paramètres que vous avez indiqués, puis sélectionnez Créer.
Revenez à la page de l’application web dans le portail Azure. Sélectionnez Configuration dans le menu de navigation.
Dans la page Configuration, sélectionnez Nouveau paramètre d’application. Dans la boîte de dialogue Ajouter/modifier le paramètre d’application, entrez les informations suivantes :
Paramètre Description Nom CREDENTIALS__ENDPOINT
Clé Obtenez l’identificateur de secret pour le secret cosmos-endpoint dans votre coffre de clés que vous avez créé précédemment dans ce tutoriel. Entrez l’identificateur au format suivant : @Microsoft.KeyVault(SecretUri=<secret-identifier>)
.Conseil
Vérifiez que la variable d’environnement a pour valeur un double trait de soulignement (
__
) au lieu d’un seul. Le double trait de soulignement est un délimiteur de clé pris en charge par .NET sur toutes les plateformes. Pour plus d’informations, consultez la configuration des variables d’environnement.Notes
Par exemple, si l’identificateur de secret est
https://msdocs-key-vault.vault.azure.net/secrets/cosmos-endpoint/69621c59ef5b4b7294b5def118921b07
, alors la référence est@Microsoft.KeyVault(SecretUri=https://msdocs-key-vault.vault.azure.net/secrets/cosmos-endpoint/69621c59ef5b4b7294b5def118921b07)
.Sélectionnez OK pour conserver le nouveau paramètre d’application.
Sélectionnez encore Nouveau paramètre d’application. Dans la boîte de dialogue Ajouter/modifier le paramètre d’application, entrez les informations suivantes, puis sélectionnez OK :
Paramètre Description Nom CREDENTIALS__KEY
Clé Obtenez l’identificateur de secret pour le secret cosmos-readwrite-key dans votre coffre de clés que vous avez créé précédemment dans ce tutoriel. Entrez l’identificateur au format suivant : @Microsoft.KeyVault(SecretUri=<secret-identifier>)
.Revenez à la page Configuration, puis sélectionnez Enregistrer pour mettre à jour les paramètres de l’application web.
Attendez quelques minutes que l’application web redémarre avec les nouveaux paramètres d’application. À ce stade, les nouveaux paramètres d’application doivent indiquer qu’ils correspondent à une référence de coffre de clés.
Dans le menu de navigation, sélectionnez Vue d’ensemble. Sélectionnez Parcourir pour voir l’application avec les informations d’identification renseignées.
Étapes suivantes
- Pour configurer un pare-feu pour Azure Cosmos DB, voir l’article Prise en charge du pare-feu.
- Pour configurer le point de terminaison de service de réseau virtuel, consultez l’article Sécuriser l’accès à l’aide du point de terminaison de service de réseau virtuel.