Filtragem de ponto de extremidade de conector (versão preliminar)
[Este artigo faz parte da documentação de pré-lançamento e está sujeito a alterações.]
A filtragem de ponto de extremidade de conector permite que os administradores governem a quais criadores de pontos de extremidade específicos podem se conectar ao criar aplicativos, fluxos ou chatbots. Ele é configurado dentro de uma política de prevenção contra perdas de dados (DLP) e está disponível exclusivamente para seis conectores:
- HTTP
- HTTP com Microsoft Entra ID (AD)
- HTTP Webhook
- SQL Server (inclui o uso do Conector do SQL Server para acessar o data warehouse do Azure Synapse)
- Armazenamento de Blobs do Azure
- SMTP
Quando um criador tenta conectar seu aplicativo, fluxo ou chatbot a um ponto de extremidade bloqueado, ele encontra uma mensagem de erro de DLP.
Aviso
As regras da filtragem de ponto de extremidade não são aplicadas em variáveis de ambiente, entradas personalizadas ou qualquer pontos de extremidade que seja criado dinamicamente durante o runtime. Somente pontos de extremidade estáticos são avaliados nos designers de aplicativo, de fluxo ou de chatbot. Para obter mais informações, consulte Limitações conhecidas.
Importante
Os recursos em versão preliminar não foram criados para uso em ambientes de produção e podem ter funcionalidade restrita. Esses recursos são disponibilizados antes de um lançamento oficial para que os clientes possam ter acesso antecipado e forneçam comentários.
Adicionar regras de filtragem de ponto de extremidade às suas políticas DLP
A coluna Ponto de extremidade configurável na página Conectores predefinidos em Políticas de Dados indica se o recurso de filtragem de ponto de extremidade é compatível com o conector.
Se o valor da coluna Ponto de extremidade configurável for Sim, você poderá usar esse recurso clicando com o botão direito e selecionando Configurar conector>Pontos de extremidade do conector.
Isso abre um painel lateral onde você pode especificar uma lista ordenada de padrões de URL Permitir ou Negar. A última linha na lista será sempre uma regra para o caractere curinga (*
), que se aplica a todos os pontos de extremidade nesse conector. Por padrão, o *
padrão é configurado como Permitir para novas políticas DLP, mas você pode marcar isso como Permitir ou Negar.
Adicionar novas regras
Você pode adicionar novas regras selecionando Adicionar ponto de extremidade. Novas regras são adicionadas ao final da lista de padrões como a penúltima regra. Isso ocorre porque *
será sempre a última entrada na lista. No entanto, você pode atualizar a ordem dos padrões usando a lista suspensa Ordem ou selecionando Mover para cima ou Mover para baixo.
Depois que um padrão foi adicionado, você poderá editar ou excluir esses padrões selecionando uma linha específica e, depois, Excluir.
Depois de salvar as regras de filtragem de ponto de extremidade do conector e a política DLP na qual são definidas, elas serão aplicadas instantaneamente nos ambientes de destino. Veja abaixo um exemplo em que um criador tentou conectar seu fluxo da nuvem a um ponto de extremidade HTTP que não é permitido.
Limitações conhecidas
As regras da filtragem de ponto de extremidade não são aplicadas em variáveis de ambiente, entradas personalizadas e pontos de extremidade limitados dinamicamente durante o runtime. Apenas pontos de extremidade estáticos conhecidos e selecionados ao criar um aplicativo, fluxo ou chatbot durante o tempo de design são impostos. Isso implica que as regras de filtragem de ponto de extremidade do conector para SQL Server e Armazenamento de Blobs do Azure não serão impostas, caso as conexões sejam autenticadas com o Microsoft Entra ID. Nas duas capturas de tela abaixo, um criador criou um fluxo da nuvem que define o SQL Server e o banco de dados dentro das variáveis e, em seguida, usa essas variáveis como entrada para a definição da conexão. Portanto, as regras de filtragem de ponto de extremidade não são avaliadas e o fluxo da nuvem pode ser executado com êxito.
Alguns Power Apps publicados antes de 1º de outubro de 2020 devem ser republicados para que as regras de ação do conector DLP e as regras de ponto de extremidade sejam aplicadas. O script a seguir permite que administradores e criadores identifiquem aplicativos que devem ser republicados para respeitar estas novas regras de controle granular de DLP:
Add-PowerAppsAccount $GranularDLPDate = Get-Date -Date "2020-10-01 00:00:00Z" ForEach ($app in Get-AdminPowerApp){ $versionAsDate = [datetime]::Parse($app.LastModifiedTime) $olderApp = $versionAsDate -lt $GranularDLPDate $wasBackfilled = $app.Internal.properties.executionRestrictions -ne $null -and $app.Internal.properties.executionRestrictions.dataLossPreventionEvaluationResult -ne $null -and ![string]::IsNullOrEmpty($app.Internal.properties.executionRestrictions.dataLossPreventionEvaluationResult.lastAdvancedBackfillDate) If($($olderApp -and !$wasBackfilled)){ Write-Host "App must be republished to be Granular DLP compliant: " $app.AppName " " $app.Internal.properties.displayName " " $app.Internal.properties.owner.email } Else{ Write-Host "App is already Granular DLP compliant: " $app.AppName } }
Formatos e exemplos de entrada de ponto de extremidade
Cada conector tem uma noção diferente do que significa um ponto de extremidade. Além disso, alguns pontos de extremidade podem ser definidos em vários formatos. Portanto, os pontos de extremidade devem ser inseridos em todos os formatos possíveis para impedir sua utilização por fabricantes durante a criação de aplicativos e fluxos. Os administradores podem inserir o nome completo do ponto de extremidade ou usar a correspondência de padrões com o caractere curinga (*
) ao criar uma regra de filtragem de ponto de extremidade. Essas regras são inseridas e apresentadas em uma lista ordenada de padrões de ponto de extremidade, o que significa que eles serão avaliados em ordem crescente por número. Observe que a última regra para qualquer conector é sempre Permitir *
ou Negar *
. Permitir é o padrão, que pode ser alterado para Negar.
A orientação a seguir descreve como inserir pontos de extremidade do conector ao criar regras para permiti-los ou negá-los.
SQL Server
Os pontos de extremidade de conexão do SQL Server devem ser listados no formato <Server_name, database_name>
. Algumas considerações:
O nome do servidor pode ser inserido em vários formatos pelos fabricantes. Portanto, para realmente endereçar um ponto de extremidade, ele deve ser inserido em todos os formatos possíveis. Por exemplo, instâncias locais podem estar no formato
<machine_name\named_instance, database_name>
ou<IP address, custom port, database_name>
. Nesse caso, será preciso aplicar regras de permissão ou bloqueio em ambos os formatos para um ponto de extremidade. Por exemplo:- Bloco
WS12875676\Servername1,MktingDB
- Bloco
11.22.33.444,1401,MktingDB
- Bloco
Não há lógica especial para lidar com endereços relativos, como
localhost
. Portanto, se você bloquear*localhost*
, isso impedirá que os fabricantes usem qualquer ponto de extremidade usandolocalhost
como parte do ponto de extremidade do SQL Server. Mas, isso não os impedirá de acessar o ponto de extremidade usando o endereço absoluto, a menos que o endereço absoluto também tenha sido bloqueado pelo administrador.
Veja os exemplos a seguir:
Permitir apenas instâncias do Azure SQL Server:
- Permitir
*.database.windows.net*
- Negar
*
- Permitir
Permitir somente um intervalo de IP específico: (observe que os endereços de IP que não são permitidos ainda podem ser inseridos pelo criador no formato
<machine_name\named_instance>
.)- Permitir
11.22.33*
- Negar
*
- Permitir
Dataverse
Os pontos de extremidade do Dataverse são representados pela ID da organização, como, 7b97cd5c-ce38-4930-9497-eec2a95bf5f7. Observe que apenas o conector regular do Dataverse está no escopo, no momento, para filtragem de ponto de extremidade. A dinâmica do Dataverse e os conectores atuais do Dataverse não estão no escopo. Além disso, a instância local do Dataverse (também conhecido como ambiente atual) nunca pode ser bloqueada para uso em um ambiente. Isso significa que, em qualquer ambiente, os fabricantes sempre podem acessar o ambiente atual do Dataverse.
Portanto, uma regra indica o seguinte:
- Permitir
7b97cd5c-ce38-4930-9497-eec2a95bf5f7
- Negar
*
Na verdade significa:
- Permitir
Dataverse current environment
- Permitir
7b97cd5c-ce38-4930-9497-eec2a95bf5f7
- Negar
*
Permitir Dataverse current environment
é sempre implicitamente a primeira regra na lista de filtragem de ponto de extremidade do Dataverse para qualquer ambiente.
Armazenamento de Blobs do Azure
Os pontos de extremidade do Armazenamento de Blobs do Azure são representados pelo nome da conta de armazenamento do Azure.
SMTP
Pontos de extremidade do SMTP são representados no formato <SMTP server address, port number>
.
Este é um exemplo de cenário:
- Negar
smtp.gmail.com,587
- Permitir
*
HTTP com conectores do Microsoft Entra ID, HTTP Webhook e HTTP
Os pontos de extremidade para todos os conectores HTTP são representados por um padrão de URL. A ação Obter recurso da Web do HTTP com conector do Microsoft Entra está fora do escopo.
Este é um exemplo de cenário:
Permitir acesso apenas à página Assinaturas do Azure em https://management.azure.com/
.
- Permitir
https://management.azure.com/subscriptions*
- Negar
https://management.azure.com/*
- Negar
*
Suporte do PowerShell para filtragem de ponto de extremidade
Configurar regras de filtragem de ponto de extremidade para uma política
O objeto que contém regras de de filtragem de ponto de extremidade para uma política é referenciado a seguir como configurações do conector.
O objeto de configurações do conector tem a seguinte estrutura:
$ConnectorConfigurations = @{
connectorActionConfigurations = @() # used for connector action rules
endpointConfigurations = @( # array – one entry per
@{
connectorId # string
endpointRules = @( # array – one entry per rule
@{
order # number
endpoint # string
behavior # supported values: Allow/Deny
}
)
}
)
}
Notas
- A última regra para cada conector deve ser sempre aplicada à URL
*
, para garantir que todas as URLs sejam cobertas pelas regras. - A propriedade de ordem das regras para cada conector deve ser preenchida com números de 1 a N, em que N é o número de regras desse conector.
Recuperar configurações de conectores existentes para uma política DLP
Get-PowerAppDlpPolicyConnectorConfigurations
Criar configurações de conector para uma política DLP
New-PowerAppDlpPolicyConnectorConfigurations
Atualizar configurações do conector para uma política DLP
Set-PowerAppDlpPolicyConnectorConfigurations
Exemplo
Meta:
Para o conector do SQL Server:
- Negar banco de dados "testdatabase" do servidor "myservername.database.windows.net"
- Permitir todos os outros bancos de dados do servidor "myservername.database.windows.net"
- Negar todos os outros servidores
Para o conector SMTP:
- Permitir Gmail (endereço do servidor: smtp.gmail.com, porta: 587)
- Negar todos os outros endereços
Para o conector HTTP:
- Permitir pontos de extremidade
https://mywebsite.com/allowedPath1
ehttps://mywebsite.com/allowedPath2
- Negar todas as outras URLs
Nota
No cmdlet a seguir, PolicyName se refere ao GUID exclusivo. Você pode recuperar o GUID do DLP executando o cmdlet Get-DlpPolicy.
$ConnectorConfigurations = @{
endpointConfigurations = @(
@{
connectorId = "/providers/Microsoft.PowerApps/apis/shared_sql"
endpointRules = @(
@{
order = 1
endpoint = "myservername.database.windows.net,testdatabase"
behavior = "Deny"
},
@{
order = 2
endpoint = "myservername.database.windows.net,*"
behavior = "Allow"
},
@{
order = 3
endpoint = "*"
behavior = "Deny"
}
)
},
@{
connectorId = "/providers/Microsoft.PowerApps/apis/shared_smtp"
endpointRules = @(
@{
order = 1
endpoint = "smtp.gmail.com,587"
behavior = "Allow"
},
@{
order = 2
endpoint = "*"
behavior = "Deny"
}
)
},
@{
connectorId = "http"
endpointRules = @(
@{
order = 1
endpoint = "https://mywebsite.com/allowedPath1"
behavior = "Allow"
},
@{
order = 2
endpoint = "https://mywebsite.com/allowedPath2"
behavior = "Allow"
},
@{
order = 3
endpoint = "*"
behavior = "Deny"
}
)
}
)
}
New-PowerAppDlpPolicyConnectorConfigurations -TenantId $TenantId -PolicyName $PolicyName -NewDlpPolicyConnectorConfigurations $ConnectorConfigurations