2. Instant publicitaire
Lead Cloud Solution Architect chez Société Générale
Microsoft MVP Azure depuis 2012
Quelques blogs : https://woivre.fr & https://woivre.com
LinkedIn : https://linkedin.com/in/wilfriedwoivre
X : https://x.com/wilfriedwoivre
3. Agenda
• Introduction à Azure Policy
• Les différents effets
• L’intégration à Microsoft Defender for Cloud
• Les pièges à éviter
• C’est quoi la propriété mode
• Les APIs Azure évoluent, comment vivre avec
5. Rapide résumé
• Aide à appliquer des normes et des standards
• Convention de nommage
• Réglementation
• Sécurité
• Aide pour un passage à l’échelle
• Fourni un tableau de bord de la conformité
• Basé sur les APIs Azure
• Pas un outil type Sentinel pour Terraform
6. Propulsé par Microsoft
• Et oui, ce n’est pas un énième produit créé par Microsoft et non
suivis
• Sick to serverlesslibrary.net, blueprints, …
• Beaucoup de policies déjà inclues dans Azure, c’est à vous les
configurer et des les appliquer
• Built In policy definition: 2261 à ce jour
• Built in policy initiative definition: 124
Built In : https://github.com/Azure/azure-policy
Community Policy : https://github.com/Azure/Community-
Policy
10. AddToNetworkGroup
• Lié à l’usage spécifique de Azure Virtual Network Manager
• Dédié au mode Microsoft.Network.Data
Exemple:
Ajoute un virtual network à un network group en function de sa
convention de nommage
11. Append
• Ajoute un champ au payload de la ressource
• Uniquement lors des actions */write
• avant qu’elle soit traité par le Resource Provider
• Pas d’intelligence dans l’action, vérifié bien que le champ
n’existe pas dans votre condition
Exemple:
Ajout de la propriété minimalTlsVersion à 1.2 sur eventhub
12. Audit
• Pour le mode Indexed ou All, uniquement pour des buts de
compliance base sur les payload des resources Azure
• Pour le mode Microsoft.Kubernetes.Data il est possible d’aller
plus loin en prenant en compte des sources extérieurs, et
d’affiner notre scope au sein de notre cluster Kubernetes
Exemple:
Auditer que tous nos EventHubs sont en minimalTLSVersion à
1.2
13. AuditIfNotExists
• Permet de vérifier l’existence d’une inner resource
Exemple:
L’existence des Diagnostics Settings, une extension de Virtual
Machines
14. Deny
• Pour le mode Indexed ou All, uniquement pour des buts de
compliance base sur les payload des resources Azure
• Pour le mode Microsoft.Kubernetes.Data il est possible d’aller
plus loin en prenant en compte des sources extérieurs, et
d’affiner notre scope au sein de notre cluster Kubernetes
Exemple:
Refuser la création ou la mise à jour des EventHubs qui ne sont
pas en minimumTLSVersion à 1.2
15. DenyAction
• Permet de refuser l’action de suppression sur une inner
resource
Exemple:
Suppression des Diagnostics Settings, des extensions de Virtual
Machines
16. DeployIfNotExists
• Permet de lancer un ARM Template automatiquement
• Complexe à gérer entre le if de la policy et l’existence condition
qui évite les déploiement à outrance
Exemple:
Mise en place de diagnosticsSettings, configuration de SQL
Database
17. Disabled
• Utile si vous voulez paramétrer les effets des policy dans des
initiatives.
• A ne pas trop en abuser pour éviter le “bruit” d’avoir un trop
grand nombre de policy “Compliant” alors qu’elles sont en
Disabled
18. Manual
• Utile pour des éléments de compliance, où de règle non
verifiable dans Azure directement
• Nécessite une attestation sur l’honneur de la bonne application
de la policy
Exemple:
Si on souhaite avoir un backup onpremise pour chaque base
disponible dans Azure, on peut y ajouter une policy en mode
manual, et les responsables des applications peuvent attester de
la présence du backup
19. Modify
• Permet de remplacer une propriété du payload par une autre.
• Très pratique quand vous ne voulez pas vous êmbêter avec les valeurs
par défaut de terraform ou des blades Azure
• Pas disponible pour toutes les propriétés
Exemple:
Remplacer à chaque fois tous les ACLs d’un storage sans prendre
en compte l’existant
20. Mutate
• Uniquement pour Kubernetes
• Permet de modifier une propriété par une autre, n’est pas
disponible pour toutes les propriétés
24. Une option payante : Regulatory
Compliance
• Contient beaucoup de standard que vous pouvez activer et
configurer
• A l’unique condition que vous y preniez du temps
• Vous permet d’avoir des vues uniques par standard du marché
tel que
• CIS Benchmark
• SOC 2 Type 2
• NIST
25. The legacy way
• Basé sur les initiatives
• Cela prend du temps à s’activer
• +/- 5 min pour assigner la policy via les settings de Defender for Cloud
• +/- 6h pour voir l’onglet apparaître dans Regulatory Compliance
26. The new way
• Ne prend plus en compte les policy / initiatives personnalisée
• Peut être bientôt si les dieux des roadmaps nous entendent….
• Possible de se créer un standard / recommendation par rapport
aux policies builtins
• Création d’une initiative basé sur notre sélection
29. La propriété mode
• Resource Manager mode
• all : Supporte tous les types de ressources, les souscriptions, et les
ressource group
• Indexed : Uniquement les ressources qui supportent les propriétés tags &
location. Mais pas les ressource group
• Resource Provider Mode
• Microsoft.Kubernetes.Data
• Microsoft.KeyVault.Data
• Microsoft.Network.Data
• Microsoft.ManagedHSM.Data
• Microsoft.DataFactory.Data
• Microsoft.MachineLearningServices.v2.Data
30. L’enfer des versions d’API
• Après plus de 10 ans d’existence les APIs Azure ont évoluées
• Chaque ressource provider est responsable de ses APIs
• Des nouvelles fonctionnalités toutes les semaines
31. Et si on regarde EventHub
2024-01-01 Disponible en 2017-04-01
id oui
identity.principalId non
identity.tenantId non
identity.type non
identity.userAssignedIdentities non
location oui
name oui
properties.alternateName non
properties.clusterArmId non
properties.createdAt oui
properties.disableLocalAuth non
properties.encryption.keySource non
properties.encryption.keyVaultProperties non
properties.encryption.requireInfrastructureEncryption non
properties.isAutoInflateEnabled oui
properties.kafkaEnabled oui
properties.maximumThroughputUnits oui
properties.metricId oui
properties.minimumTlsVersion non
properties.privateEndpointConnections non
properties.provisioningState oui
properties.publicNetworkAccess non
properties.serviceBusEndpoint oui
properties.status non
properties.updatedAt oui
properties.zoneRedundant non
sku oui
systemData non
tags oui
type oui