Rappel sur Azure Bastion

Azure Bastion est un service PaaS (Platform-as-aService) entièrement géré et maintenu par Microsoft (Sécurisation, Patch Management….), il fournit un accès RDP et SSH sécurisé à vos VMs Azure (Windows & Linux) directement via le portail Azure.

Azure Bastion est déployé/associé au niveau de chaque réseau virtuel (VNet) Azure et prend en charge toutes les VMs faisant partie du VNET.

Vos VMs ne sont jamais exposées sur Internet (pas d’@IP Publique), seul le service Azure Bastion est exposé et est accessible via HTTPS (via le Portail Azure).

Ce service peut remplacer votre infrastructure Bastion RDS traditionnelle, vous pouvez ainsi réduire le coût lié à l’infra VM Azure (plusieurs VMs > plusieurs centaines voire des milliers d’euros /mois, selon le sizing des VMs déployées) et réduire vos efforts de gestion, sécurisation, maintenance, backup…. (passage du mode IaaS au PaaS).

 

En savoir plus sur Azure Bastion

J’ai publié dans le passé (Juin 2019) un post assez détaillé sur Azure Bastion, je vous invite à le consulter pour en savoir plus sur Azure Bastion.

L’article est disponible ici.

 

Prise en charge d’Azure Bastion par 20 Régions Azure

Azure Bastion est désormais pris en charge par les 20 Régions Azure suivantes :

  • Australia Central 2
  • Australia Southeast
  • Brazil South
  • Canada Central
  • Central US
  • East Asia
  • France Central
  • Japan West
  • Korea Central
  • Korea South
  • North Central US
  • North Europe
  • Norway East
  • South Africa North
  • Southeast Asia
  • UAE Central
  • UK South
  • UK West
  • West Central US
  • West India

 

A bientôt :).

Microsoft a récemment publié un nouvel (free) eBook dédié à l’Administration des infrastructures Linux (IaaS) sur Azure V(irtual) M(achine).

Que vous soyez Développeur ou Administrateur Cloud, vous découvrirez à travers cet eBook comment déployer, gérer et administrer des Workloads Linux sur Azure.

Plus précisément, vous apprenez (entre autres) :

  • Comment ré-utiliser les mêmes commandes et tools que vous connaissez sur Azure
  • Comment utiliser Ansible pour gérer vos instances Linux dans un environnement Azure
  • Comment automariser vos déploiements Linux à l’aide d’Azure Resource Manager (ARM), Windows PowerShell et l’interface Azure CLI (2.0)
  • Enhance your Linux security and use Azure identity management services
  • Comment gérer vos Containers dans un environnement Azure

 

Note : Azure prend en charge au moment de la rédaction du présent post plusieurs distributions Linux, cela inclut : RedHat, SUSE, Ubuntu, CentOS, Debian et CoreOS. De nouvelles distributions Linux seront prises en charge prochainement. Vous pouvez vous abonner sur le Blog officiel Azure pour rester informé des dernières Updates relatives à Azure.

 

Consultez la Table des Matières ci-dessous pour en savoir plus :

 

L’eBook « Hands-On Linux Administration on Azure » peut être téléchargé directement depuis le lien/bouton suivant:

 

 

Bonne lecture à tous :).

A bientôt.

Introduction

Le nouvel examen de certification AZ-304 Microsoft Azure Architect Design vous permet de tester et valider vos compétences/votre expertise en tant que « Architecte Solutions Azure | Azure Solutions Architect ».

Note importante : l’examen AZ-304 n’est pas encore disponible, et sera disponible officiellement à partir de Mars/Avril 2020. Il remplacera l’examen de certification AZ-301 (Microsoft Azure Architect Design). Consultez cette page pour en savoir plus.

 

Publics concernés cette nouvelle Certification ?

La certification AZ-304 « Microsoft Azure Architecture Design » est destinée aux Architectes Cloud /Architectes Azure /Architectes Solutions Azure intervenant sur des projets d’Audit /Conseil /Design /Architecture /Sécurisation d’infrastructures Azure.

Lors de cet examen, vous serez évaluez sur un ensemble de compétences (transverses) dans les domaines suivants :

  • Administration Azure
  • Développement Azure
  • DevOps.

Il est recommandé d’avoir des connaissances solides (Expert Level) dans au moins un de ces 3 domaines d’expertise.

 

Objectifs de l’examen de certification AZ-304

La liste des domaines de compétences /services /composants Azure sur lesquels vous serez évaluez lors de l’examen de certification AZ-304 est détaillée ci-dessous. Le % de chaque domaine de compétences représente le nombre de questions pendant l’examen :

 

Design Monitoring (10-15%)
  • Design for cost optimization
    • recommend a solution for cost management and cost reporting
    • recommend solutions to minimize costs
  • Design a solution for logging and monitoring
    • determine levels and storage locations
    • plan for integration with monitoring tools including Azure Monitor and Azure Sentinel
    • recommend appropriate monitoring tool(s) for a solution
    • choose a mechanism for event routing and escalation
    • recommend a logging solution for compliance requirements
    • NOTE: resource-specific monitoring. This objective should ONLY cover the all-up holistic monitoring strategy

 

Design Identity and Security (25-30%)
  • Design authentication
    • recommend a solution for single-sign on
    • recommend a solution for authentication
    • recommend a solution for Conditional Access, including multi-factor authentication
    • recommend a solution for network access authentication
    • recommend a solution for a hybrid identity including Azure AD Connect and Azure AD Connect Health
    • recommend a solution for user self-service
    • recommend and implement a solution for B2B integration
    • NOTE: federation with ADFS
  • Design authentication
    • choose an authentication approach
    • recommend a hierarchical structure that included management groups, subscriptions and resource groups
    • recommend an access management solution including RBAC policies, access reviews, Privileged Identity Management (PIM), Azure AD Identity Protection, Just In Time (JIT) access
  • Design governance
    • recommend a strategy for tagging
    • recommend a solution for using Azure Policy
    • recommend a solution for using Azure Blueprint
  • Design security for applications
    • recommend a solution that included KeyVault
      • what can be stored in KeyVault
      • KeyVault operations
      • KeyVault regions
    • recommend a solution that includes Azure AD Management Identities
    • recommend a solution for integrating applications into Azure AD

 

Design Data Storage (15-20%)
  • Design a solution for databases
    • select an appropriate data platform based on requirements
    • recommend database service tier sizing
    • recommend a solution for database scalability
    • recommend a solution for encrypting data at rest, data in transmission, and data in use
    • NOT: data caching
    • NOT: MariaDB, PostgreSQL, MySQL
  • Design data integration
    • recommend a data flow to meet business requirements
    • recommend a solution for data integration, including Azure Data Factory, Azure Databricks, Azure Data Lake, Azure Synapse Analytics
  • Select an appropriate storage account
    • choose between storage tiers
    • recommend a storage access solution
    • recommend storage management tools

 

Design Business Continuity (10-15%)
  • Design a solution for backup and recovery
    • recommend a recovery solution for Azure hybrid and on-premises workloads that meets recovery objectives (RTO, RLO, RPO)
    • design an Azure Site Recovery solution
      • recommend a site recovery replication policy
      • recommend a solution for site recovery capacity
      • recommend a solution for site failover and fallback (planned / unplanned)
      • recommend a solution for the site recovery network
    • recommend a solution for recovery in different regions
    • recommend a solution for Azure Backup management
    • design a solution for data archiving and retention
      • recommend storage types and methodology for data archiving
      • identify business compliance requirements for data archiving
      • identity requirements for data archiving
      • identify SLA(s) for data archiving
      • recommend a data retention policy
  • Design for high availability
    • recommend a solution for application and workload redundancy, including compute, database, and storage
    • recommend a solution for autoscaling
    • identify resources that require high availability
    • identify storage types for high availability
    • recommend a solution for geo-redundancy of workloads

 

Design Infrastructure (25-20%)
  • Design a compute solution
    • recommend a solution for compute provisioning
    • determine appropriate compute technologies, including virtual machines, App Services, Service Fabric, Azure Functions, Windows Virtual Desktop, and containers
    • recommend a solution for containers
      • AKS versus ACI and the configuration of each one
    • recommend a solution for automating compute management
    • NOT: monitoring, backups, recovery, availability, security, storage; VMWare
  • Design a network solution
    • recommend a solution for network addressing and name resolution
    • recommend a solution for network provisioning
    • recommend a solution for network security
      • private endpoints
      • firewalls
      • gateways
      • etc.
    • recommend a solution for network connectivity to the Internet, on-premises networks, and other Azure virtual networks
    • recommend a solution for automating network management
    • recommend a solution for load balancing and traffic routing
  • Design an application architecture
    • recommend a microservices architecture including Event Grid, Event Hubs, Service Bus, Storage Queues, Logic Apps, Azure Functions, and webhooks
    • recommend an orchestration solution for deployment of applications including ARM templates, Logic Apps, or Azure Functions
      • select an automation method
      • choose which resource or lifecycle steps will be automated
      • design integration with other sources such as an ITSM solution
      • recommend a solution for monitoring automation
    • recommend a solution for API integration
      • design an API gateway strategy
      • determine policies for internal and external consumption for APIs
      • recommend a hosting structure for API management
      • recommend when and how to use API Keys
  • Design migrations
    • assess and interpret on-premises servers, data, and applications for migration
    • recommend a solution for migrating applications and VMs
    • recommend a solution for migration of databases
      • determine migration scope, including redundant, related, trivial, and outdated data

 

Pour afficher la liste complète des objectifs de l’examen, veuillez consulter le PDF officiel des objectifs de l’examen AZ-301 de Microsoft. Actuellement, il est publié dans le même document que les objectifs AZ-301, jusqu’à la sortie officielle de l’examen AZ-304 prévue fin Mars /début Avril 2020.

 

Cours /Formations pour Azure Architect Design AZ-304

Comme mentionné précédemment, l’examen de certification AZ-304 verra le jour qu’à partir de fin Mars /début Avril 2020, aucune formation /guide de préparation n’est dipsonible au moment de la rédaction du présent post.

Je publierai (courant les mois à venir) un autre post avec tous les liens utiles /cours /formations pouvant vous aider à préparer cette nouvelle certification Azure.

 

A bientôt,

Microsoft a récemment publié la seconde Edition de son free eBook « Azure for Architects« .

Consultez la Table des Matières ci-dessous pour en savoir plus :

 

La bonne nouvelle c’est que cette seconde Edition est proposée aussi bien en « Anglais » qu’en « Français » :). Ce qui n’était pas le cas pour la première Edition.

L’eBook « Azure pour les Architectes | Seconde Edition » peut être téléchargé directement depuis les lien/boutons suivants :

 

 

Bonne lecture à tous :).

A bientôt.

 

Introduction

PSexec fait partie de la fameuse SysInternals Tools/PsTools Suite de Microsoft, créée par Mark Russinovich, qui n’est autre que le CTO actuel de la firme américaine.

PSexec vous permet d’exécuter des commandes/Processus sur des machines distantes, et ce sans avoir besoin d’installer de features/outils supplémentaires.

Il s’agit d’un outil très puissant d’Administration (à distance) et troubleshooting des plateformes Windows (Client & Server).

Télécharger la Suite SysInternals Tools

Télécharger l’outil PSexec.exe

Note : le guide d’utilisation de PSexec est détaillé depuis la même page de Download.

Tip : comme vous pouvez le constater, les tools de la Sysinternals peuvent être téléchargés séparément.

 

Bloquer l’exécution de PSexec ?!! Pourquoi ? Pour quelles raisons ?

Contrairement à la plupart des Softwares/Tools de Microsoft, le fonctionnement de PsExec.exe n’est pas un secret, il est assez simple. PsExec autorise les redirections des Input & Output d’un exécutable démarré à distance via l’utilisation de SMB et du partage (caché) $ADMIN sur le système distant. Avec ce partage, PsExec utilise l’API Windows Service Control Manager (WSCM) pour démarrer le service PsExecsvc sur le système distant, qui crée un canal nommé avec lequel PsExec communique. Ce canal nommé est ce qui permet la redirection des entrées / sorties vers le système qui a lancé PsExec.

PsExec peut être utilisé pour collecter des informations depuis des machines distantes (IPConfig, Net use, …) ou administrer un serveur Windows (Changer le password d’un compte Admin Loca, Patch management à partir d’un script…) ou encore lancer une instance Regedit.exe en tant que System Account pour pouvoir écrire/modifier certaines clés de Registre et bien plus encore !

La puissance de cet outil fait justement « peur » à certains RSSI/DSI, par conséquent, PsExec fait généralement partie des tools à Blacklister sur tout le parc Windows Client/Server.

A l’aide de PsExec, un Hacker ayant réussi à récupérer des crédentials depuis une machine vulnérable sur le réseau, peut les utiliser pour établir une connexion distante et tenter des collecter plus d’infos sensibles voire envisager une escalation de privilège.

 

Quelques Real-world scénarios
  • Exéuction d’un programme malveillant à distance (eg : Backdoor)

Figure 4: A malicious executable being launched remotely

  • Exécuter un programme/file à distance via l’utilisation d’un UserName et le Hash de son password !

Figure 5: Using a password hash to execute a file remotely

Exécution des outils /programmes en tant que Compte « System » : compte ayant le plus haut niveau de privilège sur les OS Windows

 

Vous aurez compris, l’utilisation de PsExec au sein d’un réseau Windows peut s’avérer dangereuse car permettrait à un Hacker ou toute personne malveillante d’accéder et récupérer à des informations sensibles (AD, comptes Admin…)

 

HowTo : Bloquer l’exécution du PSexec

Il existe différentes méthodes pour bloquer l’exécution de PsExec.exe :

  • Désactivation du partage (par défaut) ADMIN$
  • Déploiement d’une clé de registre (psexec.exe > Dubugger = svchost.exe)

 

Bloquer PsExec via la désactivation du Partage Windows ADMIN$

Pourquoi désactiver le partage ADMIN$ ?

Lorsque PsExec est utilisé pour exécuter une tâche/commande sur un système distant, il crée un nouvel exécutable/service appelé « psexesvc.exe ». Cet exe est copié dans le dossier Windows de la machine distante via le partage par défaut ADMIN$ (d’où la nécessité d’être un administrateur pour que psexec fonctionne à distance), désactiver ce partage bloque donc le fonctionnement de PsExec

Pour désactiver le partage ADMIN$, rien de plus simple, il faut lancer la console « Dossiers partagés » en exécutant l’outil « FsMgmt.msc » depuis le Menu Exécuter ou Démarré > Partages > ADMIN$ > Click-droit > Arrêter le Partage.

 

Bloquer PsExec via la clé de Registre

Pour bloquer l’exécution du PSexec via la clé de Registre, suivez les instructions suivantes :

  • Créer une clé de Registre nommée « psexec.exe » au niveau de : HKLM\Software\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\
  • Créer ensuite une sous-clé au niveau de « psexec.exe », avec les informations suivantes :
    • Type : REG_SZ (Data String)
    • Nom clé : Debugger
    • Valeur : svchost.exe

 

Aucun reboot de la machine n’est requis :).

Testons maintenant l’exécution du PSexec. Dans l’exemple suivant, je reprend l’exemple précédent pour lancer un CMD.exe en tant que « System », comme montré ci-dessous, aucun résultat n’est retourné.

PSexec est bloqué au lancement, vous n’aurez aucune info ni message d’erreur :

 

Bloquer PsExec via GPO (GPP)

Si vous devez généraliser le déploiement de la clé Registre créée précédemment, le meilleur moyen de le faire, est de configurer une GPP (Group Policy Preference), voir paramètres suivants ;

 

Télécharger la clé de Registre

Vous pouvez télécharger la clé de Registre depuis l’URL suivante et l’importer directement sur les machines (Client et/ou Serveur) sur lesquelles vous souhaitez bloquer l’exécution de PSexec

https://gallery.technet.microsoft.com/Block-PsExec-Execution-4a86c023

 

Pensez à implémenter AppLocker 

Le meilleur moyen de bloquer l’exécution des PsTools (PsExec, PsShutdown…) est d’implémenter des règles (Blacklisting) AppLocker à base de Hash, c’est le moyen le plus fiable en terme de software blacklisting dans les environnements Windows.

 

Note : un eBook sur AppLocker 2012 R2 et 2016 est disponible sur BecomeITExpert.com. Si le sujet vous intéresse, cliquez sur une des images ci-dessous pour en savoir plus.

 

A bientôt :).

Introduction 

Pour certains : Cloud = réduction des coûts IT, alors que cela n’est pas forcément vraie !

Quand on adopte le Cloud, c’est surtout pour bénéficier de la puissance d’un CloudOs : puissance de calcul, Sclabilité, Fléxbilité …

Plusieurs clients déployant des Workloads dans le Cloud ou migrant celles hébergées initialement OnPrem, se rendent compte que les factures à la fin du mois peuvent vite devenir salées car souvent oublient de définir une gouvernance Azure « Financière » qui leur permettent de contrôler, comment les ressources Cloud sont déployées, consommées et monitorées.

J’ai décidé aujourd’hui de partager avec vous quelques Best Practices ainsi que des « Tips & Tricks » vous permettant de contrôler et d’optimiser votre conso Azure.

Plus précisément, nous allons parler des items suivants :

  • Azure Advisor
  • Les Reserved Instances
  • Azure Hybrid Benefit
  • Arrêts/Démarrages auto des VMs Azure
  • Utilisation des Stratégies (Policies) Azure
  • Utilisation des Tags
  • Utilisation du Stockage Azure de type « Cool & Archive »
  • Utilisation d’Azure Budgets
  • Utilisation de l’Auto-Scaling
  • Dimensionnement des ressources Azure
  • Utilisation des Souscriptions Azure Dev/Test
  • CleanUp des ressources Azure

 

Bonne lecture à tous :).

 

#1 : Azure Advisor

Azure Advisor est un Consultant Azure « Virtuel » et « Automatisé » qui vous aide à optimiser et sécuriser vos déploiements Cloud mais aussi à réduire vos coûts Azure. Il s’appuie sur tout un ensemble de « Best Practices » et règles de conformité/sécurité standards.

En effet, Azure Advisor examine la configuration de tous vos services Azure déployés et vous propose des recommandations dans les domaines suivants

  • Haute Disponibilité
  • Sécurité
  • Performance
  • Coût

 

Le périmètre d’analyse Azure Advisor est limité aux :

  • Abonnements
  • Groupes de Ressources

 

Vous pouvez utiliser Azure Advisor pour analyser/évaluer la configuration de vos ressources, Az Advisor pourra ensuite vous proposer des recommandations en cas de sous-utilisation de certaines Workload tels que les VM Azure.

Dans l’exemple suivant, Azure Advisor nous fait part de deux recommandations assez intéressantes :

  • Downsizer plusieurs VM Azure car celles-ci sont sous-utilisées, cela nous fera apparemment économiser +2200€ /an
  • Supprimer une Adresse/Interface IP Public qui n’est apparemment, associée à aucune ressource Azure, cela nous fera +30€ d’économie.

Azure Advisor : Pricing 

Azure Advisor est un service gratuit :).

A noter tout de même que vous avez la possibilité de souscrire à un panel d’options de support (AzAdvisor) à partir de 24€.

eBook Azure Advisor : j’ai récemment publié sur BecomeITExpert.com un eBook dédié à Azure Advisor, Cliquez ici pour en savoir plus.

 

#2 : Azure Reserved Instances

Azure Reserved Instances (Azure RI)  vous permettent de réduire considérablement votre consommation Azure (jusqu’à 72%) en vous engagement sur 1 ou 3 ans.

Le principe est simple : plus on s’engage dans le temps pour consommer, plus on obtient de remise.

En fonction de la durée d’engagement (1 ou 3 ans), vous pouvez obtenir des remises pouvant atteindre les -72%.

Tip : vous pouvez atteindre 80% de remise si vous activez l’Azure Hybrid Benefit‘. Voir section suivante pour en savoir plus.

 

Services concernés par Azure RI

Les réservations concerne uniquement le Compute (Puissance de calcul). Les RI peuvent être achetées pour les services Azure suivants :

  • Azure VM
  • Azure Cosmos DB
  • Azure SQL Database
  • Azure SQL Data Warehouse
  • App Service

 

Note importante : les réduction de coût Azure via les RI concerne uniquement la puissance de calcul (Compute). Le coût relatif au stockage, réseau, licences (eg : Azure SQL) ne sont pas concernées les instances réservées.

 

Pré-requis 

Pour pouvoir acheter des instances réservées, vous devez avoir le rôle « Owner /Propriétaire » au niveau de l’abonnement.

 

Qui peut acheter des Instances réservées ?

Pour pouvoir acheter des instances réservées, vous devez avoir le rôle « Owner /Propriétaire » au niveau Souscription de type :

  • [EA] Enterprise Agreement (Offres : MS-AZR-0017P ou MS-AZR-0148P)
  • Pay-As-You-Go (Offres : MS-AZR-0003P ou MS-AZR-0023P)
  • Microsoft Customer Agreement.

Si vous êtes CSP (Cloud Solution Provider), vous pouvez utiliser soit le Portail Azure ou le Centre Partenaire pour acheter des Réservation Azure..

Modalités de paiement 

Vous pouvez payer une réservation à l’avance ou tous les mois. Une même réservation avec paiement initial et avec paiements mensuels a le même coût total : vous ne payez pas de frais supplémentaires si vous optez pour le paiement mensuel.

  • Note : Le paiement mensuel est disponible pour les réservations Azure, et non pour les produits tiers.

 

1 ou 3 ans ? combien puis-je économiser exactement ?

Seul la Calculatrice Azure peut répondre à ce type de question :).

Voyons combien nous coûtera une VM Windows « Standard_B4ms » réservée pendant 3 ans, et hébergée en France (Central).

  • Rendez-vous sur Calculatrice Azure, et ajoutez « Machine Virtuelle« .
  • Configurez les options suivantes :
    • Région : France Central
    • Guest OS : Windows
    • Niveau : Standard
    • SKU : B4ms

 

Pour du Pay-as-you-Go (sans engagement), cette VM nous coûtera 163,52$ /mois

Calculons maintenant le prix de cette même VM avec un engagement sur 3 ans (Réservation pendant 3 ans)

Comme indiqué dans la capture d’écran ci-dessus, nous économisons ~100$ /mois avec un RI de 3 ans : 3600$ sur les 3 ans, ce qui n’est pas négligeable du tout.

 

Acheter des Reserved Instance

Cliquez ici pour acheter des instances réservées Azure.

Ce Blade vous permet également de visualiser les RI déjà achetées !

Dans l’exemple suivant, nous allons acheter une instance réservée de VM, commencez par cliquer sur « Acheter maintenant »

Cliquez sur « Acheter » sous « Machine Virtuelle » :

Le Menu suivant apparaît, vous pouvez définir des filtres (eg : dureé d’engagement 1an ou 3 an, région Azure…) :

Il suffit de sélectionner la VM qui vous intéresse pour la réserver pendant 1 ou 3 ans, vous pourrons ainsi réduire votre conso Compute Azure.

Pour en savoir plus sur les instance Réservées Azure, je vous invite à consulter cette page.

Information utile

Les réservations peuvent être annulées à tout moment, vous switcherez automatiquement en mode Pay-as-you-Go dès annulation d’une réservation.

 

#3 : Azure Hybrid Benefit

Azure Hybrid Benefit est une option tarifaire qui vous permet d’étendre vos Licences Windows Server et SQL Server dans le Cloud Azure.

Si vous disposez des licences Windows Server ou SQL Server via contrat SA (Software Assurance) ou équivalent (Licences de type EAS, Abonnement SCE ou Abonnement Open Value), sachez que vous pouvez les réutiliser pour vos Workloads Azure (Azure VM, Azure SQL, ou SQL Server sur des VMs Azure), et réduire le coût de ces ressources de manière considérable.

Vous économisez généralement jusqu’à 80% quand vous combinez Azure Hybrid Benefit avec les instances réservées (RI) Azure.

 

Source : Microsoft Docs

 

Services concernés par Azure Hybrid Benefit

La liste des services/produits est la suivante :

  • Windows Server Standard Edition avec Software Assurance
  • Windows Server Datacenter Edition avec Software Assurance
  • SQL Server Enterprise Core avec Software Assurance
  • Azure SQL Database

 

HowTo : activer Azure Hybrid Benefit

Azure Hybrid Benefit peut être activé lors du déploiement d’une nouvelle VM, vous pouvez également l’activer sur des VMs existantes.

Il suffit de répondre « Oui » au niveau de l’option « Vous disposez déjà d’une licence Windows Server » lors du déploiement d’une nouvelle VM Azure.

Vous devez ensuite confirmer cela en cochant « Je confirme que j’ai une licence Windows Server avec Software Assurance… » :

Si vous avez oublié de le faire pour vos anciens déploiement VMs, vous pouvez toujours activer l’Azure Hybrid Benefit au niveau du Blade « Configuration » de vos VMs, voir exemple suivant :

Il s’agit ici d’une méthode manuelle, qui n’est bien évidemment pas la plus adaptée quand il s’agit d’un environnement Azure avec plusieurs dizaines ou centaines de VMs. Cela peut être réalisé de manière automatisée via des scripts PowerShell (Update-AzVM) ou Az CLI (az vm update).

Tip : les commandes PS et Az CLI qui vous permettent d’updater la configuration de vos VMs pour activer Azure Hybrid Benefit sont listées ci-dessous :

Commandes PowerShell

$vm = Get-AzVM -ResourceGroup "saisir_ici_leNom_de_votre_RG"

$vm.LicenseType = "Windows_Server"

Update-AzVM -ResourceGroupName "saisir_ici_leNom_de_votre_RG" -VM $vm

Commande Az CLI (2.0)

az vm update --resource-group "saisir_ici_leNom_de_votre_RG" --set licenseType=Windows_Server

 

Forcez l’utilisation d’Azure Hybrid Benefit

Perso, pour mes clients disposant déjà d’un contrat SA, je déploie plutôt une Policy Azure qui exige l’activation d’Azure Hybrid Benefit pour tout nouveau déploiement de VM, cela permet de s’assurer que toute VM déployée est configurée avec Hybrid Benefit.

Le code JSON de la Policy est le suivant :

{
"type": "Microsoft.Authorization/policyDefinitions",
"name": "enforce-hybrid-use-benefit",
"properties": {
"displayName": "Enforce hybrid use benefit",
"description": "This policy will enforce usage of hybrid use benefit.",
"parameters": {},
"policyRule": {
"if": {
"allOf": [
{
"field": "type",
"in": [
"Microsoft.Compute/virtualMachines",
"Microsoft.Compute/VirtualMachineScaleSets"
]
},
{
"field": "Microsoft.Compute/imagePublisher",
"equals": "MicrosoftWindowsServer"
},
{
"field": "Microsoft.Compute/imageOffer",
"equals": "WindowsServer"
},
{
"field": "Microsoft.Compute/imageSKU",
"in": [
"2008-R2-SP1",
"2008-R2-SP1-smalldisk",
"2012-Datacenter",
"2012-Datacenter-smalldisk",
"2012-R2-Datacenter",
"2012-R2-Datacenter-smalldisk",
"2016-Datacenter",
"2016-Datacenter-Server-Core",
"2016-Datacenter-Server-Core-smalldisk",
"2016-Datacenter-smalldisk",
"2016-Datacenter-with-Containers",
"2016-Datacenter-with-RDSH"
]
},
{
"field": "Microsoft.Compute/licenseType",
"notEquals": "Windows_Server"
}
]
},
"then": {
"effect": "deny"
}
}
}
}

Après implémentation de cette Policy, si l’équipe Ops Azure tentent de déployer une nouvelle VM sans activation de l’Azure Hybrid Benefit, elle recevra le message d’erreur suivant :

 

Combien puis-je économiser avec Azure Hybrid Benefit ?

Microsoft propose un outil (Web) qui vous permet de calculer combine vous pourrez économiser avec l’activation de l’Azure Hybrid Benefit, l’outil est disponible depuis cet URL.

Dans l’exemple suivant, nous faisons un calcul simple sur la base de 100 Licences Windows Server (Datancer) qui seront activées dans Azure via l’offre Hybrid Benefit. Pour bénéfier de l’offre Hybrid Benefit, les VMs Azure sur lesquelles vos Licences SA seront activées doivent respecter certaines SKU, dans l’exemple suivant, la VM SKU D3 v2 est sélectionnée :

 

Comme montré dans la capture d’écran, grâce à Azure Hybrid Benefit, nous économisons presque 25.000€ /an pour 100 Licences Windows Server.

Cela dû au fait qu’avec Azure Hybrid Benefit, vous économiserez le coût de la Licence Windows Server (Standard ou Datacenter) et vous payerez uniquement les frais liés à l’infrastructure Azure hébergeant votre VM :

image 1

 

Consultez cette page pour en savoir sur Azure Hybrid Benefit

 

#4 : Configurer des arrêts/démarrages auto sur vos VMs

Planifier des arrêts et démarrages automatiques sur vos VMs Azure non critiques/hors production: Dev, Recette, Intégration, Sandbox…

Cela vous permet de réduire vos coûts Azure de manière considérable (jusqu’à 66%).

Prenons l’exemple d’une VM à 100$/mois qui est utilisée uniquement 7 ou 8 heures par jour, si vous planifiez son arrêt/démarrage automatique, vous serez facturés uniquement pendant les 7/8 heures d’exécution, vous paierez donc 100$ /3 = 33,33$ au lieu de 100$.

Options d’arrêt/démarrage auto

Il existe plusieurs options/fonctionnalités vous permettant de planifier des arrêts/démarrage auto de vos VMs.

  • Fonctionnalité Buit-in appelée « Arrêt automatique« , disponible au niveau de chaque VM
      • Notez que cette feature ne vous permet pas le démarrage automatique de la VM, cela devra donc se faire à la main ou via un scheduler/script.

  • Utilisation d’Azure Automation : je vous invite à consulter cette page pour en savoir plus
    • Note : un post dédié à ce sujet est en cours de finalisation, n’hésitez pas à vous abonner sur mon Blog pour être informé dès sa publication.

 

#5 : Définir et Appliquer des Stratégies (Policies) Azure

Azure Policy une composante critique et importante du modèle de gouvernance global Azure.

Les Stratégies Azure vous permettent de définir vos standards de sécurité/conformité, et s’assurer que les ressources déployée sont « Compliant » depuis le déploiement jusqu’à exécution/utilisation.

Azure Policy peut être utilisé pour contrôler le type de SKU pouvant être déployé dans vos environnements Azure.

Le use-case qui revient le plus, est l’utilisation d’Azure Policy pour forcer l’utilisation de certains SKU de VM Azure (SKU Whitelisting) pour éviter l’utilisation de certains « SKU Monster » comme la M Serie (Up to 128 vCPUs /3.8TB de RAM) pouvant générer une consommation Azure très importante.

Dans l’exemple suivant, nous allons utiliser Azure Policy pour autoriser que les Azure VM SKU suivants :

D Serie, plus précisément :

  • D1_v2
  • D2_v2
  • D3_v2

Pour ce faire, sélectionnez votre abonnement (ou un RG si vous souhaitez appliquer cette Stratégie au niveau d’un RG), cliquez sur « Stratégies« , cliquez ensuite sur « Assigner une stratégie« , l’assistant s’affiche et vous demande de renseigner certains valeurs de paramètres.

Cliquez sur au niveau de la définition de la stratégie, et cherchez la définition SKU, comme montré dans la capture d’écran suivante :

Sélectionnez « Références SKU de machine virtuelle autorisées« , attribuez un nom à votre Policy Assignment, et cliquez sur Suivant pour continuer.

Sélectionnez les SKU de VM à autoriser (onglet « Paramètres« ), dans l’exemple suivant, nous allons sélectionner les 3 SKU suivants : D1_v2, D2_v2 et D3_v2

Enfin, cliquez sur « Vérifier + Créer » pour assigner votre Policy. Celle-ci apparaît désormais sous « Affectations » :

Comme montré dans la capture d’écran suivant, un Admin Azure tente de créer une VM en SKU G, le déploiement est refusé par la Policy que nous venons de définir, pour pouvoir déployer une VM Azure dans notre environnement, le SKU doit correspondre à D1_v2, D2_v2 ou D3_v2, Vous pouvez ainsi contrôler les coûts Azure générés par vos ressources IaaS Azure VM.

Guide pas à pas sur « Azure Policy »

Si vous voulez en savoir plus sur Azure Policy, je vous invite à consulter le guide pas à pas suivant :

Il s’agit d’un Slideshare, vous pouvez le consulter/télécharger directement depuis ce Link.

 

#6 : Forcer l’utilisation des Tags

Les Tags vous permettent d’organiser vos Ressources Azure de manière logique et par Catégorie.

L’utilisation de Tags dans Azure est primordial, car vous permettra de savoir :

  • Qui est propriétaire de la ressource (Tag : ResourceOwner)
  • La ressource appartient à quelle application (Tag : Application Name)
  • S’agit d’une ressource Dev/PreProd/Prod [Tag : EnvironmentType) ?
  • La ressource a été déployée pour quel besoin (Tag : Project Code)
  • Qui contacter en cas de maintenance de la ressource, si la machine doit être Patchée et rebooté (Tag : TechnicalContact)
  • A qui doit-on (re)facturer cette ressource la fin du mois ? si la notion du charge-Back est adoptée (Tag : CostCenter)

 

Grâce aux Tags Azure, vous pouvez faire un regroupement des coûts (par Appli, par type d’environnement …), ces informations sont très précieuses aux yeux du DAF :).

Les Tags vous permettent de connaitre combien vous coûtent vos ressources Dev à un instant T. Quel est le ResourceOwner qui consomme le plus de Ressources Azure …

Vous aurez compris, Tagger les ressources Azure devient plus qu’une bonne pratique, mais un moyen efficace pour suivre et tracer qui, consomme, quoi dans vos environnements Azure.

 

Si vous voulez en savoir plus sur Azure Tags, je vous invite à consulter le guide pas à pas suivant :

Il s’agit d’un Slideshare, vous pouvez le consulter/télécharger directement depuis ce Link.

 

#7 : Configurer des niveaux d’accès de type « Cool & Archive »

Toutes les données que vous uploadez vers ou générez depuis Azure ne doivent pas nécessairement être stockées sur du stockage Haute Performance. si vous classifiez vos données et créez des catégories avec le niveau de performance exigé, vous allez vite vous rendre compte que plusieurs types de données ne nécessitent pas vraiment un type de stockage très performant.

Azure propose aujourd’hui différents niveaux d’accès au Blog Stockage : Hot, Cool et Archive.

Le niveau d’accès « Hot » est surement dédié aux données qui sont fréquemment utilisées.

Les deux autres Access Tiers (Cool & Archive) peuvent être configurée quand il s’agit des données rarement utilisées (fichiers de Backup, logs…)

Pour économiser le coût lié au Stockage Azure, il est est recommandé d’utiliser les niveaux d’accès Cool & Archive et de n’utiliser le niveau « Hot » que quand c’est nécessaire.

 

Pourquoi utiliser un stockage Cool & Archive plutôt que Hot ?

Voyons d’abord c’est quoi la différence entre les niveaux « Cool » et « Archive ».

Stockage Azure « Cool » 

Le niveau de stockage de type « Cool », concerne les données peu consultées qui doivent être stockées (archivées) pendant au moins 30 jours. Quelques scénarios typiques incluent la sauvegarde des données avant archivage (sur des systèmes d’archivage), des fichiers multimédias, des logs/fichiers d’audit ou encore des données utilisés pour de l’Analytics Big Data…

Stockage Azure « Archive »

Comme son nom l’indique, le niveau de stockage de type « Archive » est un stockage peu coûteux pour les données d’archivage qui seront rarement consultées/accédées. Ce niveau concerne les données qui resteront stockées (archiveées) pendant au moins 180 jours, comme par exemple les données de sauvegarde l’historique médical, les fichiers logs, enregistrements audios/tél…

Quels avantages ?

Le coût d’un compte de Stockage configuré avec les niveaux d’accès « Cool » ou « Archive » sont beaucoup moins cher que celui en niveau d’accès « Hot ».

Consultez le tableau ci-dessous pour en savoir plus

Note importante : l’Archive Storage reste le moins coûteux > le 1 GB est à 0,002$ seulement (pour les 50 premiers TB).

Vous pouvez consulter le document ci-dessous pour en savoir plus sur les niveaux d’accès à Azure Storage

https://docs.microsoft.com/fr-fr/azure/storage/blobs/storage-blob-storage-tiers

 

 

#8 : Pensez à configurer des alertes quand le Budget est dépassé 

Azure fournit aujourd’hui plusieurs outils de gestion des coûts Azure, tels que « Analyse de coût », « Alertes de coût » ou encore « Azure Budgets« .

Ces outils vous permettent d’analyser, évaluer et suivre votre consommation Azure en temps réel.

Nous allons nous intéresser à Azure Budget dans un premier temps.

Grace à Azure Budget, vous pouvez définir votre budget pour une Application, Groupe de ressource, un abonnement …

Azure Budget vous permet également de suivre la consommation de ce budget mais aussi et surtout être alerté en cas de dépassement.

Note importante : en cas de dépassement des seuils budgétaires définis, seules des notifications sont déclenchées (alerte par mail). Aucune de vos ressources n’est impactée ou arrêtée et votre consommation n’est pas arrêtée. Azure Budget est simplement utilisé pour définir un Quota, comparer et suivre les dépenses lors de l’analyse des coûts.

 

Dans l’exemple suivant, nous définissons un budget de 1000€ /mois pour un groupe de ressource dédiée à une Application métier appelée « HRApp » :

Les alertes (par Mail) suivantes sont positionnées/définies :

Enfin, vous pouvez suivre/monitorer la consommation du budget défini depuis la Blade « Budgets » de votre RG ou Abonnement (colonne « Progression ») :

 

Note importante : L’outil Azure Budget est disponible uniquement depuis les abonnements Azure de type EA.

 

#9 : Auto-Scaling 

Un Cloud (Public ou Privé) se caractérise par les notions d’Élasticité et l’auto-Scaling, ce sont aujourd’hui les arguments qui poussent une DSI d’aller vers le Cloud.

L’auto-scaling permet d’étendre ou réduire automatiquement votre environnement Cloud. Vous n’avez plus à intervenir pour déployer des VMs supplémentaires ou supprimer ceux dont vous n’avez plus besoin,

Si vous disposez d’un site web e-Commerce hébergé dans le Cloud, vous pouvez mettre en place des mécanismes d’auto-scaling pour étendre ou réduire les capacités de votre web site en fonction de la charge (nombre de visiteurs/visites..). Si des Pics d’activité se présentent, votre web site sera re-sizer automatiquement pour supporter cette montée en charge, et sera downsizer quand l’activité revient à la normale.

 

Scalabilité horizontale vs scalabilité verticale

Il existe deux types de Scaling : Horizontale et Verticale

Scaling Verticale

Le Scaling Verticale est le plus intuitif : cela revient à ajouter des ressources à une VM unique (en lui ajoutant de la RAM, en changeant son CPU pour un plus véloce…). C’est simple ! Mais :

  • Le coût est rapidement exponentiel de la capacité matérielle.
  • Cette solution a des limites : vous pourrez probablement multiplier par 2 les capacités de votre serveur, peut-être même par 5, mais pas par 100 !

Cela reste dans la majorité des cas la solution la plus pragmatique, et en particulier pour des applicatifs en production depuis de nombreuses années.

 

Scaling Horizontale

Le Scaling horizontale revient à ajouter de nouveaux serveurs réalisant le même type tâche. Cela permet de n’utiliser que des serveurs standards (on parle de commodity hardware). Mais les implications logicielles sont rapidement importantes !

  • L’application doit être stateless (sans état) : cela signifie que les données sont stockées dans un autre service (dans votre base de données, dans un cache distribué…)
    C’est l’idéal. Vous devriez concevoir vos nouveaux développement avec cet objectif.
  • Si votre applicatif stocke des données en local (par exemple des données de sessions utilisateurs stockée en RAM) : vous pouvez malgré tout scaler horizontalement s’il est possible de couper ces données en sous ensembles indépendants (on parle de sharding). Il est alors nécessaire de s’assurer que chaque client ne communique qu’avec un unique serveur. Cela passe par exemple par un proxy qui redirige le client vers un serveur applicatif donné en fonction des identifiants du client, on parle de sticky session.
  • Si il n’est pas possible de sharder facilement vos données, alors vous ne pouvez pas scaler horizontalement sans modifier en profondeur votre applicatif. Vous devez, au moins temporairement, vous en tenir à un scaling vertical.

 

Options d’auto-scaling Azure

Azure propose plusieurs options d’auto-Scaling vous permettant d’auto-configurer les capacités de vos services Cloud, le but étant de payer uniquement les ressources/capacités dont vous avez besoin, uniquement lorsque vous en avez besoin et éviter de payer des ressources/capacités inutiles.

Il est recommandé de concevoir et mettre en place une stratégie d’auto-Scaling sur vos ressources de Production Azure.

Je vous invite à consulter le post ci-dessous pour en savoir plus sur les options d’auto-Scaling Azure :

https://docs.microsoft.com/fr-fr/azure/azure-monitor/platform/autoscale-overview

 

#10 : Azure Dev/Test Subscriptions ?

Si vous êtes abonnés « Visual Studio », que vous souhaitez Builder des environnements Azure de Dev & Test, il est recommandé de souscrire à l’offre Azure Dev/Test plutôt qu’un abonnement Azure standard.

Azure Dev/Test, qu’est-ce que c’est ? 

Azure Dev/Test est une offre Azure dédiée aux Développeurs (exclusivement aux individus et sociétés disposant d’un abonnement Visual Studio) ayant besoin d’environnement Sandbox pour concevoir, développer et tester des services & applications dans Azure.

Avec l’offre Azure Dev/Test, trois options sont disponibles :

Ce qu’il faut retenir :

  • Offre « Particulier » : Si vous êtes un Freelance/Particulier et souhaitez avoir un environnement de Dev/Test sur Azure, cette offre est faite pour vous. Votre abonnement VS (Visual Studio) vous permettra d’avoir jusqu’à 130€ de crédit azure mensuel.  C’est à vous de décider comment vous utilisez votre crédit mensuel. Il existe plusieurs services Azure auxquels vous pouvez attribuer le crédit (cf liens ci-dissous). Les Software inclus dans votre abonnement Visual Studio peuvent être utilisé sur les VMs Azure sans frais supplémentaires. De plus, vous payez un tarif réduit pour les VMs Azure.
    Si vous dépassez le crédit inclut (130€ Max), vous serez facturés de manière mensuelle (dès réception de la facture). Pour finir, notez qu’un seul abonnement Azure Dev/Test (par abonnement VS) est autorisé
  • Offre « Equipes » (Clients EA : Enterprise Agreement) : vous permet d’avoir plusieurs abonnements Azure Dev/Test pour vos différentes équipes de Dev. Vous n’avez pas besoin de saisir les infos de votre CB lors de la souscription à l’offre Azure Dev/Test, vous serez facturés dans le cadre de votre contrat EA. Contrairement à l’offre « Particulier », cette option vous offre la possibilité de donner la main à vos End users pour exécuter les tests (recette) et donner leurs feedbacks.
  • Offre « Equipes » (Hors Clients EA) : si vous êtes abonnés VS mais ne disposez pas de contrat EA et souhaitez avoir des abonnements Azure Dev/Test, eh bien dans rentrez dans cette catégorie. La différence avec l’option précédente réside dans le fait que vous êtes facturés de manière mensuelle (par CB et à réception de la facture).

 

Quels avantages ?

Tout d’abord, il faut noter que les trois options listées précédemment vous permettent d’utiliser les Software inclus dans votre abonnement Visual Studio (environnements de Dev & Test uniquement) sans frais supplémentaires. Pour l’exécution de VMs Azure, vous bénéficiez d’un prix réduit basé sur le prix de VM Linux.

Reportez-vous au tableau ci-dessous pour en savoir plus sur les avantages/remises possibles avec l’offre Azure Dev/Test :

 

Créer votre abonnement Azure Dev/Test

L’option ajouter un nouvel abonnement vous redirige vers le Portail suivant, il suffit de sélectionner ‘Abonnement Dev/Test » et suivre l’assistant pour créer votre nouvel abonnement Azure Dev/Test :

Quelques liens utiles

Je vous invite à consulter les documents suivants pour en savoir plus sur l’offre Azure Dev/Test « Particulier », « Equipes /EA » et « Equipes /Hors EA » :

 

Si vous souhaitez donc déployer des Workloads (de Dev/Test) dans Azure, privilégiez l’utilisation d’Azure Dev/Test :).

 

#11 : Downsizer les ressources oversizées

Une autre bonne pratique consiste à auditer/analyser régulièrement (une fois /mois par exemple) les ressources Azure pour identifier d’éventuelles ressources sur-dimensionner. Vous pouvez ensuite procéder à une Downsizing de ces services/ressources pour réduire les coûts Azure associés.

Ces opérations peuvent être industrialisées/automatisées à l’aide d’options/features d’auto-scaling (Up & Down) fournis avec Azure (cf Section #9).

 

#12 : Pensez à faire le CleanUp

Planifiez des CleanUp régulièrement !

Si cela ne se fait pas de manière automatique (via des RunBooks + Tags « EndDate /Date_Suppression… »), je vous propose la méthode /process suivant :

  • Auditer /Identifier toutes les ressources « Inactives » : WebApps, VMs … éteintes et ne présentant aucune activitée depuis plus de 3 mois
  • Se référer aux Tags pour connaitre les Resources Owner (Propriétaire) de ces ressources
  • Rentrer en contact avec ces personnes pour leur faire part de vos futures opérations (suppression des ressources)
  • Obtenir un GO /Validation des responsables/Owner de ces ressources
  • Planifier la suppression des ressources non utilisées.
  • Reporter (un mail suffit) après la réalisation des actions de suppression.

 

On a tous connu des Devs ou Business Users qui ont déployés pleins de RG à des fins de tests, mais qui n’ont jamais pris le temps d’arreter ou supprimer ces ressources en fin de PoC/Sandbox.

Ce Process vous permet de faire le ménage de manière régulière pour économiser les frais associés aux ressources déployées mais aussi avoir une infrastructure Azure propre et Always UpToDate :).

 

What Else ?

Partagez ces 12 BP avec votre DAF, il va surement Liker le post :).

A bientôt, Stay tuned.

#HK

Il existe aujourd’hui plusieurs outils graphiques et en ligne de commande (GUI & CLI) vous permettant de gérer vos environnements et ressources Cloud Azure.

Nous distinguons :

  • Portail Azure
  • Azure CLI
  • Windows PowerShell (Az Module)
  • API REST
  • Azure SDKs

 

Si vous n’êtes pas encore familier avec PowerShell ou Bash (CLI), vous allez sûrement commencer à déployer et manager vos ressources Azure via le Portail Azure, disponible depuis cet URL : https://portal.azure.com

Aujourd’hui, je vais justement vous présenter quelques raccourcis clavier utiles disponibles directement depuis le Portail Azure.

Ces raccourcis peuvent vous être utiles pour mieux naviguer sur le Portail Azure et accéder rapidement à certains services qui y sont intégrés.

 

Liste des Raccourcis Clavier du Portal Azure

La liste des raccourcis clavier est disponible depuis le Portail Azure, il suffit de cliquer sur < Help >, disponible depuis le coin supérieur droit, et cliquez ensuite sur « Keyboard Shortcuts » ou « Raccourcis clavier » si votre interface Web est configurée en langue « fr-FR » :

La liste des raccourcis est affichée comme montré dans la capture d’écran suivante :

N’hésitez pas à tester les différents Shotcuts, comme par exemple « G+N » (il faut maintenir la touche G et cliquer ensuite sur N) pour faire apparaître l’assistant de création de nouvelle ressource Azure suivant :

 

Vidéo from Microsoft Azure

Je vous invite à visionner la vidéo ci-dessous montrant l’utilisation des Shortcuts du Portail Azure.

Elle a été réalisée par la Team Microsoft Azure

Information utile

La liste des raccourcis clavier du Portail Azure est également documentée sur le service docs.azure, et est disponible ici.

Je vous invite à consulter cette page régulièrement pour rester informé des dernières modifications /ajout de nouveaux raccourcis.

Enjoy :).

IoT Analytics platform for Real-Time and Streaming Analytics - XenonStack

 

Si vous intervenez sur des environnements Cloud Azure, en tant que Consultant /Architecte ou même auditeur, vous avez sûrement eu besoin de documenter la ou les architecture Azure sur lesquelles vous avez travaillé pour sortir une Big Picture illustrant tous les services /features /composants qui y sont déployés.

J’ai récemment audité une infra Azure d’un de mes clients, ce dernier ne disposant d’aucun schéma /DAT, j’ai été amené à documenter son architecture Azure.

Pour ce faire, j’ai dû utiliser plusieurs Outils/Templates/Visio stencil… j’ai donc décidé de publier ce post pour partager ces ressources avec vous :).

 

Outils & Liens Utiles

Tous les liens /documentations /ressources utilisées pour documenter une Architecture Azure sont listés ci-dessous :

 

Enjoy, à bientôt,

#HK

Résultat de recherche d'images pour "azure private link"
Introduction

Les clients Azure ont de plus en plus besoin d’accéder à leurs données et services Cloud de manière privée et sécurisée.

Plusieurs Services Azure (offres PaaS et SaaS principalement) sont (par défaut) déployés avec des interfaces Publics. Eg Database Azure SQL ou Compte de Stockage Azure déployés avec des URL Publics/DNS Name routable sur Internet.

Microsoft avait introduit un service appelé « VNET Service Endpoint » (Points de terminaison) permettant d’associer un service Azure partagé (Shared) à un VNET privé.

Vous pouvez en effet sécuriser la connexion à un service Partagé tel qu’une base Azure SQL PaaS en utilisant les points de terminaison VNET, ces derniers maintiennent le trafic sur le réseau interne Microsoft et permettent de « Lock-down » la ressource PaaS sur votre réseau virtuel uniquement.

En revanche, les points de terminaison PaaS restent accessibles via une adresse IP publique et ne peuvent donc pas être atteints depuis votre réseau local/onPrem via un Peering privé ExpressRoute ou une Passerelle VPN Azure.

Pour rendre ses services PaaS et SaaS Publics accessibles de manière privée et sécurisée, Microsoft a introduit un nouveau service appelé « Azure Private Link » !

 

Azure Private Link : qu’est-ce que c’est ? 

Tant attendu, Azure Private Link (APL) est un service qui va vous permettre d’accéder à des services Azure tels que Azure Storage, SQL (Offres PaaS), des Services tiers (Marketplace Azure) ou encore des ressources Buildées par vous via une liaison privée/sécurisée et complètement déconnectée d’Internet.

Une fois configuré et intégré à votre VNET, Azure Private Link établit un lien privé via des Private Endpoints avec tous les services Azure partagés pris en charge (Azure SQL, Azure Storage…), ces derniers deviennent accessibles via une Adresse IP Privée/Locale faisant parti de votre Range IP, comme n’importe quelle ressource déployée et associée à un de vos VNET Azure.

Notez qu’Azure Private Link s’intègre également avec les Zones DNS Privées d’Azure.

Prenons l’exemple suivant : Architecture Hybride Azure avec liaison ER (Private Peering)

Azure présente une extension de votre Datacenter (OnPrem), ce dernier est interconnecté avec Azure via une liaison « ExpressRoute » en Private Peering.

Vous déployez une base de données Azure SQL, par défaut, ce service est accessible via une URL publique (Routable sur Internet). Azure Private Link permet de rendre cette ressource Publique (DB Azure SQL), privée en l’associant à votre VNET et en lui attribuant une adresse IP locale. Les utilisateurs OnPrem peuvent donc (via le lien Private Peering ExpressRoute) accéder à cette DB Azure SQL via son adresse IP Privée/Locale, la ressource sera visible et accessible comme n’importe quelle ressource déployée dans vos environnements locaux ou Cloud.

Cela réduit considérablement le risque lié à l’exposition des ressources Azure sur Internet, car tout le trafic passe à travers le réseau Interne de MS Azure (Azure Backbone Network).

Le Schéma suivant illustre le fonctionnement du service Azure Private Link :

Diagram showing the Private Link topology. Starting from services attached to Private Link, then linked and made available in the customer VNet through a Private Endpoint.

 

Vous pouvez aussi regarder la vidéo ci-dessous pour en savoir plus sur APL :

[Cliquez sur l’image pour visionner la vidéo]

 

Pourquoi utiliser Azure Private Link : Quels avantages ? Quels Use-Cases ?

L’utilisation d’Azure Private Link présente plusieurs avantages :

  • Configuration réseau simplifiée : la configuration et gestion des règles de filtrage réseau reste la même car tous les services Publics partagés (eg : Azure SQL Database) deviennent privés et sont accédées via leurs interfaces IP privées comme n’importe quelle ressource associée à votre VNET (même accès et connectivité que les VM Azure par exemple).

Vous pouvez utiliser Azure Private Link dans les scénarios suivants :

  • Si vous voulez établir une connexion privée avec les services PaaS Azure : comme mentionné précédemment, grâce à Azure Private Link, vous pouvez désormais accéder à des services partagés Multi-tenant tels que le Stockage Azure, Azure SQL de manière privée et sécurisée. Vous pouvez simplement créer un Private Endpoint dans votre VNET et le mapper sur votre ressource PaaS (votre compte de stockage Azure ou base de données SQL), APL attribue ensuite des adresses IP locales/privées à ces services PaaS et les rendent accessibles depuis votre réseau Azure (VNET) ou Local (OnPrem).
  • Si vous voulez Établir une connexion privée avec les services SaaS Azure : Plusieurs Partenaires de Microsoft offrent aujourd’hui leurs solutions sous forme de SaaS (Software-as-a-Service) à travers la Marketplace Azure. Ces solutions SaaS sont souvent accessibles que depuis Internet. Certains clients Azure souhaitent utiliser ces SaaS au sein de leurs réseaux privés comme s’elles étaient déployées au sein de leurs Datacenters. La possibilité de consommer les solutions SaaS à titre privé au sein du réseau du client est une demande courante. Avec Azure Private Link, la connectivité privée est aussi étendue aux partenaires Microsoft. Quand APL sera en GA, vous allez surement constater la disponibilité de plusieurs offres/solutions SaaS du Marketplace via un Azure Private Link : nous allons donc parler plutôt de Private SaaS.
  • Si vous voulez  établir une connexion privée avec vos services Azure (autres que PaaS et SaaS) : Le scope d’Azure Private Link ne se limite pas aux services/offres PaaS et SaaS d’Azure, vous pouvez en effet étendre APL aux autres Workloads comme par exemple des VMs Azure (faisant office de Web Server) ou des Azure WebApps placés derrière un Équilibreur de charge (Load Balancer) Standard. Le diagram suivant illustre une architecture avec et sans APL :

 

Before and after diagram, showing services traditionally exposed through public IPs vs exposed privately in the VNet through Private Link

 

Comme montré dans le schéma ci-dessus, avec Azure Private Link, vous pouvez déployer et placer des ressources Azure derrière un Load Balancer Standard, et configurer ce dernier pour permettre à vos utilisateurs faisant parti d’autres tenant AAD (ou abonnements) de donc depuis d’autres VNET d’atteindre sans avoir besoin d’exposer vos ressources sur Internet.

La création d’un Azure Private Link Service est nécessaire.

 

Composants d’Azure Private Link

Il faut bien noter qu’Azure Private Link fonctionne de la manière suivante :

  • Les Azure Private Endpoints sont utilisés pour rendre la communication privée avec les services PaaS/SaaS
  • Les Azure Private Link Services sont utilisés pour faire référence à vos ressources (VMs) placées derrière un Load Balancer Standard.

 

Services Azure pris en charge par Azure Private Link
Services Azure PaaS pris en charge 

Encore en Public Preview au moment de la rédaction de ce post, Azure Private Link prend uniquement en charge les services PaaS suivants :

  • Azure Storage
  • Azure SQL Database
  • Azure SQL Data Warehouse
  • Azure Data Lake Storage (Gen2)

 

Autres Services Azure pris en charge 
  • Services Azure placés derrière un Load Balancer Standard

 

Régions prenant en charge Azure Private Link

La Public Preview d’Azure Private Link prend uniquement en charge les régions Azure suivantes :

Type de service (Scénario) Services pris en charge Régions disponibles
Private Link pour vos services Azure Services derrière un Load Balancer Standard
  • West Central US
  • WestUS
  • South Central US
  • East US
  • North US
Private Link pour les services Azure PaaS Azure Storage
  • East US
  • West US
  • West Central US
Azure SQL Database
  • East US
  • West US
  • West Central US
Azure SQL Data Warehouse
  • West Central US
  • WestUS
  • South Central US
  • East US
  • North US
Azure Data Lake Storage Gen2
  • West Central US
  • WestUS
  • South Central US
  • East US
  • North US

Note importante : si des règles de sécurité/Compliance vous obligent à déployer des services Azure uniquement en France (Central /Sud) ou en Europe (Nord & Ouest), vous ne pouvez malheureusement activer/configurer/tester Azure Private Link. Eg : une Azure Policy qui force le déploiement des services Azure dans les Régions France et Europe uniquement vous empêchera de déployer APL. Voir avec les Cloud SecAdmin pour faire une exclusion sur un RG de test ou réaliser vos tests sur un Abonnement dédié au Sandbox/Dev/Test.

 

Limitations

Au moment de la rédaction du présent article, Azure Private Link (encore en Public Preview) présente les limitations suivantes :

Ressource/Object Limitation
Nombre de « Private Endpoints » par VNET 1000
Nombre de « Private Endpoints » par Abonnement 64000
Nombre de Service « Private Link » par Abonnement 32
Nombre de Configurations IP pour un Service « Private Link » 8 (Adresses IP NAT IP utilisées par PLS)
Nombre de « Private Endpoints » pour le même Service « Private Link » 1000

 

Pricing

Au moment de la rédaction de ce post, Azure Private Link est facturé de la manière suivante :

Service Liaison privée Le service Liaison privée n’est pas facturé
Point de terminaison privé 0,005 € par heure
Données entrantes (IN) traitées 0,005 € par Go
Données sortantes (OUT) traitées 0,005 € par Go

Notez que pendant toute la période « Public Preview » du service Azure Private Link, vous bénéficiez d’une remise de 50% sur les tarifs indiqués dans le tableau ci-dessus.

 

HowTo : créer un service Azure Private Link

Pour pouvoir créer un Private Link Azure, vous devez d’abord créer un Private endpoint. Azure Private Link s’appuie en effet sur le Private endpoint pour établir les différents canaux privés entre le VNET et les services Azure cibles (PaaS, SaaS, Ressources propriétaires).

Nous allons découvrir durant cette partie comment activer et configurer Azure Private Link.

Dans l’exemple suivant, le but est de sécuriser la communication entre une DB Azure SQL (PaaS) et une VM Azure (IaaS) depuis le réseau privé (VNET) Azure.

Notre service cible (DB Azure SQL) sera accessible de manière privée via son @IP privée/locale et ne sera donc plus visible depuis Internet.

Prérequis

Si vous ne disposez pas encore de compte Azure, vous pouvez en créer un gratuitement en cliquant ici.

 

Sandbox : Informations de configuration

Voici la configuration de notre LAB Azure :

  • 1 VNET :
    • Espace Adressage 10.10.0.0/16
    • Subnet 10.10.0.0/24
  • 1 VM Azure :
    • WS Server 2016 (Datacenter Edition)
    • Avec SSMS (SQL Server Management Studio) installé
    • IP : 10.10.0.4
  • [PaaS] Azure SQL Database :
    • Nom SQL Server : hklabdbserver.database.windows.net
    • Nom Database SQL : hklabdatabase
    • Zone DNS Privée Azure
      • Nom de la zone : hklabprivatelink.windows.database.net
      • Record A pour la base PaaS :
        • Hostname : hklabdbserver.hklabprivatelink.windows.database.net
        • IP Address (privée) : 10.10.0.5

 

Outils de déploiement

L’activation et configuration d’Azure Private Link peuvent être réalisées via différents tools (Azure Portal, Az PowerShell Module, Az CLI…).

Pour notre LAB, Azure CLI sera utilisé car c’est mon tool préféré (:D) mais aussi parce que je trouve que l’interaction avec Azure est 2 à 3 fois plus rapide par rapport à WS PS.

 

HowTo : créer un service Azure Private Link

Pour pouvoir créer et tester Azure Private Link, nous allons d’abord déployer notre infra de test, comprenant :

  • 1 VNET + 1 Subnet
  • 1 VM
  • 1 SQL Server-as-a-Service
  • 1 Database SQL Azure
  • 1 Zone DNS Privée Azure + 1 Record pour notre Azure DB Server
  • Le tout placé dans un Resource Group 

 

Pour ce faire, connectez-vous sur le Cloud Shell Azure et exécutez les commandes suivantes :

  • Note : vous pouvez changer les noms des objets et renseigner ceux qui vous conviennent le plus (eg : respecter une convention de nommage d’un env LAB Azure de votre société ou client).

 

#1 : Création du Ressource Groupe

Exécutez la commande suivante pour créer un groupe de ressource nommé « hk-lab-rg » au niveau de la région France Central :

#2 : Création du VNET et Subnet

Exécutez les commandes suivantes pour créer un nouveau VNET nommé « hk-lab-vnet » avec un subnet de /24 nommé « hk-lab-subnet » :

#3 : Création de la VM

Exécutez les commandes suivantes pour créer une nouvelle VM WS2019Datacenter nommé « hk-lab-vm« :

 

#4 : Création d’un nouveau Server Azure SQL (hklabdbserver) et une base de données de test (hklabdatabase)

Exécutez les commandes suivantes pour créer une nouveau Server Azure SQL :

az sql server create \
–name « hklabdbserver » \
–resource-group « hk-lab-rg » \
–location francecentral \
–admin-user « hksqladmin » \
–admin-password P@$$w0rd_2019!

Exécutez ensuite les commandes suivantes pour créer une nouvelle DB Azure SQL :

az sql db create \
–resource-group hk-lab-rg \
–server hklabdbserver \
–name hklabdatabase \
–edition GeneralPurpose \
–family Gen5 \
–capacity 1

 

#5  : Mettez à jour les stratégies Réseaux au niveau du Subnet « hk-lab-subnet »

Les stratégies réseaux et règles de filtrage (eg : règles NSG) ne prennent pas en charge les Private endpoints.

Le sous-réseau auquel nous allons associer les Ressources Private Link (via les Private endpoints) doit être configuré/mis à jour pour exclure les Privates Endpoints de toute règle réseau/filtrage définie.

Pour désactiver ces stratégies réseaux du subnet sur lequel vous allez créer et associer des Private endpoints, il suffit d’exécuter les commandes suivantes :

az network vnet subnet update \
–name hk-lab-subnet \
–resource-group hk-lab-rg \
–vnet-name hk-lab-vnet \
–disable-private-endpoint-network-policies true

 

Note importante : si vous créez votre Private endpoint via le Portail Azure (GUI mode), cette mise à jour des network policies est faite de manière automatique par l’assistant. Elle doit être réalisée à la main seulement quand vous déployer des private Endpoints via Windows PowerShell (Az Module) ou Azure CLI.

 

#6 : Création du Private Endpoint

Maintenant que les ressources requises pour notre LAB ont été créées et les stratégies réseaux ont été désactivées, nous allons créer et configurer Azure Private Link.

Pour ce faire, vous devez simplement créer un Private Endpoint car APL s’appuie en effet ce dernier pour faire communiquer des ressources comme les VMs Azure avec les ressources Private Link (de type Base PaaS Azure SQL ou Compte de stockage Azure).

Commencez donc par créer un Private endpoint en exécutant la commande Az CLI suivante

az network private-endpoint create \
–name hktestprivateendpoint \
–resource-group hk-lab-rg \
–vnet-name hk-lab-vnet \
–subnet hk-lab-subnet \
–private-connection-resource-id « /subscriptions/id/resourceGroups/hk-lab-rg/providers/Microsoft.Sql/servers/hklabdbserver »/ \
–group-ids hklabdbserver \
–connection-name hklabprivateendpointconnection

 

Tip : vous devez avoir l’ID de votre Az SQL Server (paramètre –private-connection-resource-id), pour l’obtenir, vous pouvez exécuter la commande suivante :

az sql server show -n hklabdbserver -g hk-lab-rg

 

#7 : Création de la Zone DNS privé Azure ainsi que le record pour la PaaS SQL Azure

Pour créer la zone DNS privée « hklabprivatelink.database.windows.net« , exécutez la commande suivante :

az network private-dns zone create –resource-group hk-lab-rg \
–name « hklabprivatelink.database.windows.net »

Créez ensuite le lien DNS privé, en exécutant la commande suivante :

az network private-dns link vnet create –resource-group hk-lab-rg \
–zone-name « hklabprivatelink.database.windows.net »\
–name hklabdnslink \
–virtual-network hk-lab-vnet \
–registration-enabled false

Nous allons maintenant déclarer/ajouter un record (A) et l’associer à notre serveur SQL Azure (hklabdbserver <> IP locale/privée : 10.10.0.5 car le 10.10.0.4 est attribuée à notre VM WS2016) en exécutant les deux commandes suivantes :

az network private-dns record-set a create –name hklabdbserver –zone-name hklabprivatelink.database.windows.net –resource-group hk-lab-rg

az network private-dns record-set a add-record –record-set-name hklabdbserver –zone-name hklabprivatelink.database.windows.net –resource-group hk-lab-rg -a 10.10.0.5

Et voilà le tour est joué :).

HowTo : Créer /Configurer Azure Private Link via PowerShell & Azure Portal

Pour créer et configurer Azure Private Link via PowerShell (Az Moduel), consultez cet article.

Pour créer et configurer Azure Private Link via le Portail Azure, consultez cet article.

 

Tester l’accès à votre service PaaS (SQL Server Azure) via son @IP locale

Nous allons maintenant tester la connectivité (privée) entre notre VM Azure (10.10.0.4) et notre Azure SQL Server (10.10.0.5), pour ce faire :

  • Connectez-vous via RDP sur la VM Azure (Click Connect pour récupérer le RDP File). Si vous n’avez pas attachée une Public IP à votre VM, vous pouvez toujours vous connecter en RDP via le service Azure Bastion. Pensez à utiliser l’URL « Preview » pour avoir l’option « Bastion : RDP|SSH » sur votre VM.
  • Une fois la session Windows ouverte, lancez l’invite de commande (CMD.exe) et faites un test nslookup avec le DNS name du serveur SQL Azure en exécutant la commande suivante : nslookup hklabdbserver.hklabprivatelink.database.windows.net
  • Comme montré dans la capture d’écran suivante, L’@IP retournée est 10.10.0.5 (IP locale)

  • Nous allons maintenant tester la communication via le port 1433 (SQL) sur l’@IP 10.10.0.5. Pour ce faire, lancez Windows PowerShell (en tant qu’Admin) et saisissez la commande suivante : Test-NetConnection -ComputerName 10.10.0.5 -Port 1433, le résultat retourné doit indiquer ‘True’, c’est qui veut dire que la communication entre votre VM et le service PaaS Azure SQL sur le port 1433 est OK via l’@IP locale (10.10.0.5)

  • Enfin, installez SQL Server Management Studio sur la VM Azure (10.10.0.4) et connectez-vous sur le serveur Azure SQL (hklabdbserver <> 10.10.0.5) à l’aide des credentials Admin SQL renseignés lors de la création du service Azure SQL

  • Comme montré dans la screenshot ci-dessous, la connexion sur le serveur Azure SQL a été réalisée avec succès, nous sommes bien connectés sur notre instance hklabdbserver via l’IP locale 10.10.0.5 :

 

S(ervice) L(evel) A(greement)

Une fois en GA (General Availability), Microsoft annonce une disponibilité trois 9 (99,9) du service Azure Private Link.

Source : https://azure.microsoft.com/fr-fr/pricing/details/private-link/

 

Azure Private Link : La Roadmap ?

L’équipe Azure Networking Corp annonce plusieurs New Features dans la Roadmap Azure Private Link, à savoir :

  • Disponibilité d’Azure Private Link dans de nouvelles Régions : Les régions France Central/Sud et Europe Nord/Ouest seront donc bientôt prises en charge (selon le PM Azure Networking)
  • Pris en charge de plusieurs nouveaux services PaaS : Azure Cosmos DB | Azure MySQL | Azure PostgreSQL | Azure MariaDB | Azure Application Service | Azure Key Vaul
  • Pris en charge de Nouveaux Services Partner (Service Tiers du Marketplace)

Quand il sera en GA, Azure Private Link prendra en charge une liste de services nettement plus importante.

Stay connected on : https://azure.microsoft.com/fr-fr/updates/?product=virtual-network

 

Lien Utile /Documenttion « Azure Private Link » 

La documentation officielle sur Azure Private Link est disponible depuis l’URL ci-dessous :

https://docs.microsoft.com/en-us/azure/private-link/

 

That’s All :).

A bientôt, #HK

MVP

J’ai l’immense honneur de vous annoncer le renouvellement de mon titre Microsoft « Most Valuable Professional » pour l’année 2019/2020.

Je fais désormais partie des 21 MVP Français dans la catégorie « Microsoft Azure ».

WTF

Un « Big Thanks » à Microsoft, Martine THIPHAINE ainsi qu’à toute l’équipe MS pour le temps consacré à l’étude du renouvellement de mon titre.

Très honoré de faire partie de la « Biggest IT Community in the World » :).

What Next ?

Plusieurs contributions à venir, à commencer par :

Plusieurs séries d’articles autour de Microsoft Azure {Azure Security – Azure Design – Az CLI 2.0 – Az PowerShell – Azure Virtual Machine – Windows Virtual Desktop – Azure Batch – Azure Automation – Azure Monitor – Azure Networking – Azure Active Directory – ASR/Migration de Datacenter vers MS Azure – Azure KeyVault – Azure Backup, Azure Watcher – Azure AD – Azure SQL…)

Plusieurs séries d’articles autour de technologies Microsoft orientées « Infra & Virtu » : RDS {2016/2019 : Design, Deployment, Security, Tuning & Migration} – Windows Server 2019 {HowTo : OS Hardening, IIS, Bitlocker /AppLocker, Security, Group Policy Objects, DFS/R, BranchCach, ADFS …} – VBS /BATCH /PS Scripting (avec des advanced scenarios)

Plusieurs eBooks sur différentes technos Microsoft orientés Infrastructure & Cloud

Plusieurs scripts (.Bat /PS) de déploiement /automation sur différentes technos Microsoft orientées Infrastructure.

 

Mes projets d’écritures en cours :

Concevoir et déployer son infrastructure RDS 2019 sur Azure (Full RDS Cloud Platform)

RDS 2019 – Guide de Sécurisation & Hardening (3ème Edition)

Azure Security Center – Guide du Consultant Sécurité

Azure WVD (Windows Virtual Desktop) : Guide du Consultant

Azure VM – Guide de Sécurisation & Hardening

Azure Backup – Concevoir et implémenter sa politique de Sauvegarde dans le Cloud

Azure KeyVault – Concevoir et implémenter sa solution de Key/Secret Management dans le Cloud

Azure Active Directory – Etendre son annuaire AD local vers le Cloud

…Eh bien plus encore

 

J’en profite de ce post pour remercier tous les followers (LinkedIn, Twitter, Blog …) ainsi que les personnes qui votent et partagent mes articles & actus.

A bientôt pour de nouvelles aventures.

Keep in touch :).

Hicham KADIRI