Archives de la catégorie ‘Azure PowerShell’

Azure Guys, Hello again,

Je voulais partager avec vous un (free) eBook Azure assez intéressant.

Il présente la suite Operations Management Suite (OMS) d’Azure et décrit pas mal de fonctionnalité intéressante, notamment le Backup & Recovery sur Azure (Azure Backup & ASR), Azure Automation, Desired State Configuration (DSC) ainsi que tous les services liés à l’analyse et configuration réseau Azure.

L’eBook est organisé en 12 Chapitres, à savoir :

  • Chapter 1: Introduction and Onboarding
  • Chapter 2: Searching and Presenting OMS Data
  • Chapter 3: Alert Management
  • Chapter 4: Configuration Assessment and Change Tracking
  • Chapter 5: Working with Performance Data
  • Chapter 6: Process Automation and Desired State Configuration
  • Chapter 7: Backup and Disaster Recovery
  • Chapter 8: Security Configuration and Event Analysis
  • Chapter 9: Analyzing Network Data
  • Chapter 10: Accessing OMS Data Programmatically
  • Chapter 11: Custom MP Authoring
  • Chapter 12: Cross Platform Management and Automation

 

Plusieurs scripts vous sont fournis avec l’eBook (cf Liens Github fournis dans l’eBook).

Vous pouvez télécharger l’eBook depuis le bouton Download ci-dessous :

 

 

Introduction

J’ai récemment découvert un outil assez intéressant pour Azure, il s’agit d’Azure VizGov.

Cet outil vous permet d’auditer vos environnements Azure (ou ceux de vos clients) pour :

  • Avoir de la visibilité sur la hiérarchie de vos Management Group Azure (Groupes d’Administration) jusqu’aux abonnements Azure
  • Capturer /récupérer toutes les informations relatives aux droits/attributions de rôle RBAC
  • Lister toutes les Stratégies (Azure Policies) appliquées à vos Management Group (MG) et abonnements

 

Télécharger AzGovViz

L’outil tourne sou forme de Script PowerShell, et est disponible en téléchargement depuis ce Repo Github

 

Prérequis

AzGovViz a été codé sous PowerShell, vous devez donc disposer d’un des modules PowerShell Azure suivant pour l’exécuter :

  • Module Az
  • Module AzureRM

De plus, pour pouvoir exécuter le script, vous devez disposez les autorisations/permissions RBAC suivantes :

  • [RBAC] : le rôle « Management Group Reader«  au niveau du Management Group
  • [RBAC] : le rôle « Reader«  au niveau du Management Group
  • [Permissions API] : si vous voulez exécuter le script via Azure Automation ou l’agent Azure DevOp, vous devrez configurer les permissions de l’API au niveau de l’annuaire Azure AD. Idem pour le compte Automation qui sera utilisé, l’inscription de l’App du compte doit être autorisé avec l’autorisation suivante : Azure Active Directory API | Application | Directory | Read.All

 

HowTo : exécuter AzGovViz

Suivez les instructions suivantes pour exécuter l’outil de visualisation de gouvernance Azure depuis votre environnement :

.\AzGovViz.ps1 -managementGroupId <ID_de_votre_Management_Group>

 

 

Outputs

AzGovViz audit/collecte et retourne des informations sur vos Management Group, Abonnements, droits RBAC, Initiatives Policy et Policies Azure.

AzGovViz vous retourne le résultat sous format « HTML » et CSV (Comma-Separated Values).

 

Petit Bonus !

Le résultat /données collectées post-exécution d’AzGovViz sont directement disponibles dans le Wiki Azure DevOps (voir screenshot ci-dessous) :

 

Informations utiles

AzGovViz a été testé (par mes soins) sur le CloudShell et PowerShell Core pour Windows et Linux (Ubuntu 18.04 LTS). Il est compatible et ne présente aucun problème d’exécution/stabilité.

 

 

 

 

Si vous êtes amenés à gérer et administrer un ou plusieurs tenants Azure AD au quotidien, et que vous souhaitez automatiser toutes les tâches et opérations répétitives et fastidieuses, eh bien sachez que vous êtes à la bonne adresse :).

Aujourd’hui, je vais vous parler d’un module PowerShell qui va vous faciliter la vie quand il s’agit de déployer, gérer, administrer mais aussi troubleshooter Azure Active Directory.

Il s’agit du module « AzureAD » (ou Azure Active Directory PowerShell for Graph).

Les Cmd-Lets fournies avec ce Module vous permettent de récupérer les données à partir de l’annuaire/service Azure Active Directory, créer de nouveaux objets, modifier et mettre à jour les objets existants, supprimer des objets AAD, mais aussi configurer votre tenant Azure AD et ses options /fonctionnalités associées.

Enfin, notez que le module AzureAD vous permet également de gérer vos AAD Application Proxy et Connecteurs.

HowTo : Installer le module PowerShell AzureAD

Le module AzureAD est disponible depuis la PowerShellGallery et peut être installer via un simple

Install-Module AzureAD

 

HowTo : Utiliser le module PowerShell AzureAD

Une fois installé, commencez par importer le module « AzureAD » en saisissant la commande suivante :

Import-Module AzureAD

ou simplement

ipmo AzureAD

Exécutez ensuite la commande suivante pour lister toutes les Cmd-lets du module PowerShell AzureAD :

Get-Command -Module AzureAD | ft -AutoSize

Vous pouvez connaitre le nombre exact des Cmd-lets fournies avec le module AzureAD en exécutant la commande ci-dessous :

(Get-Command -Module AzureAD).Count

164 Cmd-Lets au total sont fournies avec le module PowerShell AzureAD, cela vous permet d’automatiser presque toutes les opérations disponibles depuis le Nouveau Portail Azure (portal.azure.com)

Avant de pouvoir créer et gérer vos objets (users & groups) Azure AD, vous devez connecter votre Interface PowerShell à votre tenant AzureAD, pour ce faire, saisissez la commande suivante :

Connect-AzureAD

Vous êtes invités à renseigner votre compte Microsoft (ou Professionnel) pour vous connecter :

Comme montré ci-dessous, mon compte Azure a été connecté correctement :

Commençons maintenant par lister tous les users AzureAD existants, saisissez la commande suivante :

Get-AzureADUser

Pour créer un nouvel utilisateur AzureAD, la commande suivante sera utilisée :

Note : dans l’exemple suivant, nous allons créer un nouvel utilisateur avec les informations suivantes :

UPN : hicham.kadiri-demo@k-nd-k-group.com

GivenName : hicham.kadiri-demo

DisplayName : Hicham KADIRI

City : Paris

Country : France

Department : IT

Mot de passe : « MyP@ss0rd2018! »

 

$PasswordProfile = New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordProfile $PasswordProfile.Password = « MyP@ss0rd2018! »

New-AzureADUser -City Paris -Country France -Department IT -DisplayName « Hicham KADIRI » -GivenName hicham.kadiri-demo -JobTitle « Azure Cloud Architect » -AccountEnabled $true -PostalCode 75000 -UserPrincipalName hicham.kadiri-demo@k-nd-k-group.com -PasswordProfile $PasswordProfile -MailNickName hicham.kadiri-demo

Pour supprimer cette fois-ci l’utilisateur créé précédemment, exécutez la commande suivante :

  • Notez que vous devez d’abord exécutez la Cmd-let Get-AzureADUser pour récupérer l’ObjectID de l’utilisateur à supprimer (af3dbbdd-e51b-44e3-8944-91150d296fd4 dans l’exemple suivant) :
    • Remove-AzureADUser -ObjectId af3dbbdd-e51b-44e3-8944-91150d296fd4

Vous pouvez lister tous les domaines AAD déclarés/enregistrés en saisissant la commande suivante :

Get-AzureADDomain

La liste des devices enregistrés dans votre domaine Azure AD peut être obtenue via la commande suivante :

Get-AzureADDevice

Je vous invite à consulter cet article pour en savoir plus sur l’ensemble des Cmd-lets fournies avec le module AzureAD.

 

Dans le cadre d’un projet de migration de Datacenters d’un de mes clients vers Azure, j’avais en charge l’étude, design et l’implémentation de plusieurs canaux VPN entre les Datacenters Azure et ceux OnPremise.

Compte-tenu du nombre de Gateway VPN Azure à monter, j’ai créé le script P(ower)S(hell) suivant pour automatiser et accélérer le processus de création des services Cloud réseaux nécessaires pour interconnexion.

Le code est détaillé ci-après, j’ai utilisé des noms & subnets de tests, vous aurez donc juste à remplacer les valeurs des variables par celles correspondant à votre environnement.

Mon architecture réseau Azure « cible » est la suivante :

  • 1 VNET nommé : hk-demo-vnet »
  • 1 Espace d’adressage : 10.0.52.0/24
  • 5 Subnets :
    • Subnet « Front-end » : 10.0.52.0/25
    • Subnet « Back-end » :  10.0.52.128/26
    • Subnet « Management« : 10.0.52.192/27
    • Subnet « DMZ » :  10.0.52.224/28
    • Subnet dédiée à la « Passerelle Az » : 10.0.52.240/28

 

Note : la seule étape qui nécessite un peu d’attente (~45 minutes environ) est la création de la Gateway VPN Az [Step #8]. Le reste des opérations est quasi immédiat :).

Note importante : le présent script concerne uniquement la configuration côté « Azure »; une configuration spécifique côté « Réseau OnPrem » est à faire, cela dépendra du type d’équipement déjà présent sur votre S.I (e.g : Fortigate, Cisco ASA, F5 BIG-IP, A10 Network…Etc). N’hésitez pas à consulter cette page pour vérifier la comptabilité /prise en charge de votre équipement réseau pour la connexion VPN avec Azure.


#1 Connecter votre compte Azure
Login-AzureRmAccount

#2 Selectionner votre Abonnement Azure (si vous en avez qu’un seul, vous pouvez bypasser cette etape). Dans l’exemple suivant, la subscription « HKDemoSubsription » sera selectionnee
Select-AzureRmSubscription -SubscriptionName « HKDemoSubscription »

#3 Crerr votre groupe de Ressource Azure au niveau de la Region Europe de l’Ouest
New-AzureRmResourceGroup -Name « hk-demo-rg » -Location ‘West Europe’

#4 Creer  du VNET ‘HK-Demo-vnet » et ses Subnets associés
$hkdemosubfe = New-AzureRmVirtualNetworkSubnetConfig -Name ‘hk-demo-sub-fe’ -AddressPrefix 10.0.52.0/25

$hkdemosubbe = New-AzureRmVirtualNetworkSubnetConfig -Name ‘hk-demo-sub-be’ -AddressPrefix 10.0.52.128/26

$hkdemosubmgmt = New-AzureRmVirtualNetworkSubnetConfig -Name ‘hk-demo-sub-mgmt’ -AddressPrefix 10.0.52.192/27

$SecuritySubnet = New-AzureRmVirtualNetworkSubnetConfig -Name ‘SecuritySubnet’ -AddressPrefix 10.0.52.224/28

$GatewaySubnet = New-AzureRmVirtualNetworkSubnetConfig -Name ‘GatewaySubnet’ -AddressPrefix 10.0.52.240/28

New-AzureRmVirtualNetwork -Name hk-demo-vnet -ResourceGroupName hk-demo-rg `
-Location ‘West Europe’ -AddressPrefix 10.0.52.0/24 -Subnet $hkdemosubfe, $hkdemosubbe, $hkdemosubmgmt, $SecuritySubnet, $GatewaySubnet

#5 Declarer La Passerelle /Device VPN Local ainsi que les Subnets de votre reseau Corporate (192.168.x.0 dans l’exemple suivant)
New-AzureRmLocalNetworkGateway -Name hk-demo-localgtw -ResourceGroupName hk-demo-rg `
-Location ‘West Europe’ -GatewayIpAddress ‘10.112.11.33’ -AddressPrefix ‘192.168.1.0/24’, ‘192.168.2.0/24’, ‘192.168.3.0/24’

#6 Creation d’une nouvelle adresse IP public pour la Gateway VPN Azure
$azuregtwpip = New-AzureRmPublicIpAddress -Name hk-demo-azgtwpip -ResourceGroupName hk-demo-rg -Location ‘West Europe’ -AllocationMethod Dynamic

#7 Declarer /Creer la configuration de la Gateway VPN Azure
$vnet = Get-AzureRmVirtualNetwork -Name hk-demo-vnet -ResourceGroupName hk-demo-rg
$subnet = Get-AzureRmVirtualNetworkSubnetConfig -Name ‘GatewaySubnet’ -VirtualNetwork $vnet
$azgtwipconfig = New-AzureRmVirtualNetworkGatewayIpConfig -Name hk-demo-azgtwconfig -SubnetId $subnet.Id -PublicIpAddressId $azuregtwpip.Id

#8 Creer votre nouvelle Gateway Azure
New-AzureRmVirtualNetworkGateway -Name hk-demo-azgtw -ResourceGroupName hk-demo-rg -Location 'West Europe' -IpConfigurations $azgtwipconfig -GatewayType Vpn
-VpnType RouteBased -GatewaySku Standard

#9 Obtenir l’@IP Public de la Gateway Azure (verifier que l’IP Public de votre Gateway Azure est bien générée)
Get-AzureRmPublicIpAddress -Name hk-demo-azgtwpip -ResourceGroupName hk-demo-rg

#10 Creer la connexion VPN entre le Device OnPrem et Azure
$azuregtw = Get-AzureRmVirtualNetworkGateway -Name hk-demo-azgtw -ResourceGroupName hk-demo-rg
$localgtw = Get-AzureRmLocalNetworkGateway -Name hk-demo-localgtw -ResourceGroupName hk-demo-rg

New-AzureRmVirtualNetworkGatewayConnection -Name hk-demo-azgtwcon -ResourceGroupName hk-demo-rg -Location 'West Europe' -VirtualNetworkGateway1 $azuregtw -LocalNetworkGateway2 $localgtw
-ConnectionType IPsec -RoutingWeight 10 -SharedKey ‘$HKD€m0@2017$’


Run & Enjoy the script :).

Une fois l’interconnexion établie entre le Device VPN Azure et celui d’OnPrem, le statut de l’objet de connexion passe à « Connected« , checkez les « Data in » et « Data out » pour s’assurer que le traffic passe bien entre vos ressources locales (OnPrem) et celles hébergées dans le Cloud Az.

Restez connectés, de nouveaux posts autour de l’Azure (step-by-step guides, HowTo..Etc) sont en cours de finalisation :).