Listas de acesso de IP

Nota

Esta funcionalidade requer o Plano Premium Azure Databricks.

As empresas conscientes da segurança que utilizam aplicações saaS em nuvem precisam de restringir o acesso aos seus próprios funcionários. A autenticação ajuda a provar a identidade do utilizador, mas isso não impõe a localização da rede dos utilizadores. O acesso a um serviço de nuvem a partir de uma rede não garantida pode representar riscos de segurança para uma empresa, especialmente quando o utilizador pode ter autorizado o acesso a dados pessoais ou sensíveis. Os perímetros da rede empresarial aplicam políticas de segurança e limitam o acesso a serviços externos (por exemplo, firewalls, proxies, DLP e registos), pelo que o acesso para além destes controlos é assumido como não fidedvio.

Por exemplo, suponha que um funcionário do hospital acede a um espaço de trabalho da Azure Databricks. Se o empregado sair do escritório para um café, o hospital pode bloquear ligações ao espaço de trabalho Azure Databricks, mesmo que o cliente tenha credenciais corretas para aceder à aplicação web e à API REST.

Os espaços de trabalho da Azure Databricks podem ser configurados para que os colaboradores se conectem ao serviço apenas através de redes corporativas existentes com um perímetro seguro. Os clientes do Azure Databricks podem utilizar a funcionalidade de listas de acesso IP para definir um conjunto de endereços IP aprovados. Todo o acesso à aplicação Web e ÀS APIs do REST requer que o utilizador se conecte a partir de um endereço IP autorizado.

Para os colaboradores que são remotos ou que viajam, os colaboradores podem utilizar a VPN para se conectarem à rede corporativa, o que, por sua vez, permite o acesso ao espaço de trabalho. Usando o exemplo anterior, o hospital poderia permitir que um funcionário usasse uma VPN do café para aceder ao espaço de trabalho Azure Databricks.

Diagrama de visão geral das listas de acesso ip

Configuração flexível

A funcionalidade de listas de acesso IP é flexível:

  • Os seus próprios administradores de espaço de trabalho controlam o conjunto de endereços IP na Internet pública que são autorizados a aceder. Isto é conhecido como a lista de permitis. Permitir vários endereços IP explicitamente ou como sub-redes inteiras (por exemplo, 216.58.195.78/28).
  • Os administradores do espaço de trabalho podem especificar opcionalmente endereços IP ou sub-redes para bloquear, mesmo que estejam incluídos na lista de autorizações. Isto é conhecido como a lista de blocos. Pode utilizar esta funcionalidade se um intervalo de endereços IP permitido incluir uma gama menor de endereços IP de infraestrutura que, na prática, estão fora do perímetro de rede seguro real.
  • Os administradores do espaço de trabalho usam APIs REST para atualizar a lista de endereços e sub-redes IP permitidos e bloqueados.

Detalhes do recurso

A Lista de Acesso IP API permite que os administradores do Azure Databricks configurem listas IP e bloqueie listas para um espaço de trabalho. Se a funcionalidade estiver desativada para um espaço de trabalho, é permitido todo o acesso. Existe suporte para listas de permitir (inclusão) e listas de blocos (exclusão).

Quando se tenta uma ligação:

  1. Primeiro, todas as listas de blocos são verificadas. Se o endereço IP de ligação corresponder a qualquer lista de blocos, a ligação é rejeitada.

  2. Se a ligação não tiver sido rejeitada por listas de blocos, o endereço IP é comparado com as listas de admissão. Se houver pelo menos uma lista de indicações para o espaço de trabalho, a ligação só é permitida se o endereço IP corresponder a uma lista de admissões. Se não houver listas de permitir o espaço de trabalho, todos os endereços IP são permitidos.

Para todas as listas de permitir e listas de blocos combinadas, o espaço de trabalho suporta um máximo de 1000 valores IP/CIDR, onde um CIDR conta como um único valor.

Após alterações na funcionalidade de acesso IP, pode demorar alguns minutos para que as alterações entrem em vigor.

Diagrama de fluxo de lista de acesso IP

Como utilizar a lista de acessos IP API

Este artigo discute as tarefas mais comuns que pode executar com a API. Para a referência completa da API REST, faça o download da especificação OpenAPI e veja-a diretamente ou utilizando uma aplicação que leia OpenAPI 3.0.

Para saber sobre a autenticação das APIs da Azure Databricks, consulte autenticação utilizando fichas de acesso pessoal da Azure Databricks.

O caminho base para os pontos finais descritos neste artigo é https://<databricks-instance>/api/2.0 , onde está o nome de domínio da sua <databricks-instance> adb-<workspace-id>.<random-number>.azuredatabricks.net implantação de Dados Azure.

Verifique se o seu espaço de trabalho tem a funcionalidade de lista de acesso IP ativada

Para verificar se o seu espaço de trabalho tem a funcionalidade de lista de acesso IP ativada, ligue para a API de funcionalidades get GET /workspace-conf (). Passe keys=enableIpAccessLists como argumentos para o pedido.

Na resposta, o enableIpAccessLists campo especifica true ou false .

Por exemplo:

curl -X -n \
 https://<databricks-instance>/api/2.0/workspace-conf?keys=enableIpAccessLists

Resposta de exemplo:

{
  "enableIpAccessLists": "true",
}

Ativar ou desativar a funcionalidade de lista de acesso IP para um espaço de trabalho

Para ativar ou desativar a funcionalidade de lista de acesso IP para um espaço de trabalho, ligue para o enable ou desative a lista de acesso IP API ( PATCH /workspace-conf ).

Num órgão de pedido JSON, especifique enableIpAccessLists como true (ativado) ou false (incapacitado).

Por exemplo, para ativar a funcionalidade:

curl -X PATCH -n \
  https://<databricks-instance>/api/2.0/workspace-conf \
  -d '{
    "enableIpAccessLists": "true"
    }'

Resposta de exemplo:

{
  "enableIpAccessLists": "true"
}

Adicionar uma lista de acesso IP

Para adicionar uma lista de acesso IP, ligue para adicionar uma lista de acesso IP API POST /ip-access-lists ().

No órgão de pedido json, especificar:

  • label — Etiqueta para esta lista.
  • list_type — Ou ALLOW (lista de permitir) ou BLOCK (uma lista de blocos, o que significa excluir mesmo que na lista de autorizações).
  • ip_addresses — Uma matriz JSON de endereços IP e gamas CIDR, como valores de corda.

A resposta é uma cópia do objeto que passou, mas com alguns campos adicionais, o mais importante, o list_id campo. Pode querer guardar esse valor para que possa atualizar ou eliminar a lista mais tarde. Se não o guardar, ainda poderá obter o ID mais tarde, consultando o conjunto completo de listas de acesso IP com um GET pedido para o ponto /ip-access-lists final.

Por exemplo, para adicionar uma lista de autorizações:

curl -X POST -n \
  https://<databricks-instance>/api/2.0/ip-access-lists
  -d '{
    "label": "office",
    "list_type": "ALLOW",
    "ip_addresses": [
        "1.1.1.1",
        "2.2.2.2/21"
      ]
    }'

Resposta de exemplo:

{
  "ip_access_list": {
    "list_id": "<list-id>",
    "label": "office",
    "ip_addresses": [
        "1.1.1.1",
        "2.2.2.2/21"
    ],
    "address_count": 2,
    "list_type": "ALLOW",
    "created_at": 1578423494457,
    "created_by": 6476783916686816,
    "updated_at": 1578423494457,
    "updated_by": 6476783916686816,
    "enabled": true
  }
}

Para adicionar uma lista de blocos, faça a mesma coisa, mas com list_type definido para BLOCK .

Atualizar uma lista de acesso IP

Para atualizar uma lista de acesso IP, ligue para a atualização de uma lista de acesso IP API ( PUT /ip-access-lists/<list-id> ).

No órgão de pedido json, especificar:

  • label — Etiqueta para esta lista.
  • list_type — Ou ALLOW (lista de permitir) ou BLOCK (lista de blocos, o que significa excluir mesmo que na lista de autorizações).
  • ip_addresses — Uma matriz JSON de endereços IP e gamas CIDR, como valores de corda.
  • enabled — Especifica se esta lista está ativada. Passe true ou false . .

A resposta é uma cópia do objeto que passou com campos adicionais para as datas de ID e modificação.

Por exemplo, para atualizar uma lista de autorizações para desativá-la:

curl -X PUT -n \
  https://<databricks-instance>/api/2.0/ip-access-lists/<list-id>
  -d '{
    "label": "office",
    "list_type": "ALLOW",
    "ip_addresses": [
        "1.1.1.1",
        "2.2.2.2/21"
      ],
    "enabled": "false"
    }'

Excluir uma lista de acesso IP

Para eliminar uma lista de acesso IP, ligue para eliminar uma lista de acesso IP API ( DELETE /ip-access-lists/<list-id> ). Não há nenhum corpo de pedido.

curl -X DELETE -n \
  https://<databricks-instance>/api/2.0/ip-access-lists/<list-id>