Nesta página, explicamos os requisitos de configuração de rede do cluster do Dataproc e opções.
Requisitos de conectividade do Dataproc
Seu cluster do Dataproc precisa estar em uma rede VPC que atenda às e firewall para acessar com segurança as APIs do Google e outros recursos.
Requisitos do trajeto
O agente do Dataproc em execução nas VMs do cluster precisa de uma rota para a Internet para acessar a API Dataproc Control. para receber jobs e informar o status. Quando criadas, as redes VPC contêm uma rota padrão gerada pelo sistema à Internet. Não é recomendável excluir a rota padrão para a Internet. Em vez disso, use firewalls para controlar o acesso à rede. Observe que Clusters somente com ip interno exigem essa rota padrão na Internet para acessar as APIs de controle do Dataproc e outros serviços do Google, como o Cloud Storage, mas o tráfego deles não os data centers do Google.
Requisitos de firewall
Máquinas virtuais (VMs) de clusters do Dataproc precisam se comunicar entre si usando ICMP, TCP (todas as portas) e UDP; do Google Cloud (todas as portas).
A rede VPC default
Firewall do default-allow-internal
atende aos requisitos de conectividade do cluster do Dataproc
e permite a entrada do intervalo de origem 10.128.0.0/9
todas as VMs na rede VPC, da seguinte maneira:
Regra | Rede | Direção | Prioridade | Intervalo de origem | Protocolos:Portas |
---|---|---|---|---|---|
default-allow-internal |
default |
entrada | 65534 |
10.128.0.0/9 |
tcp:0-65535 ,udp:0-65535 ,icmp |
Se você excluir a regra de firewall
default-allow-internal
, o tráfego de entrada a rededefault
foi bloqueada pelo regra implícita "negar entrada".Se você excluir a regra de firewall
default-allow-internal
ou Se você não usar a rede VPCdefault
, precisará criar uma regra própria que atende aos requisitos de conectividade do Dataproc e, em seguida, na rede VPC do cluster.
Prática recomendada: crie uma regra de firewall de entrada para a rede VPC do seu cluster que permite a conectividade de entrada apenas entre VMs de cluster usando um intervalo de IP de origem ou identificando VMs de cluster tag de rede ou conta de serviço.
Crie uma regra de firewall de entrada
Se você ou seu administrador de rede ou segurança criar Uma regra de firewall de entrada para aplicar a uma rede VPC de cluster do Dataproc, ele precisa ter o as seguintes características:
O parâmetro sources especifica: as origens dos pacotes. Todas as VMs de cluster do Dataproc precisam ser capazes de se comunicar entre si. É possível identificar as VMs cluster por intervalo de endereços IP, tags de origem ou contas de serviço associadas entre as VMs.
O destino da regra precisa identificar as VMs do cluster. O destino pode ser todas as VMs da rede VPC ou é possível identificar VMs por intervalo de endereços IP, tag ou serviço de destino do Compute Engine.
A regra precisa incluir o seguinte protocolos e portas:
- TCP (todas as portas, 0 a 65535)
- UDP (todas as portas, 0 a 65535)
- ICMP
O Dataproc usa serviços que são executados em várias portas. Especificação todas as portas ajuda na execução dos serviços.
Diagnosticar regras de firewall de VPC
Para auditar pacotes não processados por regras de firewall de prioridade mais alta, é possível criar duas regras de firewall de negação de baixa prioridade (65534). Ao contrário das regras de firewall implícitas, é possível ativar a geração de registros de regras de firewall em cada uma destas regras de baixa prioridade:
Uma regra de negação de entrada (fontes
0.0.0.0/0
, todos os protocolos, todos os destinos na rede VPC)Uma regra de negação de saída (destinos
0.0.0.0/0
, todos os protocolos, todos os destinos na rede VPC)
Com essas regras de baixa prioridade e a geração de registros de regras de firewall, é possível não processados por itens de prioridade mais alta e possivelmente mais específicos, regras de firewall. Essas duas regras de baixa prioridade também se alinham às práticas recomendadas de segurança ao implementar uma estratégia de "pacotes finais eliminados".
Examine os registros de regras de firewall para encontrar essas regras determine se precisa criar ou alterar regras de prioridade mais alta para permitir pacotes. Por exemplo, se pacotes enviados entre clusters do Dataproc Como as VMs são descartadas, isso pode ser um sinal de que as regras de firewall ajustado.
Crie uma rede VPC
Em vez de usar a rede VPC default
, é possível criar a própria
modo automático
ou VPC personalizada
em uma rede VPC. Ao criar o cluster, você associa a rede à
aglomerado.
Ambiente do Assured Workloads:quando você usa um Ambiente do Assured Workloads para conformidade regulatória, o cluster, a rede VPC e o Cloud Storage buckets precisam estar contidos no ambiente do Assured Workloads.
Como criar um cluster que use a rede VPC
Google Cloud CLI
Usar
gcloud dataproc clusters create
com ‑‑network
ou ‑‑subnet
para criar um cluster em uma sub-rede na rede.
Se você usar a flag ‐‐network, o cluster usará uma sub-rede com
o mesmo nome da rede especificada na região em que o cluster foi criado;
--network example
: Como as redes automáticas são criadas
com sub-redes em cada região, com o nome da rede em cada uma, é possível
transmita o nome da rede VPC de modo automático para a sinalização ‑‑network
.
O cluster vai usar a sub-rede VPC de modo automático na
região especificada com a sinalização ‐‐region.
gcloud dataproc clusters create CLUSTER_NAME \ --network NETWORK_NAME \ --region=REGION \ ... other args ...
--subnet example
: Você pode usar o método ‑‑subnet
para criar um cluster que usa uma sub-rede de rede VPC personalizada ou de modo automático na
região do cluster. Especifique o caminho completo do recurso da sub-rede.
gcloud dataproc clusters create CLUSTER_NAMEW \ --subnet projects/PROJECT_ID/regions/REGION/subnetworks/SUBNET_NAME \ --region=REGION \ ... other args ...
API REST
É possível especificar o campo GceClusterConfig
networkUri ou subnetworkUri como parte de uma solicitação clusters.create.
Exemplo
POST /v1/projects/my-project-id/regions/us-central1/clusters/ { "projectId": "PROJECT_ID", "clusterName": CLUSTER_NAME, "config": { "configBucket": "", "gceClusterConfig": { "subnetworkUri": SUBNET_NAME, }, ...
Console
Selecione sua rede na seção de configuração no painel Personalizar cluster. Depois de escolher rede, o seletor Sub-rede exibirá as sub-redes disponíveis na região selecionada para o cluster.
Como criar um cluster que use uma rede VPC em outro projeto
Um cluster do Dataproc pode usar rede VPC compartilhada definida em um projeto host. O projeto em que o cluster do Dataproc é criado conhecido como projeto de serviço.
Encontre o número do projeto do cluster do Dataproc:
- Abra a página IAM e Administrador Configurações na console do Google Cloud. Selecione o projeto em que você criará o cluster do Dataproc. Copie o ID do projeto.
Um principal com o papel de administrador de VPC compartilhada precisa executar as etapas a seguir. Consulte as instruções para configurar a VPC compartilhada para ver informações básicas.
Confirme se o projeto host da VPC compartilhada está ativada.
Anexe o projeto com o cluster do Dataproc ao projeto host.
Siga as instruções desta subetapa para configurar os seguintes itens: as contas de serviço tenham o papel Usuário de rede para o projeto host:
- Conta de serviço do agente de serviço do Dataproc:
service-[project-number]@dataproc-accounts.iam.gserviceaccount.com
- Conta de serviço das APIs do Google:
[project-number]@cloudservices.gserviceaccount.com
Abra a página IAM e Administrador no console do Google Cloud.
Use o seletor de projetos para escolher o novo projeto host.
Clique em Permitir acesso.
Preencha o formulário para conceder acesso. Repita essas etapas para adicionar as duas contas de serviço:
Adicionar principais: informe a conta de serviço.
Atribuir papéis: insira "Rede do Compute". Na caixa de filtro, selecione o papel Usuário da rede do Compute.
Clique em Salvar.
- Conta de serviço do agente de serviço do Dataproc:
Depois que ambas as contas de serviço tiverem o papel
Network User
para o projeto host, criar um cluster que usa a rede VPC compartilhada.
Criar um cluster que use uma sub-rede VPC em outro projeto
Um cluster do Dataproc pode usar sub-rede VPC compartilhada, definida em um projeto host. O projeto em que o cluster do Dataproc é criado conhecido como projeto de serviço.
Encontre o número do projeto do cluster do Dataproc:
- Abra a página IAM e Administrador Configurações na console do Google Cloud. Selecione o projeto em que você criará o cluster do Dataproc. Copie o ID do projeto.
Um principal com o papel de administrador de VPC compartilhada precisa executar as etapas a seguir. Consulte as instruções para configurar a VPC compartilhada para ver informações básicas.
Confirme se o projeto host da VPC compartilhada está ativada.
Anexe o projeto com o cluster do Dataproc ao projeto host.
Siga as instruções nesta etapa para configurar os seguintes itens as contas de serviço tenham o papel Usuário de rede para o projeto host:
- Conta de serviço do agente de serviço do Dataproc:
service-[project-number]@dataproc-accounts.iam.gserviceaccount.com
- Conta de serviço das APIs do Google:
[project-number]@cloudservices.gserviceaccount.com
Abra as redes VPC no console do Google Cloud.
Use o seletor de projetos para escolher o projeto host.
Clique na rede que contém a sub-rede que cluster do Dataproc vai usar.
Na página Detalhes da rede VPC, clique na caixa de seleção ao lado do o nome da sub-rede que o cluster vai usar.
Se o painel de informações não estiver aberto, clique em Mostrar painel de informações.
Siga estas etapas para cada conta de serviço:
No painel de informações, clique em Adicionar principal.
Preencha o formulário Permitir acesso:
Adicionar principais: informe a conta de serviço.
Atribuir papéis: insira "Rede do Compute". Na caixa de filtro, selecione o papel Usuário da rede do Compute.
Clique em Salvar.
- Conta de serviço do agente de serviço do Dataproc:
Depois que ambas as contas de serviço tiverem o papel
Network User
para o projeto host, criar um cluster que usa a sub-rede VPC compartilhada.
Criar um cluster do Dataproc somente com endereços IP internos
É possível criar um cluster do Dataproc isolado da Internet pública em que as instâncias de VM se comunicam por uma sub-rede IP particular. (VMs de cluster não recebem endereços IP públicos). Para fazer isso, o sub-rede deve ter Acesso privado do Google ativado para permitir que os nós do cluster acessem as APIs e os serviços do Google, como Cloud Storage, de IPs internos.
CLI da gcloud
Só é possível criar um cluster do Dataproc com endereços IP internos
usando o
gcloud dataproc clusters create
com a sinalização ‑‑no-address
.
Use as sinalizações ‐‐no-address e ‐‐network:
Use a flag ‑‑no-address
com o
sinalização ‑‑network
para criar um cluster que usará
uma sub-rede com o mesmo nome da rede da região
em que o cluster é criado.
gcloud dataproc clusters create CLUSTER_NAME \ --no-address \ --network NETWORK_NAME \ --region=REGION \ ... other args ...
Por exemplo, como redes automáticas são criadas com sub-redes em cada
região com o mesmo nome da rede automática, será possível transmitir a rede automática
ao ‑‑network flag
para criar um cluster que usará a sub-rede automática na região do cluster.
Use as sinalizações ‐‐no-address e ‐‐subnet:
Use a flag ‑‑no-address
com o
‑‑subnet
para criar um
cluster que vai usar uma sub-rede automática ou personalizada na região
em que o cluster será criado. Transmita a sinalização ‑‑subnet
o caminho completo do recurso da sub-rede.
gcloud dataproc clusters create cluster-name \ --no-address \ --subnet projects/project-id/regions/region/subnetworks/subnetwork-name \ --region=region \ ... other args ...
API REST
É possível definir o GceClusterConfig
internalIpOnly
como true
como parte de uma
clusters.create
para ativar apenas endereços IP internos.
Exemplo:
POST /v1/projects/my-project-id/regions/us-central1/clusters/ { "projectId": "my-project-id", "clusterName": "example-cluster", "config": { "configBucket": "", "gceClusterConfig": { "subnetworkUri": "custom-subnet-1", "zoneUri": "us-central1-b", "internalIpOnly": true }, ...
Console
É possível criar um cluster do Dataproc com o Acesso privado do Google do Dataproc Criar um cluster no console do Google Cloud. Clique em Somente IP interno em a página Personalizar cluster para ativar esse recurso no cluster.
Como os clusters somente de IP interno não têm acesso à Internet por padrão, jobs que fazem o download de dependências da Internet, como aqueles que fazem o download Os pacotes de dependência do Spark do Maven Central falharão. Há várias soluções para evitar o problema:
usar o Cloud NAT; para ativar o acesso do cluster à Internet.
Crie uma imagem personalizada que inclua as dependências (por exemplo, pacotes de dependência do Spark em
/usr/lib/spark/jars/
).Faça upload das dependências para um bucket do Cloud Storage e use uma ação de inicialização para fazer o download das dependências do bucket durante a criação do cluster.
Redes Dataproc e VPC Service Controls
Com o VPC Service Controls, os administradores podem definir um perímetro de segurança em torno dos recursos dos serviços gerenciados pelo Google para controlar a comunicação entre esses serviços.
Observe as seguintes limitações e estratégias ao usar redes VPC Service Controls com Clusters do Dataproc:
Para instalar componentes fora do perímetro do VPC Service Controls, crie um Dataproc imagem personalizada que pré-instala os componentes e cria o cluster usando a imagem personalizada.
Consulte Etapas especiais do Dataproc para proteção usando o VPC Service Controls.