Pular para o conteúdo principal
Página não listada
Esta página não está listada. Mecanismos de busca não armazenarão nenhuma informação, e somente usuários que possuam o link direto poderão acessá-la

Configurar um gateway de rede privada

info

Visualização

Esse recurso está na Visualização privada. Para experimentar, entre em contato com o seu representante da Databricks.

Este artigo descreve como configurar e gerenciar um gateway de rede privada. Para ter uma visão geral do que é um gateway de rede privada e como ele funciona, consulte Gateway de rede privada.

Requisitos​

Antes de criar um gateway de rede privada, certifique-se de ter o seguinte:

  • Uma conta do AWS Databricks com pelo menos um workspace que tenha o compute serverless habilitado.
  • Privilégios de administrador de account do Databricks. Sua account também deve estar no nível de preços Enterprise.
  • Uma sub-rede de VPC dedicada na sua região de destino e zona de disponibilidade. Um(a) /28 é o mínimo prático. A sub-rede deve ter endereços IP disponíveis e conectividade downstream para os recursos pretendidos. A Databricks recomenda criar uma sub-rede dedicada ao gateway.
  • Permissão em sua conta da AWS para criar uma IAM role que o Databricks possa assumir.
  • A capacidade de criar um grupo de segurança na mesma VPC para controlar a saída do gateway.
  • O endereço IP de um resolvedor DNS que seja acessível a partir da sub-rede do gateway. Ao usar o DNS fornecido pela Amazon, este é o endereço VPC+2 (por exemplo, 10.0.0.2 se o seu CIDR da VPC for 10.0.0.0/16), ou o endereço link-local 169.254.169.253.

O gateway de rede privada está disponível em um conjunto limitado de regiões da AWS e Zonas de Disponibilidade físicas durante a prévia privada. Entre em contato com sua equipe de conta do Databricks para confirmar as regiões e Zonas de Disponibilidade suportadas para sua implantação. O gateway e sua sub-rede devem estar na mesma região que o NCC.

Ativar a pré-visualização​

Para solicitar acesso ao Private Preview do gateway de rede privada, entre em contato com sua equipe de conta do Databricks e forneça o seguinte:

  • ID da sua conta do Databricks.
  • As regiões onde você pretende usar o gateway.

Configurar um gateway de rede privada​

Toda a configuração de gateway de rede privada usa a API REST account. Não há suporte para interface de usuário ou Terraform durante a visualização.

Crie ou selecione um NCC​

Se você já tiver um NCC na região que deseja usar, pule esta etapa.

  1. Obtenha um access token OAuth usando um Service Principal que tenha a função de administrador de account. Um administrador de conta cria o Service Principal no console da conta com antecedência. Para solicitar o token, execute o seguinte:

    Bash
    curl --location 'https://accounts.cloud.databricks.com/oidc/accounts/{account_id}/v1/token' \
    --header 'Content-Type: application/x-www-form-urlencoded' \
    --header 'Authorization: Basic <base64(client_id:client_secret)>' \
    --data-urlencode 'grant_type=client_credentials' \
    --data-urlencode 'scope=all-apis'
  2. Crie um NCC, execute o seguinte:

    Bash
    curl --request POST \
    'https://accounts.cloud.databricks.com/api/2.0/accounts/{account_id}/network-connectivity-configs' \
    --header 'Authorization: Bearer <access_token>' \
    --header 'Content-Type: application/json' \
    --data '{ "name": "my-ncc", "region": "us-east-1" }'

    Salve o network_connectivity_config_id da resposta.

Prepare sua rede VPC​

Forneça o seguinte em sua conta da AWS:

  • Uma sub-rede na zona de disponibilidade de destino, com endereços IP disponíveis. O Private Preview suporta exatamente uma sub-rede em uma zona de disponibilidade.
  • Um grupo de segurança que controla o que a interface de rede do gateway pode acessar. O Databricks recomenda não utilizar regras de entrada e que as regras de saída sejam limitadas às suas portas de destino.
  • Um endereço IP de resolvedor de DNS que seja acessível a partir da sub-rede de gateway. Você pode usar o resolvedor de VPC da AWS em 169.254.169.253, a base CIDR da VPC mais dois (por exemplo, 10.0.0.2 para uma VPC 10.0.0.0/16), um endpoint do Route 53 Resolver ou seu servidor DNS personalizado.

A sub-rede, o grupo de segurança e o resolvedor de DNS devem estar na mesma VPC e região que seu NCC e Workspace de destino, ou ser acessíveis a partir deles.

Criar a IAM role entre contas​

  1. Crie uma IAM role em sua conta da AWS que o Databricks assume para criar e gerenciar a interface de rede do gateway.

  2. Defina a política de confiança para permitir que a função do Databricks assuma esta função, usando o ID da sua conta do Databricks como o ID externo:

    JSON
    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Effect": "Allow",
    "Principal": {
    "AWS": "arn:aws:iam::414351767826:role/png-management-role"
    },
    "Action": "sts:AssumeRole",
    "Condition": {
    "StringEquals": {
    "sts:ExternalId": "<your_databricks_account_id>"
    }
    }
    }
    ]
    }
  3. Anexe a seguinte política de permissão. Substitua <region>, <customer_account> e <vpc_id> pelos seus valores:

    JSON
    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Sid": "CreateNicInVpc",
    "Effect": "Allow",
    "Action": "ec2:CreateNetworkInterface",
    "Resource": [
    "arn:aws:ec2:<region>:<customer_account>:network-interface/*",
    "arn:aws:ec2:<region>:<customer_account>:subnet/*",
    "arn:aws:ec2:<region>:<customer_account>:security-group/*"
    ]
    },
    {
    "Sid": "ManageAndCleanupNic",
    "Effect": "Allow",
    "Action": ["ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:CreateTags"],
    "Resource": "arn:aws:ec2:<region>:<customer_account>:network-interface/*",
    "Condition": { "StringEquals": { "aws:RequestedRegion": "<region>" } }
    },
    {
    "Sid": "CreateGatewayInVpcOnly",
    "Effect": "Allow",
    "Action": "vpc-lattice:CreateResourceGateway",
    "Resource": "arn:aws:vpc-lattice:<region>:<customer_account>:resourcegateway/*",
    "Condition": {
    "StringEquals": {
    "aws:RequestedRegion": "<region>",
    "vpc-lattice:VpcId": "<vpc_id>",
    "aws:RequestTag/Vendor": "Databricks"
    }
    }
    },
    {
    "Sid": "CreateManagedGatewayResources",
    "Effect": "Allow",
    "Action": ["vpc-lattice:CreateResourceConfiguration", "vpc-lattice:TagResource"],
    "Resource": [
    "arn:aws:vpc-lattice:<region>:<customer_account>:resourcegateway/*",
    "arn:aws:vpc-lattice:<region>:<customer_account>:resourceconfiguration/*"
    ],
    "Condition": { "StringEquals": { "aws:RequestedRegion": "<region>", "aws:RequestTag/Vendor": "Databricks" } }
    },
    {
    "Sid": "ManageManagedGatewayResources",
    "Effect": "Allow",
    "Action": [
    "vpc-lattice:GetResourceGateway",
    "vpc-lattice:DeleteResourceGateway",
    "vpc-lattice:GetResourceConfiguration",
    "vpc-lattice:DeleteResourceConfiguration",
    "vpc-lattice:PutResourcePolicy",
    "vpc-lattice:DeleteResourcePolicy"
    ],
    "Resource": [
    "arn:aws:vpc-lattice:<region>:<customer_account>:resourcegateway/*",
    "arn:aws:vpc-lattice:<region>:<customer_account>:resourceconfiguration/*"
    ],
    "Condition": { "StringEquals": { "aws:RequestedRegion": "<region>", "aws:ResourceTag/Vendor": "Databricks" } }
    },
    {
    "Sid": "ListAndDescribeInRegion",
    "Effect": "Allow",
    "Action": [
    "vpc-lattice:GetResourcePolicy",
    "vpc-lattice:ListResourceGateways",
    "vpc-lattice:ListResourceConfigurations",
    "ec2:DescribeNetworkInterfaces",
    "ec2:DescribeVpcs",
    "ec2:DescribeSubnets",
    "ec2:DescribeSecurityGroups",
    "ec2:DescribeAvailabilityZones",
    "ec2:DescribeRouteTables"
    ],
    "Resource": "*",
    "Condition": { "StringEquals": { "aws:RequestedRegion": "<region>" } }
    },
    {
    "Sid": "VpcLatticeServiceLinkedRole",
    "Effect": "Allow",
    "Action": "iam:CreateServiceLinkedRole",
    "Resource": "arn:aws:iam::<customer_account>:role/aws-service-role/vpc-lattice.amazonaws.com/AWSServiceRoleForVpcLattice",
    "Condition": {
    "StringEquals": { "iam:AWSServiceName": "vpc-lattice.amazonaws.com" }
    }
    }
    ]
    }

    A conta da Databricks na AWS é 414351767826. O ID externo é o ID da sua conta da Databricks. Algumas ações não podem ser limitadas a uma VPC específica, portanto, o escopo mais restrito disponível é conta e região. Conceda a política na íntegra. Todos os comandos são obrigatórios. Esta é uma política única compatível com versões futuras para o provisionamento e gerenciamento do gateway, portanto, você configura a função uma vez e não precisa atualizá-la à medida que o gateway evolui.

Criar o gateway de rede privada​

Para criar o gateway, envie uma solicitação POST para o endpoint private-network-gateways sob seu NCC. O corpo da solicitação aceita os seguintes campos:

  • gateway_name (obrigatório): um nome legível por humanos para o gateway.
  • aws_cloud_connection.gateway_subnets (obrigatório): A sub-rede onde a interface de rede do gateway é colocada. O Private Preview aceita exatamente uma sub-rede.
  • aws_cloud_connection.cross_account_role.role_arn (obrigatório): O ARN da IAM role que você criou n'o passo anterior.
  • aws_cloud_connection.security_group_ids (obrigatório): Os grupos de segurança anexados à interface de rede do gateway, que controlam a saída.
  • private_dns_resolvers (obrigatório): Os endereços IP do resolvedor de DNS que você identificou ao preparar a rede da sua VPC.
  • traffic_mode (obrigatório): SPECIFIC_DESTINATIONS ou ALL_TRAFFIC. Consulte Modos de tráfego.
  • destinations (obrigatório quando traffic_mode for SPECIFIC_DESTINATIONS): Os nomes DNS para rotear por meio do gateway.

Para criar um gateway no modo SPECIFIC_DESTINATIONS, execute o seguinte:

Bash
curl --request POST \
'https://accounts.cloud.databricks.com/api/2.0/accounts/{account_id}/network-connectivity-configs/{network_connectivity_config_id}/private-network-gateways' \
--header 'Authorization: Bearer <access_token>' \
--header 'Content-Type: application/json' \
--data '{
"gateway_name": "my-aws-png",
"traffic_mode": "SPECIFIC_DESTINATIONS",
"aws_cloud_connection": {
"gateway_subnets": [{ "subnet_id": "subnet-0abc123def456" }],
"cross_account_role": {
"role_arn": "arn:aws:iam::<customer_account>:role/databricks-png-role"
},
"security_group_ids": ["sg-customer-xyz"]
},
"destinations": [
{ "destination_type": "DNS_NAME", "value": "app.customer.internal" }
],
"private_dns_resolvers": [
{ "resolver_type": "IP_ADDRESS", "value": "10.0.0.2" }
]
}'

O gateway é criado no estado CREATING. Ele muda para ESTABLISHED após o Databricks criar a interface de rede do gateway em sua sub-rede, o que geralmente leva menos de dois minutos.

Confirme se o gateway está estabelecido​

Para verificar o estado do gateway, envie uma solicitação GET até que state seja ESTABLISHED:

Bash
curl --request GET \
'https://accounts.cloud.databricks.com/api/2.0/accounts/{account_id}/network-connectivity-configs/{network_connectivity_config_id}/private-network-gateways/{gateway_id}' \
--header 'Authorization: Bearer <access_token>'

Confirme se state é ESTABLISHED antes de continuar.

Anexar o NCC aos seus workspaces​

Se seu workspace já estiver anexado ao NCC, pule este passo. Um NCC é um objeto regional e pode ser anexado apenas a Workspace na mesma região.

No console da conta, vá para Workspaces , selecione o workspace, abra Network Connectivity e anexe seu NCC. Repita para cada workspace que deva usar o gateway.

Você também pode anexar o NCC usando a API REST da conta:

Bash
curl --request PATCH \
'https://accounts.cloud.databricks.com/api/2.0/accounts/{account_id}/workspaces/{workspace_id}' \
--header 'Authorization: Bearer <access_token>' \
--header 'Content-Type: application/json' \
--data '{ "network_connectivity_config_id": "{network_connectivity_config_id}" }'

Configuração de DNS​

Um gateway usa o resolvedor que você especifica em private_dns_resolvers para resolver hostnames para os destinos que você configura. O resolvedor deve ser acessível a partir da sub-rede do gateway.

Se seus recursos privados estiverem registrados em uma zona hospedada privada do Route 53, associe essa zona à VPC que contém a sub-rede de gateway para que os hostnames sejam resolvidos corretamente. Para usar o resolvedor de VPC da AWS integrado, especifique 169.254.169.253 ou a base CIDR da VPC mais dois. Se você tiver zonas privadas personalizadas com nomes sobrepostos, use seu próprio resolvedor.

Gerenciar um gateway​

Você pode atualizar, excluir e listar gateways com a API REST da conta.

Atualizar um gateway​

Você pode atualizar gateway_name, destinations, private_dns_resolvers e traffic_mode no local com uma solicitação PATCH. O parâmetro de query update_mask é obrigatório e especifica quais campos atualizar. Ao alternar traffic_mode para ALL_TRAFFIC, limpe destinations na mesma solicitação. Ao alternar para SPECIFIC_DESTINATIONS, inclua os destinos para rotear. Para alterar gateway_subnets, cross_account_role ou security_group_ids, exclua o gateway e crie um novo.

Para atualizar os destinos, execute o seguinte:

Bash
curl --request PATCH \
'https://accounts.cloud.databricks.com/api/2.0/accounts/{account_id}/network-connectivity-configs/{network_connectivity_config_id}/private-network-gateways/{gateway_id}?update_mask=destinations' \
--header 'Authorization: Bearer <access_token>' \
--header 'Content-Type: application/json' \
--data '{ "destinations": [ { "destination_type": "DNS_NAME", "value": "app2.customer.internal" } ] }'

Excluir um gateway​

atenção

A exclusão de um gateway interrompe a conectividade com os recursos privados que dependem dele. Confirme se não há cargas de trabalho ativas dependendo do gateway antes de excluí-lo.

Para excluir o gateway, envie uma solicitação DELETE para o endpoint do gateway sob seu NCC:

Bash
curl --request DELETE \
'https://accounts.cloud.databricks.com/api/2.0/accounts/{account_id}/network-connectivity-configs/{network_connectivity_config_id}/private-network-gateways/{gateway_id}' \
--header 'Authorization: Bearer <access_token>'

Listar gateways​

Para listar os gateways de rede privada em uma NCC, envie uma solicitação GET para o endpoint de gateway sob sua NCC:

Bash
curl --request GET \
'https://accounts.cloud.databricks.com/api/2.0/accounts/{account_id}/network-connectivity-configs/{network_connectivity_config_id}/private-network-gateways' \
--header 'Authorization: Bearer <access_token>'

Estados do gateway​

Um gateway relata um dos seguintes estados:

Status

Descrição

CREATING

O Databricks está criando a interface de rede de gateway em sua sub-rede.

ESTABLISHED

O gateway está pronto para rotear o tráfego.

DELETING

O gateway está sendo removido.

FAILED

Não foi possível provisionar o gateway. Este estado é terminal: exclua o gateway e crie um novo após corrigir a causa subjacente, como uma região ou Zona de Disponibilidade não suportada.

Status

Descrição

CREATING

O Databricks está criando a interface de rede de gateway em sua sub-rede.

ESTABLISHED

O gateway está pronto para rotear o tráfego.

DELETING

O gateway está sendo removido.

FAILED

Não foi possível provisionar o gateway. Este estado é terminal: exclua o gateway e crie um novo após corrigir a causa subjacente, como uma região ou Zona de Disponibilidade não suportada.