Partager via


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 :

É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.