Meilleures pratiques pour la protection de secrets
Cet article fournit des conseils sur la protection de vos secrets et la réduction du risque d’accès non autorisé. Suivez ces conseils pour veiller à ne pas stocker des informations sensibles, telles que les informations d’identification, dans du code, des référentiels GitHub, des journaux ou des pipelines d’intégration continue et livraison continue (CI/CD). Les conseils de cet article sont compilés à partir de recommandations de services individuels, ainsi que du benchmark Microsoft Cloud Security (MCSB).
Bonnes pratiques générales
Dans le paysage numérique actuel, la sécurisation des informations sensibles telles que les informations d’identification de l’application et les secrets est primordiale. Une violation de la sécurité peut avoir des conséquences graves, notamment la perte de données, les pénalités financières et les dommages à la réputation. La mise en œuvre d’une stratégie de gestion des secrets complète est essentielle pour atténuer ces risques.
Effectuer un audit pour identifier les secrets
Avant de pouvoir sécuriser vos secrets, vous devez savoir où ils se trouvent. La réalisation d’un audit approfondi de vos systèmes et applications permet d’identifier toutes les informations sensibles qui nécessitent une protection. Cela inclut les mots de passe, les clés API, les chaînes de connexion et d’autres informations d’identification. Les audits réguliers garantissent que les nouveaux secrets sont pris en compte et que les secrets existants sont correctement gérés.
Il est important de noter que même les secrets créés dynamiquement, tels que les jetons OAuth, qui peuvent être temporaires, doivent tout de même être protégés avec la même rigueur que les secrets à long terme.
Éviter les secrets codés de manière irréversible
L’incorporation de secrets directement dans votre code ou vos fichiers configuration est un risque de sécurité important. Si votre codebase est compromis, vos secrets le sont également. Utilisez plutôt des variables d’environnement ou des outils de gestion de la configuration qui gardent les secrets hors de votre code source. Cette pratique réduit le risque d’exposition accidentelle et simplifie le processus de mise à jour des secrets.
En outre, l’intégration de la récupération des secrets dans votre pipeline de déploiement automatisé et l’utilisation de modèles d’injection de secrets peuvent empêcher l’exposition accidentelle de secrets dans les journaux ou le contrôle de version, ce qui renforce encore la sécurité de votre processus de déploiement.
Consultez Recommandations à suivre pour protéger les secrets d’application.
Utiliser des magasins de clés sécurisés
L’utilisation des magasins de clés sécurisés garantit que vos secrets sont stockés dans un emplacement sécurisé et chiffré. Les services tels qu’Azure Key Vault et Azure Managed HSM fournissent des fonctionnalités de sécurité robustes, notamment le contrôle d’accès, la journalisation et la rotation automatique. Cette approche centralise la gestion de vos secrets et réduit le risque d’accès non autorisé.
Pour une sécurité accrue, en particulier pour les secrets hautement sensibles ou critiques, envisagez de chiffrer le secret avec un magasin de clés dans un modèle de sécurité matérielle (HSM), qui offre une protection améliorée par rapport aux magasins de secrets basés sur un logiciel. Pour obtenir une vue d’ensemble de toutes les offres de gestion des clés dans Azure et des conseils sur le choix à faire, consultez Gestion des clés dans Azure et Comment choisir la solution de gestion des clés appropriée.
Implémenter des outils d’analyse des secrets
L’analyse régulière de votre codebase pour les secrets incorporés peut empêcher une exposition accidentelle. Les outils tels que le scanneur d’informations d’identification Azure DevOps et la fonctionnalité d’analyse des secrets GitHub peuvent détecter et alerter automatiquement les secrets trouvés dans vos référentiels. L’intégration de ces outils dans votre pipeline CI/CD garantit une surveillance continue. Il est essentiel de traiter tout secret trouvé par ces outils d’analyse comme compromis, ce qui signifie qu’il doit être immédiatement supprimé et remplacé pour maintenir l’intégrité de votre sécurité.
Tirer parti des identités managées
Les identités managées dans Azure offrent un moyen sécurisé aux applications de s’authentifier auprès des services Azure sans stocker d’informations d’identification dans le code. En activant des identités managées pour les ressources Azure, vous pouvez accéder en toute sécurité à Azure Key Vault et à d’autres services, ce qui réduit la nécessité de gérer manuellement les secrets. Cette approche permet non seulement de minimiser la création de secrets, mais aussi de réduire la surface des violations potentielles, puisque la responsabilité de la gestion des informations d’identification est déléguée à la plateforme.
Appliquer un contrôle d’accès granulaire
Suivez le principe du privilège minimum en appliquant un contrôle d’accès granulaire à vos secrets. Utilisez le contrôle d’accès en fonction du rôle Azure (RBAC) pour vous assurer que seules les entités autorisées ont accès à des secrets spécifiques. Passez régulièrement en revue et mettez à jour les autorisations d’accès pour empêcher tout accès non autorisé. Il est également conseillé d’implémenter des rôles distincts tels que l’utilisateur, l’administrateur et l’auditeur pour gérer l’accès aux secrets, ce qui garantit que seules les identités approuvées ont le niveau d’autorisation approprié.
Consultez le guide RBAC d’Azure Key Vault.
Faire pivoter régulièrement les secrets
Les secrets peuvent faire l’objet d’une fuite ou d’une exposition au fil du temps. La rotation régulière de vos secrets réduit le risque d’accès non autorisé. Vous pouvez faire pivoter les secrets dans Azure Key Vault pour certains secrets ; pour ceux qui ne peuvent pas être automatiquement pivotés, établissez un processus de rotation manuel et assurez-vous qu’ils sont vidés lorsqu’ils ne sont plus utilisés.
L’automatisation du processus de rotation des secrets et la création d’une redondance dans votre gestion des secrets peuvent garantir que la rotation n’interrompt pas la disponibilité du service. L’implémentation de la logique de nouvelle tentative et des modèles d’accès simultanés dans votre code peut aider à réduire les problèmes pendant la fenêtre de rotation.
Surveiller et journaliser l’accès
Activez la journalisation et la surveillance de votre système de gestion des secrets pour suivre l’accès et l’utilisation. Utilisez la journalisation Key Vault ou des services comme Azure Monitor et Azure Event Grid pour surveiller toutes les activités liées à vos secrets. Cela permet de savoir qui a accédé à vos secrets et de détecter tout comportement suspect ou incident de sécurité potentiel. Le maintien de pistes d’audit détaillées est essentiel pour inspecter et valider l’accès aux secrets, ce qui peut aider à prévenir le vol d’identité, à éviter la répudiation et à réduire l’exposition inutile.
Implémenter l’isolement réseau
Réduisez l’exposition de vos secrets en implémentant l’isolation réseau. Configurez les pare-feu et les groupes de sécurité réseau pour restreindre l’accès à vos coffres de clés. Autorisez uniquement les applications et services approuvés à accéder à vos secrets, afin de minimiser la surface d’attaque et d’empêcher tout accès non autorisé. En outre, envisagez d’utiliser plusieurs coffres de clés pour créer des limites d’isolation pour différents composants, de sorte que si un composant est compromis, il ne peut pas prendre le contrôle d’autres secrets ou de l’ensemble de la charge de travail.
Chiffrer les secrets au repos et en transit
Vérifiez que vos secrets sont chiffrés au repos et en transit. Azure Key Vault stocke en toute sécurité les secrets à l’aide du chiffrement d’enveloppe, où les clés de chiffrement des données (DEK) sont chiffrées par les clés de chiffrement principales (KEK), ce qui fournit une couche de sécurité supplémentaire. Cette approche améliore la protection contre l’accès non autorisé. En outre, utilisez des protocoles de communication sécurisés comme HTTPS pour chiffrer les données en transit entre vos applications et le coffre de clés, ce qui garantit que vos secrets sont protégés pendant le stockage et la transmission.
Dans Azure, le chiffrement au repos est implémenté sur différents services à l’aide du chiffrement AES 256, tandis que les données en transit sont sécurisées via TLS et MACsec pour empêcher l’accès non autorisé pendant la transmission. Ces pratiques de chiffrement fournissent une protection complète pour vos données, qu’elles soient stockées ou transmises entre les systèmes. Pour plus d’informations, consultez Chiffrement au repos et en transit.
Distribution sécurisée des secrets
Lors de la distribution des secrets, assurez-vous qu’ils sont partagés en toute sécurité au sein et en dehors de l’organisation. Utilisez des outils conçus pour le partage sécurisé et incluez des procédures de récupération des secrets dans vos plans de récupération d’urgence. Si une clé est compromise ou divulguée, elle doit être régénérée immédiatement. Pour améliorer davantage la sécurité, utilisez des clés distinctes pour chaque consommateur plutôt que de partager des clés, même si elles ont des modèles d’accès similaires. Cette pratique simplifie la gestion et la révocation des clés, ce qui garantit que les clés compromises peuvent être révoquées sans affecter d’autres consommateurs.
Bonnes pratiques spécifiques au service
Chaque service peut avoir des meilleures pratiques et des conseils supplémentaires en matière de protection des secrets. Voici quelques exemples :
- Gestion des API : Utiliser des valeurs nommées dans les stratégies Azure API Management avec l’intégration dans Key Vault
- App Service : Utiliser des références Key Vault pour App Service et Azure Functions
- Application Gateway : Configurer une passerelle d’application avec une terminaison TLS à l’aide du portail Microsoft Azure
- Automatisation : Gérer les informations d’identification dans Azure Automation
- Azure App Configuration : Tutoriel : Utiliser des références Key Vault dans une application ASP.NET Core
- Azure Bot Service : Chiffrement Azure Bot Service pour les données au repos
- Centre Azure pour les solutions SAP : Centre Azure pour les solutions SAP - Déploiement - Préparer le réseau pour le déploiement
- Azure Communications Gateway : Créer et stocker des secrets
- Azure Communication Service : Créer et gérer des jetons d’accès
- Azure Database pour PostgreSQL - Serveur flexible : Azure Database pour PostgreSQL - Chiffrement des données du serveur flexible avec une clé gérée par le client
- Azure Databricks : Intégration de Key Vault dans Databricks
- Azure DevTest Labs : Activer les identités managées affectées par l’utilisateur sur des machines virtuelles Lab dans Azure DevTest Labs
- Azure Front Door : Secrets Azure Front Door
- Azure HDInsight sur AKS : Prérequis pour les ressources - Créer Azure Key Vault
- Azure Information Protection : Détails de la prise en charge Key Vault Azure Information Protection
- Azure Kubernetes Service (AKS) : Magasin de secrets CSI
- Applications managées Azure : Accéder au secret Key Vault lors du déploiement d’applications managées Azure
- Azure OpenAI : Développer des applications Azure AI Services avec Key Vault
- Azure Pipelines : protection des secrets dans Azure Pipelines
- Azure Purview : Informations d’identification pour l’authentification des sources dans Microsoft Purview
- Azure SignalR Service : Informations de référence sur les secrets Key Vault dans les paramètres du modèle d’URL
- Azure Service Bus : Authentifier et autoriser une application avec Microsoft Entra ID pour accéder aux entités Azure Service Bus
- Azure Stack Edge : Gérer les secrets d’Azure Stack Edge à l’aide d’Azure Key Vault
- Azure Stack Hub : Effectuer la rotation des secrets
- Azure Web PubSub : Ajouter un certificat personnalisé
- Sauvegarde : Configurer un coffre à chiffrer avec des clés gérées par le client
- Cognitive Services : Développer des applications Azure Cognitive Services avec Key Vault
- Data Factory : Stocker les informations d’identification dans Azure Key Vault
- ExpressRoute : Configurer le chiffrement MACsec pour ExpressRoute Direct
- Functions : Utiliser des références Key Vault pour App Service et Azure Functions
- Key Vault : À propos des secrets Azure Key Vault
- Logic Apps : Paramètres d’application standard Logic Apps
- Machine Learning service : Utiliser des secrets d’informations d’identification d’authentification dans des travaux Azure Machine Learning
- SQL IaaS : Configurer l’intégration d’Azure Key Vault pour SQL Server sur des machines virtuelles Azure (Resource Manager)
- Stockage : Gérer les clés de compte de stockage avec Key Vault et Azure CLI
Étapes suivantes
La réduction du risque de sécurité est une responsabilité partagée. Vous devez être proactif lorsque vous prenez des mesures pour sécuriser vos charges de travail. Découvrez la responsabilité partagée dans le cloud.
Consultez l’article Bonnes pratiques et tendances Azure relatives à la sécurité pour découvrir d’autres bonnes pratiques en matière de sécurité à appliquer dans le cadre de la conception, du déploiement et de la gestion de vos solutions cloud avec Azure.