Usar marcas de serviço com o Power BI
Você pode usar marcas de serviço do Azure com o Power BI para habilitar uma Instância Gerenciada SQL (MI) do Azure para permitir conexões de entrada do serviço do Power BI. No Azure, uma marca de serviço é um grupo definido de endereços IP que você pode configurar para ser gerenciado automaticamente, como um grupo, para minimizar a complexidade de atualizações ou alterações nas regras de segurança de rede. Ao utilizar as etiquetas de serviço com o Power BI, pode ativar uma instância do SQL Managed Instance para permitir ligações de entrada do serviço Power BI.
As seguintes configurações são necessárias para habilitar com êxito os pontos de extremidade para uso no serviço do Power BI:
- Habilite um ponto de extremidade público na Instância Gerenciada SQL.
- Crie uma regra de Grupo de Segurança de Rede para permitir o tráfego de entrada.
- Insira as credenciais no Power BI.
As seções a seguir examinam cada uma dessas etapas por vez.
Habilitar um ponto de extremidade público
A primeira parte do processo é habilitar um ponto de extremidade público na Instância Gerenciada SQL. Siga estes passos:
Entre no portal do Azure e navegue até sua Instância Gerenciada do SQL.
No lado esquerdo da página, selecione Rede.
Deslize o ponto de extremidade público (dados) para Ativar e, em seguida, defina a versão mínima do TLS como 1.2. A imagem a seguir mostra a tela no portal do Azure.
Selecione Guardar para guardar as definições.
Criar uma regra de grupo de segurança de rede
A próxima coleção de etapas requer que você crie uma regra NSG (Grupo de Segurança de Rede) para permitir o tráfego de entrada para o serviço do Power BI. Essa ação pode ser concluída no portal do Azure aproveitando a "marca de serviço de origem" do Power BI ou usando a interface de linha de comando (CLI) ou o PowerShell.
Nota
A prioridade da regra definida deve ser maior do que a regra de deny_all_inbound 4096, o que significa que o valor de prioridade deve ser menor que 4096. No exemplo a seguir, um valor de prioridade de 400 é usado.
O script CLI a seguir é fornecido como um exemplo de referência. Para obter mais informações, consulte az network nsg rule. Talvez seja necessário alterar vários valores para que o exemplo funcione corretamente em sua situação. Um script do PowerShell é fornecido posteriormente.
#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
O script PowerShell a seguir é fornecido como outra referência para criar a regra NSG. Para obter mais informações, consulte Adicionar uma regra de grupo de segurança de rede no PowerShell. Talvez seja necessário alterar vários valores para que o exemplo funcione corretamente em sua situação.
#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
Insira as credenciais no Power BI
A última parte do processo é inserir as credenciais no serviço do Power BI.
Entre no serviço do Power BI e navegue até o espaço de trabalho que contém o(s) conjunto(s) de dados que estão usando a Instância Gerenciada do SQL. No exemplo a seguir, esse espaço de trabalho é chamado ASAdataset e o conjunto de dados é chamado Contoso SQL MI Demo.
Selecione Configurações no canto superior direito e escolha Configurações no menu suspenso.
Em Conjuntos de dados, expanda a seção Credenciais da fonte de dados.
Selecione o link Editar credenciais . Na caixa de diálogo exibida, insira credenciais válidas.
Salve suas configurações e saia. Sua Instância Gerenciada SQL agora está configurada para permitir conexões de entrada do serviço do Power BI.