[Azure Policy – Tip of the Week] : Bloquer la création des Adresses IP Publique (Public IP) sur vos environnements Azure

Publié: 15/11/2018 dans Azure Security, Microsoft Azure
Tags:, , , , , ,

Introduction
Azure Policies (ou Stratégies Azure) est une composante critique et importante du modèle de Gouvernance Global Azure.
Ce service vous permet de définir, créer et contrôler vos stratégies de sécurité (by Design) et de Compliance pour rester ISO avec vos normes/exigences de sécurité existantes (OnPrem).
Les Azure Policies vous permettent (entre autres) de :
  • Définir les régions dans lesquelles autoriser vos utilisateurs Azure à déployer les services Cloud Azure
  • Définir (Forcer) une Convention de nommage Azure à respecter lors de la création des Ressources Azure
  • Définir un Centre de coût (Billing Owner/Cost Center) pour des besoins de « Charge-Back »
  • Définir les types/Sizes de VMs pouvant être créées/déployées
Dans l’exemple suivant, nous allons créer une Stratégie Azure pour restreindre la création d’une interface Publique (Public IP Address) au sein d’un Groupe de Ressource (RG : Resource Group). Notez que cela peut aussi s’appliquer un Abonnement Azure.

Quel Outil utilisé ?

La création d’une stratégie Azure (Azure Policy) peut se faire via différents outils, à savoir :

  • GUI : Portail Azure
  • CLI  : PowerShell ou Az Cloud Shell

Dans l’exemple suivant, nous allons utiliser un Script PowerShell pour crée et assigner notre Azure Policy. Je vous détaillerai aussi la procédure à suivre pour créer et assigner une Stratégie Azure via le Portail Azure.

 

HowTo : Restreindre/Refuser la création d’Interface (IP@) Publique via PowerShell

Lancez une instance Windows PS ou de préférence PowerShell ISE, et Copy/Paste ensuite les codes PS ci-dessous :

Note : vous devez bien évidemment remplacez les valeurs du Script avec celles correspondant à votre environnement (Nom Abonnement, Nom RG…etc)

Ce script PS est disponible en Free Download depuis la Gallery TechNet :

 

 

Une fois le script exécuté, rendez-vous sur le Portail Azure, cliquez sur votre Groupe de Ressource Azure, et cliquez sur « Stratégies » > « Vue d’ensemble »

Comme illustré dans la capture d’écran ci-dessous, ma nouvelle Policy apparaît et m’indique que plusieurs Ressources Azure ne sont pas « Compliant » !

Sachez que cette nouvelle stratégie va permettre la restriction (refus) de création de toute nouvelle @IP Public mais ne peut en aucun cas modifier la configuration existante, si vous avez des VMs avec des NIC Public, il faudra modifier cela manuellement (Dissocier/Delete les Interfaces/IPs Publiques !) :

Essayons maintenant de créer une nouvelle adresse IP Publique pour mon serveur d’Administration (Jumpbox/ RDSH Server).

Je renseigne donc les premières valeurs de paramètres :

Ensuite la deuxième partie :

Lorsque je Click sur « Créer » pour lancer le déploiement du nouveau service Cloud (Public IP), le message d’erreur suivant est retourné :

Il est clairement indiqué que l’opération a été refusée/rejetée par la Stratégie Azure : RestrictionCreatPublicIP 😦

 

Ré-utiliser cette stratégie pour d’autres « Scopes »

Sachez que cette même stratégie Azure peut être appliquée (Assignée) à d’autres périmètres (D’autres Groupes de Ressource ou Abonnements Azure), pour ce faire :

  • Connectez-vous sur le Portail Azure > Cliquer sur l’objet sur lequel vous souhaitez « Linker » cette Policy (Groupe de Ressource ou Abonnement), enfin cliquez sur « Stratégies » :
  • Dans l’exemple suivant, je vais simplement restreindre la création d’@IP publique pour mes VMs (et LBs) hébergés dans le Groupe de Ressource « hk-confident-rg« , car je ne souhaite pas que mes ressources soient exposées à Internet (eg : VM accessible via RDP ou SSH depuis Internet !!!).

Maintenant, il suffit de cliquer sur « Assigner une stratégie » :

Notez que cette option est également disponible depuis le vole « Création > Affectations« 

Useful info : Code JSON de cette Azure Policy
Si vous souhaitez créer cette même Policy depuis le Portail Azure, vous aurez besoin du code JSON suivant :
{
  "if": {
    "anyOf": [
      {
        "source": "action",
        "like": "Microsoft.Network/publicIPAddresses/*"
      }
    ]
  },
  "then": {
    "effect": "deny"
  }
}

En savoir plus sur les Stratégie Azure
Si vous êtes pas encore familier avec les Azure Policies, je vous invite à consulter cet article.
A bientôt pour de nouveaux posts autour de la sécurité et Gouvernance Azure :).
#HK
Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s