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

Prévia privada

O gateway de rede privada está em Pré-visualização privada. Para solicitar acesso, entre em contato com sua equipe de conta da Databricks.

Este artigo descreve como configurar e gerenciar um gateway de rede privada usando a API REST da conta. Para obter uma visão geral do que é um gateway de rede privada e como ele funciona, consulte Private network gateway.

Antes de começar

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 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 prévia privada.

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.