Déployer une passerelle de données VNet Azure pour Power BI avec Terraform

Ayant eu de multiples expĂ©riences dans le monde du conseil, j'ai pu acquĂ©rir une expertise dans la conception et la construction de services de collaboration d'entreprise. Je suis passionnĂ© par les technologies Microsoft et surtout Azure. Aujourd'hui je possĂšde une solide expĂ©rience en mĂ©thodologie de dĂ©veloppement et j'ai menĂ© des Ă©quipes de dĂ©veloppement technique au succĂšs. Je possĂšde Ă©galement une solide connaissance de l'infrastructure qui fait de moi une ressource efficace pour mettre en Ćuvre la transformation numĂ©rique vers le cloud Microsoft. Je suis un professionnel efficace et honnĂȘte qui aime relever les challenges. Aimant partager mes connaissances; je suis Ă l'aise en tant que Technical Leader et en tant que membre d'une Ă©quipe. Mes compĂ©tences techniques sont les suivantes: Azure, DevOps, Architecture Applicative, DĂ©veloppement de solution Cloud Native, Ă©cosystĂšme Microsoft... et bien d'autres. Pour voir mes certifications Microsoft : https://www.youracclaim.com/users/antoine-loizeau
L'accÚs sécurisé aux données est un enjeu majeur pour les entreprises utilisant Power BI. Lorsque vos sources de données (comme une base Azure SQL, un compte de stockage ou un data lake) sont isolées derriÚre des réseaux virtuels (VNet) et des points de terminaison privés (Private Endpoints), Power BI (en tant que service SaaS public) ne peut plus y accéder par défaut.
Pour pallier ce problÚme, Microsoft propose la Passerelle de données de réseau virtuel (VNet Data Gateway). Cet article vous explique son fonctionnement et vous guide pas-à -pas pour déployer l'infrastructure requise à l'aide de Terraform.
1. Comprendre l'architecture et les prérequis
La passerelle VNet agit comme un pont sécurisé, injecté directement par Microsoft dans l'un de vos sous-réseaux (Subnet). Contrairement à la passerelle de données locale (On-Premises Data Gateway), elle est entiÚrement managée par Microsoft (PaaS) et ne nécessite le déploiement d'aucune machine virtuelle (IaaS) de votre part.
Comment ça marche ?
Délégation de sous-réseau : Vous créez un sous-réseau dans votre VNet Azure et vous le déléguez au fournisseur
Microsoft.PowerPlatform/vnetaccesslinks.Injection : Lors des requĂȘtes, le service Power Platform dĂ©ploie des conteneurs managĂ©s dans ce sous-rĂ©seau.
AccĂšs : Ces conteneurs acheminent les requĂȘtes Power BI vers vos sources de donnĂ©es privĂ©es en empruntant le VNet (ou via un Private Endpoint).
Prérequis
Un abonnement Azure avec les droits pour enregistrer des fournisseurs de ressources (Resource Providers) et créer des réseaux.
Une licence Power BI Premium (capacité P ou équivalent Fabric F SKU) ou Premium par utilisateur (PPU).
La source de donnĂ©es (ex: Azure SQL) doit ĂȘtre accessible depuis le sous-rĂ©seau dĂ©lĂ©guĂ©.
2. Code Terraform
Pour automatiser la mise en place de l'infrastructure réseau sur Azure, voici le contenu de mon projet Terraform.
Structure IaC
vnet-gateway-powerbi-terraform/
âââ providers.tf
âââ variables.tf
âââ main.tf
âââ outputs.tf
đ providers.tf
Ce fichier configure le fournisseur Azure (azurerm) pour Terraform.
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "~> 4.0"
}
}
}
provider "azurerm" {
features {}
}
đ variables.tf
Définition des variables pour rendre notre code dynamique et réutilisable.
variable "resource_group_name" {
type = string
description = "Nom du groupe de ressources"
default = "rg-powerbi-gateway-prod"
}
variable "location" {
type = string
description = "Région Azure pour le déploiement"
default = "westeurope"
}
variable "vnet_name" {
type = string
description = "Nom du réseau virtuel (VNet)"
default = "vnet-data-prod"
}
đ main.tf
C'est le cĆur de notre dĂ©ploiement. Il contient l'enregistrement du fournisseur de ressource PowerPlatform (obligatoire pour que l'intĂ©gration VNet fonctionne), le VNet et le sous-rĂ©seau spĂ©cifiquement dĂ©lĂ©guĂ©.
# 1. Création du groupe de ressources
resource "azurerm_resource_group" "rg" {
name = var.resource_group_name
location = var.location
}
# 2. Enregistrement du fournisseur de ressources Microsoft.PowerPlatform au niveau de la souscription
resource "azurerm_resource_provider_registration" "powerplatform" {
name = "Microsoft.PowerPlatform"
}
# 3. Création du réseau virtuel (VNet)
resource "azurerm_virtual_network" "vnet" {
name = var.vnet_name
address_space = ["10.0.0.0/16"]
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name
}
# 4. Création du sous-réseau dédié à la passerelle Power BI
resource "azurerm_subnet" "gateway_subnet" {
name = "snet-powerbi-gateway"
resource_group_name = azurerm_resource_group.rg.name
virtual_network_name = azurerm_virtual_network.vnet.name
address_prefixes = ["10.0.1.0/24"]
# C'est ici que la magie opÚre : la délégation du sous-réseau
delegation {
name = "powerplatform-delegation"
service_delegation {
name = "Microsoft.PowerPlatform/vnetaccesslinks"
actions = [
"Microsoft.Network/virtualNetworks/subnets/join/action",
]
}
}
# On s'assure que le provider est bien enregistré avant de déléguer le sous-réseau
depends_on = [
azurerm_resource_provider_registration.powerplatform
]
}
đ outputs.tf
Permet de récupérer l'ID du sous-réseau, qui sera utile si vous souhaitez y associer des rÚgles de routage spécifiques plus tard.
output "gateway_subnet_id" {
value = azurerm_subnet.gateway_subnet.id
description = "L'ID du sous-réseau délégué à Power Platform."
}
output "vnet_id" {
value = azurerm_virtual_network.vnet.id
}
3. Configuration finale dans l'interface Power BI
Une fois votre terraform apply exĂ©cutĂ© avec succĂšs, l'infrastructure rĂ©seau est prĂȘte sur Azure. La derniĂšre Ă©tape consiste Ă relier cette infrastructure Ă votre environnement Power BI (actuellement, la crĂ©ation de l'objet de passerelle VNet lui-mĂȘme se fait dans le portail Power BI, car elle appartient au locataire Power Platform plutĂŽt qu'Ă l'API Azure Resource Manager).
Allez sur app.powerbi.com ou le Centre d'administration Power Platform.
Dans Power BI, allez dans ParamÚtres (l'icÎne engrenage) > Gérer les connexions et les passerelles.
Cliquez sur l'onglet Passerelles de données de réseau virtuel (VNet) et sélectionnez Nouveau.
Remplissez les champs :
Choisissez votre abonnement Azure.
Sélectionnez le groupe de ressources (
rg-powerbi-gateway-prod).Sélectionnez le VNet (
vnet-data-prod) et le sous-réseau (snet-powerbi-gateway). (Note : Seuls les sous-réseaux délégués correctement via notre code Terraform apparaitront ici).
Enregistrez.
Votre passerelle est désormais active ! Lorsque vous créerez une nouvelle source de données (par exemple un connecteur Azure SQL DB) dans Power BI, vous pourrez sélectionner cette passerelle. Le trafic passera directement du service Power BI vers votre réseau privé, sans jamais s'exposer sur Internet de façon publique.







