Compartilhar via


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.

Ponto de extremidade configurável na página Conectores predefinidos.

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.

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.

Especifique uma lista ordenada de Permitir e Negar padrões de URL para conectores personalizados.

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.

Selecione Adicionar ponto de extremidade para adicionar novas regras.

Depois que um padrão foi adicionado, você poderá editar ou excluir esses padrões selecionando uma linha específica e, depois, Excluir.

Exclua um padrão.

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.

Erro de DLP devido a regras de filtragem de ponto de extremidade.

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.

    O fluxo da nuvem usa variáveis para se conectar ao SQL.O fluxo da nuvem é 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
  • 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 usando localhost 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:

    1. Permitir *.database.windows.net*
    2. Negar *
  • 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>.)

    1. Permitir 11.22.33*
    2. Negar *

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:

  1. Permitir 7b97cd5c-ce38-4930-9497-eec2a95bf5f7
  2. Negar *

Na verdade significa:

  1. Permitir Dataverse current environment
  2. Permitir 7b97cd5c-ce38-4930-9497-eec2a95bf5f7
  3. 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:

  1. Negar smtp.gmail.com,587
  2. 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/.

  1. Permitir https://management.azure.com/subscriptions*
  2. Negar https://management.azure.com/*
  3. 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 e https://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