Använda tjänsttaggar med Power BI

Du kan använda Azure-tjänsttaggar med Power BI för att aktivera en Azure SQL Managed Instance (MI) för att tillåta inkommande anslutningar från Power BI-tjänst. I Azure är en tjänsttagg en definierad grupp med IP-adresser som du kan konfigurera för att automatiskt hanteras, som en grupp, för att minimera komplexiteten för uppdateringar eller ändringar i nätverkssäkerhetsregler. Genom att använda tjänsttaggar med Power BI kan du aktivera en SQL Managed Instance så att inkommande anslutningar från Power BI-tjänsten tillåts.

Följande konfigurationer är nödvändiga för att aktivera slutpunkterna för användning i Power BI-tjänst:

  1. Aktivera en offentlig slutpunkt i SQL Managed Instance.
  2. Skapa en regel för nätverkssäkerhetsgrupp för att tillåta inkommande trafik.
  3. Ange autentiseringsuppgifterna i Power BI.

I följande avsnitt tittar vi i tur och ordning på vart och ett av dessa steg.

Aktivera en offentlig slutpunkt

Den första delen av processen är att aktivera en offentlig slutpunkt i SQL Managed Instance. Utför följande steg:

  1. Logga in på Azure-portalen och gå till din SQL Managed Instance.

  2. Välj Nätverk till vänster på sidan.

  3. Dra den offentliga slutpunkten (data) till Aktivera och ange sedan lägsta TLS-version till 1.2. Följande bild visar skärmen i Azure-portalen.

    Screenshot of Azure portal to enable public endpoints.

  4. Spara inställningarna genom att välja Spara.

Skapa en regel för nätverkssäkerhetsgruppen

Nästa samling steg kräver att du skapar en NSG-regel (Network Security Group) för att tillåta inkommande trafik för Power BI-tjänst. Den här åtgärden kan slutföras i Azure-portalen genom att använda "källtjänsttaggen" i Power BI eller med hjälp av antingen kommandoradsgränssnittet (CLI) eller PowerShell.

Kommentar

Prioriteten för regeln du anger måste vara högre än regeln 4096 deny_all_inbound , vilket innebär att prioritetsvärdet måste vara lägre än 4096. I följande exempel används ett prioritetsvärde på 400.

Följande CLI-skript tillhandahålls som ett referensexempel. Mer information finns i az network nsg rule . Du kan behöva ändra flera värden för att exemplet ska fungera korrekt i din situation. Ett PowerShell-skript tillhandahålls efteråt.

#login to azure
az login

#set subscription that contains SQL MI instance
$subname = "mysubscriptionname"
az account set --subscription $subname

#set NSG rule for inbound PowerBI traffic

#update $RG to your resource group name
$rg = 'myresourcegroup'
#update $nsg to your Network Security Group name
$nsg = 'nsgresourcename'
# Name the NSG rule
$rule = 'allow_inbound_PowerBI'
#set the priority - this must be higher priority (lower number) than the deny_all_inbound rule
$priority = 400
#specifiy the service tag to use
$servicetag = 'PowerBI'
#specify the public endpoint port defined in step 1
$port = 3342
#set the rule to inbound direction
$direction = 'Inbound'
#set the access type to "Allow"
$access = 'Allow'
#Set the protocol as TCP
$protocol = 'tcp'
#Provide a description for the rule
$desc = 'Allow PowerBI Access to SQL MI for Direct Query or Data Refresh.'
 
#create the NSG rule
az network nsg rule create -g $rg \
--nsg-name $nsg -n $rule --priority $priority \
--source-address-prefixes $servicetag --destination-address-prefixes '*' \
--destination-port-ranges $port --direction $direction --access $access \
--protocol $protocol --description $desc

Följande PowerShell-skript tillhandahålls som en annan referens för att skapa NSG-regeln. Mer information finns i Lägga till en regel för nätverkssäkerhetsgrupp i PowerShell. Du kan behöva ändra flera värden för att exemplet ska fungera korrekt i din situation.

#login to azure
Login-AzAccount

#get your subscription ID
Get-AzSubscription

####
#Script to create Network Security Group Rule
###

#enter your subscription ID
Set-AzContext -SubscriptionId "yoursubscriptionID" 

#Provide the resource group for your Network Security Group
$RGname="yourRG"
#Enter the port for the SQL Managed Instance Public Endpoint
$port=3342
#name the NSG rule
$rulename="allow_inbound_PowerBI"
#provide the name of the Network Security Group to add the rule to
$nsgname="yourNSG"
#set direction to inbound to allow PowerBI to access SQL MI
$direction ="Inbound"
#set the priority of the rule. Priority must be higher (ie. lower number) than the deny_all_inbound (4096)
$priority=400
#set the service tags for the source to \u201cPowerBI\u201d
$serviceTag = "PowerBI"

# Get the NSG resource
$nsg = Get-AzNetworkSecurityGroup -Name $nsgname -ResourceGroupName $RGname

# Add the inbound security rule.
$nsg | Add-AzNetworkSecurityRuleConfig -Name $rulename -Description "Allow app port" -Access Allow `
    -Protocol * -Direction $direction -Priority $priority -SourceAddressPrefix $serviceTag -SourcePortRange * `
    -DestinationAddressPrefix * -DestinationPortRange $port

# Update the NSG.
$nsg | Set-AzNetworkSecurityGroup 

Ange autentiseringsuppgifterna i Power BI

Den sista delen av processen är att ange autentiseringsuppgifterna i Power BI-tjänst.

  1. Logga in på Power BI-tjänst och navigera till arbetsytan som innehåller de datauppsättningar som använder SQL Managed Instance. I följande exempel kallas arbetsytan ASAdataset och datamängden kallas Contoso SQL MI Demo.

  2. Välj Inställningar i det övre högra hörnet och välj sedan Inställningar på den nedrullningsbara menyn.

    Screenshot of the settings dropdown menu.

  3. Under Datauppsättningar expanderar du avsnittet Autentiseringsuppgifter för datakälla.

    Screenshot of the edit credentials option in the Datasets tab.

  4. Välj länken Redigera autentiseringsuppgifter. I dialogrutan som visas anger du giltiga autentiseringsuppgifter.

Spara inställningarna och avsluta. Din SQL Managed Instance har nu konfigurerats för att tillåta inkommande anslutningar från Power BI-tjänst.