Considérations relatives à la sécurité pour l’accélérateur de zone d’atterrissage Azure Spring Apps
Cet article décrit les considérations et les recommandations en matière de sécurité pour une charge de travail hébergée dans Azure Spring Apps. Cette aide va vous aider à créer une charge de travail capable de détecter, d’empêcher et de répondre aux failles de sécurité.
Une application sécurisée ne garantit pas la sécurité de l’ensemble de la charge de travail. En tant que propriétaire de la charge de travail, évaluez les erreurs humaines et évaluez la surface d’attaque, comme l’application et les services d’infrastructure avec lesquels l’application interagit.
Azure fournit des contrôles de sécurité divers et variés pour le réseau, l’identité et les données pour prendre en charge votre stratégie de défense en profondeur. La plupart des contrôles sont intégrés à Azure Spring Apps. Ces conseils sont basés sur le référentiel de sécurité Azure pour Azure Spring Apps, qui est dérivé de la version 2.0 d'Azure Security Benchmark. Le point de référence fournit des suggestions sur la façon dont vous devez sécuriser votre charge de travail qui s’exécute sur le cloud Azure Spring Apps.
Les équipes centralisées fournissent des contrôles de mise en réseau et d’identité dans le cadre de la plateforme. Ils fournissent des garde-fous pour maintenir le contrôle sur les plateformes, les applications et les ressources dans Azure. L'abonnement à la zone d'atterrissage de l'application fourni pour la charge de travail est préprovisionné avec des stratégies, qui sont héritées du groupe d'administration.
Lorsque vous concevez la charge de travail, assurez-vous que les contrôles de sécurité dont vous êtes propriétaire sont alignés sur les contrôles centraux. La conception est soumise à des révisions périodiques effectuées par l’équipe de sécurité centralisée. Passez régulièrement en revue les contrôles de sécurité et les stratégies de plateforme avec les équipes centrales pour vous assurer que les exigences de charge de travail sont satisfaites.
Pour plus d’informations sur la conception de la plateforme, consultez :
Remarques relatives à la conception
Trafic interne. Limitez ou autorisez le trafic entre les ressources internes pour suivre un principe de segmentation d’entreprise qui s’aligne sur les risques métier. Si nécessaire, créez des limites d’isolation via des réseaux virtuels et des sous-réseaux. Implémentez des règles pour limiter les flux de trafic entre les réseaux.
Trafic externe. Utilisez des ressources natives Azure pour protéger vos ressources de charge de travail contre les attaques provenant de réseaux externes telles que :
- Attaques par déni de service distribué (DDoS).
- Attaques spécifiques à l’application.
- Trafic Internet non sollicité et potentiellement malveillant.
Gestion des identités. Utilisez les fonctionnalités Microsoft Entra, telles que les identités managées, l’authentification unique, les authentifications fortes, les identités managées et l’accès conditionnel, pour fournir l’authentification et l’autorisation via Microsoft Entra ID.
Supervision de la sécurité. Le système doit disposer d’outils de surveillance pour détecter les menaces et mesurer la conformité en utilisant les objectifs de l’organisation et les contrôles Azure Security Benchmark. Ces outils doivent être intégrés aux systèmes SIEM (Gestion des informations et des événements de sécurité) centraux pour obtenir une vue globale de la situation de la sécurité.
Données en transit. Les données transférées entre les composants, les emplacements ou les appels d’API doivent être chiffrées.
Données au repos. Toutes les données persistantes, y compris la configuration doivent être chiffrées.
Stratégies de gouvernance. Vous devez détecter les écarts par rapport aux normes de conformité que votre organisation a défini. Azure Policy fournit des définitions intégrées qui doivent être appliquées pour détecter les écarts. Lorsque vous mettez ces stratégies en application, cela ne garantit pas que vous êtes entièrement conforme à toutes les exigences d’un contrôle. Il peut y avoir des normes conformes qui ne sont pas des définitions intégrées traitées.
Exposition des informations d’identification. Vous pouvez déployer et exécuter du code, des configurations et des données persistantes avec des identités ou des secrets. Vérifiez que les informations d’identification sont examinées lorsque vous accédez aux ressources.
Gestion des certificats. Les certificats doivent être chargés selon le principe de Confiance Zéro de pas de confiance, vérification systématique, et ne doivent pas contenir d’informations d’identification. Faites uniquement confiance aux certificats partagés en vérifiant l'identité avant d'accorder l'accès aux certificats.
Déploiements cohérents. Utilisez l’infrastructure en tant que code (IaC) pour automatiser l’approvisionnement et la configuration de toutes les ressources Azure et renforce la posture de sécurité.
Recommandations de conception
Réseau comme périmètre
Ces contrôles réseau créent des limites d’isolation et limitent les flux entrants et sortants de l’application.
Segmentation du réseau
Créez ou utilisez un réseau virtuel existant lorsque vous déployez des ressources Azure Spring Cloud Service.
Créez une isolation au sein du réseau virtuel par le biais d’un sous-réseau. Restreignez ou autorisez le trafic entre les ressources internes à l’aide des règles de NSG. Utilisez la fonctionnalité de renforcement du réseau adaptatif de Microsoft Defender pour le cloud afin de renforcer davantage les configurations NSG qui limitent les ports et les adresses IP sources. Basez les configurations sur les règles du trafic réseau externe.
Lorsque vous créez des règles de sécurité, utilisez des étiquettes de service Azure pour définir des contrôles d’accès réseau au lieu d’adresses IP spécifiques. Quand vous spécifiez le nom de l’étiquette de service dans le champ de source ou de destination approprié d’une règle, autorisez ou refusez le trafic pour le service correspondant. Microsoft gère les préfixes d’adresses qui sont couverts par l’étiquette de service. Celle-ci est automatiquement mise à jour lorsque les adresses changent.
Utilisez l’étiquette de service AzureSpringCloud
sur des groupes de sécurité réseau ou le pare-feu Azure pour autoriser le trafic vers les applications dans Azure Spring Apps.
Pour plus d’informations, consultez Responsabilités du client pour l’exécution d’Azure Spring Cloud dans un réseau virtuel.
Connexion à des réseaux privés
Dans un environnement colocalisé, utilisez Azure ExpressRoute ou le réseau privé virtuel (VPN) Azure permettent de créer des connexions privées entre les centres de données Azure et l’infrastructure locale. Les connexions ExpressRoute ne passent pas par le réseau Internet public. Elles sont donc plus fiables, plus rapides et présentent moins de latences.
Pour un VPN point à site et un VPN site à site, connectez des appareils ou des réseaux locaux à un réseau virtuel. Utilisez n’importe quelle combinaison de ces options de VPN et d’Azure ExpressRoute.
Pour connecter deux réseaux virtuels ou plus dans Azure, utilisez l’appairage de réseaux virtuels. Le trafic réseau entre les réseaux virtuels homologués est privé. Ce type de trafic est conservé sur le réseau principal Azure.
Attaques provenant de réseaux externes
Placez des contrôles sur le trafic entrant et bloquez les attaques de couche Application avec Azure Application Gateway avec le pare-feu d’applications web (WAF) intégré.
Utilisez Pare-feu Azure pour restreindre le trafic sortant de l’application. Vous pouvez utiliser le Pare-feu Azure pour protéger les applications et les services contre le trafic potentiellement malveillant provenant d’Internet et d’autres emplacements externes.
Le filtrage basé sur le renseignement sur les menaces du Pare-feu Azure peut envoyer des alertes ou bloquer le trafic depuis ou vers des adresses IP et des domaines malveillants connus. Ces adresses IP et domaines proviennent du flux Microsoft Threat Intelligence. Quand l’inspection de la charge utile est nécessaire, déployez un système tiers de détection et de prévention d’intrusion (IDS/IPS) à partir de la place de marché Azure) avec des fonctionnalités d’inspection de charge utile. Sinon, vous pouvez aussi utiliser un système IDS/IPS basé sur un hôte ou une solution de détection de point de terminaison et réponse (EDR) basée sur un hôte avec ou au lieu d’un système IDS/IPS basé sur le réseau.
Pour protéger les ressources de charge de travail contre les attaques DDoS, activez la protection DDoS standard sur vos réseaux virtuels Azure. Utilisez Microsoft Defender pour le cloud afin de déceler les risques de configuration incorrecte dans vos ressources liées au réseau.
Protéger le système DNS (Domain Name System)
Utilisez Azure DNS pour héberger des domaines DNS. Protéger les enregistrements et zones DNS des mauvais intervenants. Le contrôle d’accès en fonction du rôle Azure (RBAC Azure) et les verrous de ressources sont recommandés dans cette optique. Pour plus d’informations, consultez Empêcher les entrées DNS non imbriquées et éviter la prise de contrôle de sous-domaine.
L’identité comme périmètre
Azure fournit des contrôles d’identité via Microsoft Entra ID. L’application possède de nombreuses fonctionnalités telles que l’authentification unique, les authentifications fortes, les identités managées et l’accès conditionnel. Pour plus d’informations sur les choix de conception de l’architecture, consultez Considérations relatives aux identités pour l’accélérateur de zone d’atterrissage Azure Spring Apps.
La section suivante décrit les aspects de sécurité de ces choix.
Intégration au système d’identité centralisé
Les zones d’atterrissage Azure utilisent Microsoft Entra ID comme service de gestion des identités et des accès par défaut. Il est recommandé d’utiliser Microsoft Entra ID centralisé pour régir les services de charge de travail. Microsoft Entra ID centralisé inclut l’accès aux ressources réseau de l’organisation, à Stockage Azure, à Key Vault et aux autres services dont dépend votre application.
Si vous souhaitez accorder l’accès au plan de données Azure Spring Apps, utilisez le rôle intégré Lecteur de données Azure Spring Cloud. Ce rôle donne des autorisations de lecture seule.
Les fonctionnalités Microsoft Entra suivantes sont recommandées :
Identités d’application. L’application peut avoir besoin d’accéder à d’autres services Azure. Par exemple, si elle souhaite récupérer des secrets à partir de Azure Key Vault.
Utilisez des identités managées avec Azure Spring Apps afin que l’application puisse s’authentifier auprès d’un autre service à l’aide de Microsoft Entra ID. Évitez d’utiliser des principaux de service à cette fin. Le processus d’authentification des identités managées n’utilise pas d’informations d’identification codées en dur dans le code source ou les fichiers de configuration.
Si vous souhaitez utiliser des principaux de service avec des informations d’identification de certificat et des secrets clients de secours, nous vous recommandons d’utiliser Microsoft Entra ID pour créer un principal de service doté d’autorisations restreintes au niveau des ressources.
Dans les deux cas, Key Vault peut être utilisé avec des identités managées par Azure. Un composant runtime tel qu’une fonction Azure peut être utilisé pour récupérer les secrets de Key Vault. Pour plus d’informations, lire Authentification dans Azure Key Vault.
Authentification unique (SSO) Microsoft Entra. L’authentification unique Microsoft Entra est recommandée pour l’authentification de l’accès à l’application à partir d’autres applications (ou appareils) s’exécutant dans le cloud ou localement. L’authentification unique fournit la gestion des identités aux utilisateurs internes et externes, tels que les partenaires ou les fournisseurs.
Contrôles d’authentification renforcés. Microsoft Entra ID prend en charge des contrôles d'authentification forts grâce à l'authentification multifactorielle (MFA) et à des méthodes sans mot de passe fort. Pour les administrateurs et les utilisateurs privilégiés, utilisez le niveau le plus élevé de la méthode d’authentification forte pour réduire le rayon d’explosion en cas de violation. Ensuite, déployez la stratégie d’authentification forte appropriée pour les autres utilisateurs. Pour plus d’informations, consultez les articles Activer l’authentification multi-facteur dans Azure et Options d’authentification sans mot de passe pour Microsoft Entra ID.
Accès conditionnel aux ressources. Azure Spring Apps prend en charge l’accès conditionnel Microsoft Entra pour un contrôle d’accès plus granulaire basé sur des conditions définies par l’utilisateur. Vous pouvez définir des conditions pour inclure les connexions utilisateur à partir de certaines plages d'adresses IP qui doivent se connecter via l’authentification multi-facteur. Ces stratégies d’accès conditionnel s’appliquent uniquement aux comptes d’utilisateur qui s’authentifient auprès de Microsoft Entra ID pour accéder et gérer les applications. Ces stratégies ne s'appliquent pas aux principaux de service, aux clés ou aux jetons utilisés pour se connecter aux ressources de votre charge de travail.
Accès privilégié. Implémentez Microsoft Entra Privileged Identity Management pour garantir l’accès avec privilèges minimum et les rapports approfondis dans l’ensemble de votre environnement Azure. Les équipes doivent entreprendre des examens d'accès récurrents pour s'assurer que les bonnes personnes et les bons principes de service disposent de niveaux d'autorisation actuels et corrects.
Contrôles de données
Les contrôles réseau et d’identité limitent l’accès à l’application mais les données doivent être protégées. Le chiffrement garantit l’intégrité des données et constitue une fonctionnalité de sécurité clé qui doit être appliquée pour atténuer les menaces.
Données en transit
Les données transférées sont vulnérables aux attaques hors bande, telles que la capture de trafic. Utilisez le chiffrement pour vous assurer que les attaquants ne puissent pas lire ou modifier les données. Azure assure le chiffrement des données en transit entre les centres de données Azure.
Azure Spring Apps prend en charge le chiffrement grâce au protocole TLS v1.2 ou version ultérieure. TLS fournit des communications sécurisées par le biais de l’identité et de la confiance, et chiffre les communications de tous types. Vous pouvez utiliser n’importe quel type de certificat TLS. Par exemple, des certificats émis par une autorité de certification, des certificats de validation étendus, des certificats génériques prenant en charge n’importe quel nombre de sous-domaines, ou des certificats auto-signés pour les environnements de développement et de test.
Le chiffrement est essentiel pour le trafic sur des réseaux externes et publics. Tous les points de terminaison publics doivent utiliser le protocole HTTPS pour le trafic entrant par défaut. Les appels de gestion pour configurer le service Azure Spring Apps via des appels d’API Azure Resource Manager doivent être sur HTTPS.
Pour le trafic HTTP, vérifiez que les clients qui se connectent à vos ressources Azure peuvent négocier la version 1.2 ou ultérieure du protocole TLS. N’utilisez pas de versions ou de protocoles obsolètes. Désactivez les chiffrements faibles.
Pour la gestion à distance, au lieu d’utiliser un protocole non chiffré, utilisez SSH (Secure Shell) pour Linux ou RDP (Remote Desktop Protocol) et TLS pour Windows.
Données au repos
La charge de travail doit stocker l’état de la source et des artefacts, les paramètres du serveur de configuration, les paramètres d’application et le stockage. Les données côté serveur au repos sont protégées par le chiffrement de Stockage Azure. Stockage Azure chiffre automatiquement le contenu avec des clés gérées par Microsoft.
Le cache du serveur de configuration, les fichiers binaires du runtime générés à partir de la source téléchargée et les journaux des applications consignés pendant la durée de vie de l'application sont enregistrés sur un disque managé Azure. Ces données sont chiffrées automatiquement. Les images conteneur, qui sont générées à partir de la source chargée par l’utilisateur sont chiffrées et enregistrées dans Azure Container Registry.
Pour les scénarios de support, lorsque Microsoft a besoin d’accéder aux données client pertinentes, il est recommandé d’utiliser Customer Lockbox pour Microsoft Azure, car l’accès doit être approuvé par votre équipe ou organisation.
Surveiller et alerter en cas d’anomalies de compte
Microsoft Defender pour le cloud est recommandé pour recevoir des alertes dans le cas de certaines activités suspectes, telles qu’un nombre excessif de tentatives d’authentification ayant échoué ou pour la présence de comptes déconseillés dans l’abonnement.
Azure Spring Apps est intégré à Microsoft Entra ID, qui peut suivre les activités de connexion, y compris les connexions risquées. Vous pouvez utiliser les journaux d’audit pour détecter les modifications apportées aux ressources dans Microsoft Entra ID. Les données sont intégrées à Azure Monitor et peuvent être exportées vers Microsoft Sentinel.
Pour plus d’informations, consultez l’article suivant :
- Rapports d’activité d’audit dans Microsoft Entra ID
- Afficher les connexions risquées Microsoft Entra
- Surveiller l’activité des identités et des accès des utilisateurs dans Microsoft Defender pour le cloud
- Alertes dans le module de protection par renseignement sur les menaces de Microsoft Defender pour le cloud
Politiques de gouvernance
La définition intégrée à Azure qui se nomme Azure Spring Cloud doit utiliser l’injection de réseau vous permet d’appliquer des contrôles réseau.
- Détectez l’implémentation des limites d’isolation pour l’application à partir d’Internet.
- Permettez à Azure Spring Apps de communiquer avec des réseaux privés dans les centres de données locaux ou des services Azure d’autres réseaux virtuels.
- Contrôlez les communications réseau entrantes et sortantes d’Azure Spring Cloud.
Gestion des certificats
Une application peut avoir besoin de certificats TLS publics lors de la communication avec des services principaux ou des systèmes locaux. Vous pouvez charger les certificats dans Key Vault.
Pour charger en toute sécurité des certificats à partir de Key Vault, les applications Spring Boot utilisent des identités managées et un contrôle d’accès en fonction du rôle (RBAC) Azure. Azure Spring Apps utilise un principal de service de fournisseur et un contrôle d’accès en fonction du rôle Azure. Ce chargement sécurisé est alimenté à l’aide du fournisseur JCA (Java Cryptography Architecture) Azure Key Vault. Pour plus d'informations, voir la bibliothèque client Azure Key Vault JCA pour Java.
Si votre code Spring, votre code Java ou vos bibliothèques open source, telles que OpenSSL, reposent sur la chaîne JCA JVM par défaut pour charger implicitement des certificats dans le magasin de confiance de JVM, vous pouvez importer vos certificats TLS à partir de Key Vault dans Azure Spring Apps. Utilisez ces certificats dans l’application. Pour plus d'informations, voir Utiliser des certificats TLS/SSL dans votre application dans Azure Spring Apps.
Analyse des informations d’identification
Implémentez Credential Scanner pour identifier les informations d’identification qui accèdent au code, aux configurations et aux données persistantes. Le moteur recommande également de déplacer les informations d’identification découvertes vers des emplacements plus sécurisés, par exemple Key Vault.
Pour GitHub, vous pouvez utiliser la fonctionnalité native d’analyse de secret pour identifier les informations d’identification ou d’autres formes de secrets dans le code.
Pour plus d'informations, consultez les pages suivantes :