Partilhar via


Filtragem ponto final do conector (pré-visualização)

[Este artigo inclui documentação pré-versão e está sujeito a alterações.]

A filtragem de pontos finais do conector permite aos administradores gerir os pontos finais específicos aos quais os criadores se podem ligar ao criar aplicações, fluxos ou chatbots. Está configurado numa política de prevenção de perda de dados (DLP) e está disponível exclusivamente para seis conectores:

  • HTTP
  • HTTP com ID do Microsoft Entra (AD)
  • HTTP Webhook
  • O SQL Server (inclui a utilização do Conector do SQL Server para aceder ao armazém de dados do Azure Synapse)
  • Ícone do Armazenamento de Blobs do Azure
  • SMTP

Quando um criador tenta ligar a sua aplicação, o fluxo ou chatbot a uma ponto final bloqueado, encontrará uma mensagem de erro DLP.

Aviso

As regras de filtragem de pontos finais não são aplicadas em variáveis de ambiente, entradas personalizadas ou qualquer ponto final que seja criado de forma dinâmica em tempo de execução. Só os pontos finais estáticos são avaliados nos estruturadores de aplicações, fluxos ou chatbots. Para mais informações, consulte Limitações conhecidas.

Importante

As caraterísticas de pré-visualização não se destinam à produção e poderão ter caraterísticas restritas. Estas caraterísticas estão disponíveis antes do lançamento oficial, para que os clientes possam ter acesso antecipadamente e enviar comentários.

Adicionar regras de filtragem de pontos finais às suas políticas DLP

A coluna Ponto final configurável na página Conectores pré-criados em Políticas de Dados indica se a funcionalidade de filtragem de pontos finais é suportada para o conector.

Ponto final configurável na página Conectores Pré-criados.

Se o valor da coluna Ponto final configurável for Sim, poderá utilizar esta funcionalidade ao clicar com o botão direito do rato e selecionar Configurar conector>Pontos finais do conector.

Configurar conector > Pontos finais do conector.

É aberto um painel lateral onde poderá especificar uma lista ordenada dos padrões URL de permitir ou recusar. A última linha da lista será sempre uma regra para o carácter universal (*), que se aplica a todos os pontos finais nesse conector. Por predefinição, o padrão * é configurado como Permitir para as novas políticas DLP, mas pode sinalizar isto como Permitir ou Negar.

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

Adicionar novas regras

Pode adicionar novas regras ao selecionar Adicionar ponto final. São adicionadas novas regras ao final da lista de padrões como a regra do penúltimo. Isto porque * será sempre a última entrada na lista. No entanto, pode atualizar a ordem dos padrões através da lista pendente Ordenar ou selecionar Mover para cima ou Mover para baixo.

Selecione Adicionar ponto final para adicionar novas regras.

Depois de ter sido adicionado um padrão, poderá editar ou eliminar estes padrões ao selecionar uma linha específica e, em seguida, selecionar Eliminar.

Eliminar um padrão.

Depois de guardar as regras de filtragem de pontos finais do conector e a política DLP em que estão definidos, são instantaneamente impostas nos ambientes de destino. Abaixo, poderá ver um exemplo em que um criador tentou ligar o respetivo fluxo de cloud a um ponto final HTTP que não é permitido.

Erro de DLP devido às regras de filtragem de pontos finais.

Limitações conhecidas

  • As regras de filtragem de pontos finais não são aplicadas em variáveis de ambiente, entradas personalizadas e pontos finais vinculados dinamicamente durante o runtime. Só são aplicados pontos final estáticos conhecidos e selecionados durante a criação de uma aplicação, um fluxo ou um chatbot. Isto implica que as regras de filtragem de pontos finais do conector para o SQL Server e Armazenamento de Blobs do Azure não são aplicados se as ligações forem autenticadas através do ID do Microsoft Entra. Nas duas capturas de ecrã abaixo, um criador criou um fluxo de cloud que define as variáveis dentro da base de dados e o SQL Server e, em seguida, utiliza essas variáveis como entrada na definição da ligação. Assim, as regras de filtragem de pontos finais não são avaliadas e o fluxo de cloud pode ser executado com êxito.

    O fluxo de cloud utiliza variáveis para ligar ao SQL.O fluxo de cloud é executado com êxito.

  • Algumas Power Apps publicadas antes de 1 de outubro de 2020 precisam de ser novamente publicadas para as regras de ação do conector DLP e as regras de pontos finais dos conectores serem aplicadas. O script seguinte permite que os administradores e criadores identifiquem aplicações que têm de ser novamente publicadas para respeitarem estas novas regras de controlo granular 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 pontos finais

Cada conector tem uma noção diferente do que significa um ponto final. Além disso, alguns pontos finais podem ser definidos em vários formatos. Assim, os pontos finais têm de ser introduzidos em todos os formatos possíveis para bloquear os criadores de os utilizarem enquanto criam aplicações e fluxos. Os administradores podem introduzir o nome completo do ponto final ou utilizar a correspondência de padrões com o caráter universal (*) ao criar uma regra de filtragem de pontos finais. Estas regras são introduzidas e apresentadas numa lista ordenada de padrões de pontos finais, o que significa que serão avaliadas por ordem crescente por número. Note que a última regra para qualquer conector determinado é sempre * Permitir ou * Negar. Permitir é a predefinição, que pode ser alterada para Negar.

A seguinte orientação descreve como introduzir pontos finais de conector enquanto cria regras para permitir ou negar.

SQL Server

Os pontos finais de ligação do SQL Server têm de ser listados no formato <Server_name, database_name>. Alguns aspetos a ter em conta:

  • O nome de servidor pode ser introduzido em vários formatos pelos criadores. Assim, para abordar verdadeiramente um ponto final, tem de ser introduzido em todos os formatos possíveis. Por exemplo, as instâncias no local podem estar no formato <machine_name\named_instance, database_name> ou <IP address, custom port, database_name>. Neste caso, terá de aplicar regras de permissão ou negação em ambos os formatos para uma ponto final. Por exemplo:

    • Bloquear WS12875676\Servername1,MktingDB
    • Bloquear 11.22.33.444,1401,MktingDB
  • Não existe nenhuma lógica especial para lidar com endereços relativos, tais como localhost. Assim, se bloquear *localhost*, bloqueará os criadores de utilizarem quaisquer pontos finais através do localhost como parte do ponto final de SQL Server. No entanto, isto não os impedirá de aceder ao ponto final através do endereço absoluto, a menos que o endereço absoluto também tenha sido bloqueado pelo administrador.

Seguem-se alguns exemplos:

  • Permitir apenas instâncias do Azure SQL Server:

    1. Permitir *.database.windows.net*
    2. Negar *
  • Permitir apenas um intervalo de IPs (note que os endereços IP que não são permitidos continuam a poder ser introduzidos pelo criador no formato <machine_name\named_instance>).

    1. Permitir 11.22.33*
    2. Negar *

Dataverse

Os pontos finais de Dataverse são representados pelo ID de organização, tal como 7b97cd5c-ce38-4930-9497-eec2a95bf5f7. Note que apenas o conector regular do Dataverse está atualmente no âmbito para a filtragem de pontos finais. Os conectores atuais do Dataverse Dynamics e do Dataverse não estão no âmbito. Além disso, a instância local do Dataverse (também conhecido como ambiente atual) nunca pode ser bloqueada para utilização num ambiente. Isto significa que em qualquer ambiente específico, os criadores podem sempre aceder ao ambiente atual do Dataverse.

Assim, uma regra que diz 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 pontos finais do Dataverse para qualquer ambiente específico.

Armazenamento de Blobs do Azure

Os pontos finais de Armazenamento de Blobs do Azure são representados pelo nome da conta de armazenamento do Azure.

SMTP

Os pontos finais SMTP estão representados no formato <SMTP server address, port number>.

Segue-se um cenário de exemplo:

  1. Negar smtp.gmail.com,587
  2. Permitir *

HTTP com conectores do ID do Microsoft Entra, HTTP Webhook e HTTP

Os pontos finais para todos os conectores HTTP são representados por um padrão de URL. A ação Obter recurso Web de HTTP com o conector do Microsoft Entra está fora do âmbito.

Segue-se um cenário de exemplo:

Permita o acesso apenas à página de subscrições no 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 pontos finais

Configurar regras de filtragem de pontos finais para uma política

O objeto que contém regras de filtragem de pontos finais para uma política é referido abaixo como configurações do conector.

O objeto de configuração 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 ao URL * para assegurar que todos os URLs estão abrangidos pelas regras.
  • A propriedade de ordem das regras para cada conector deve ser povoada com os números 1 a N, onde N é o número de regras para esse conector.

Obter as configurações do conector atual para uma política DLP

Get-PowerAppDlpPolicyConnectorConfigurations 

Criar configurações de conector para uma política DLP

New-PowerAppDlpPolicyConnectorConfigurations

Atualizar configurações de conector para uma política DLP

Set-PowerAppDlpPolicyConnectorConfigurations

Exemplo

Objetivo:

Para o conector de SQL Server:

  • Negar a base de dados “testdatabase” do servidor “myservername.database.windows.net”
  • Permitir todas as outras bases de dados do servidor “myservername.database.windows.net”
  • Negar todos os outros servidores

Para o conector SMTP:

  • Permitir Gmail (endereço de servidor: smtp.gmail.com, porta: 587)
  • Negar todos os outros endereços

Para o conector HTTP:

  • Permitir pontos finais https://mywebsite.com/allowedPath1 e https://mywebsite.com/allowedPath2
  • Negar todos os outros URLs

Nota

No cmdlet seguinte, PolicyName refere-se ao GUID exclusivo. Pode obter o GUID de 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