Use estas instruções para configurar o Cloud IDS para seu aplicativo. Para informações conceituais sobre o Cloud IDS, consulte a Visão geral do Cloud IDS.
Antes de começar
Antes de configurar o Cloud IDS, você precisa atender aos seguintes requisitos.
Configurar permissões do IAM para o Cloud IDS
O Cloud IDS tem vários papéis do Identity and Access Management (IAM). Use os comandos de exemplo para conceder a um principal as permissões necessárias do IAM.
Função de administrador do Cloud IDS (
roles/ids.admin
). Os principais do projeto com essa função podem criar endpoints do SDI. Se você é proprietário do projeto, já tem essa permissão e não precisa de uma funçãoids.admin
explícita para criar endpoints do SDI.gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/ids.admin \ --member=user:USER_NAME ;
Esse papel permite as seguintes operações:
- Criar endpoint
- Excluir endpoint
- Acessar endpoint
- Endpoint de lista
Função de leitor do Cloud IDS (
roles/ids.viewer
). Os leitores de projetos e os principais com essa função têm acesso somente leitura aos endpoints do SDI. Se você é proprietário, editor ou visualizador do projeto, já tem essa permissão.gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/ids.viewer \ --member=user:USER_NAME ;
Papel função do usuário de espelhamento de pacotes do Compute (
roles/compute.packetMirroringUser
): uma função necessária para anexar uma política de espelhamento de pacotes ao endpoint do SDI. Se você tiver o papelcompute.securityAdmin
oucontainer.serviceAgent
, já terá essa permissão. Para mais informações sobre esse papel, consulte a referência de papéis básicos e predefinidos do IAM.gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/compute.packetMirroringUser \ --member=user:USER_NAME ;
Função de leitor de registros (
roles/logging.viewer
): é necessário ter outra função para visualizar ameaças recentes, que é um recurso principal do Cloud IDS. Para mais informações sobre esse papel, consulte o Guia de controle de acesso.gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/logging.viewer \ --member=user:USER_NAME ;
Além disso, você precisa das seguintes permissões diversas:
compute.regions.list
compute.zones.list
Configurar o acesso privado a serviços
Para criar endpoints do SDI, ative a API Service Networking e configure o peering de rede para a rede de nuvem privada virtual (VPC). Isso
precisa ser feito apenas uma vez por projeto do cliente e pode ser feito usando o
console do Google Cloud ou a Google Cloud CLI. Ao alocar um intervalo de endereços IP,
ele precisa ser um intervalo de endereços IP particular compatível com o RFC 1918 (10.0.0.0/8
,
172.16.0.0/12
ou 192.168.0.0/16
), ou a criação de endpoint falha.
Siga estas etapas para configurar o acesso a serviços privados:
Ative a API Service Networking usando o comando a seguir. Substitua
PROJECT_ID
pelo ID do projeto.gcloud services enable servicenetworking.googleapis.com \ --project=PROJECT_ID
Se você ainda não alocou um intervalo de endereços IP na sua rede, aloque um intervalo de IP para os serviços do Google na sua rede VPC. No comando a seguir, é possível omitir o campo
addresses
e Google Cloud seleciona um intervalo de endereços não utilizado na sua rede VPC:gcloud compute addresses create RESERVED_RANGE_NAME \ --global \ --purpose=VPC_PEERING \ --addresses=192.168.0.0 \ --prefix-length=16 \ --description="DESCRIPTION" \ --network=VPC_NETWORK
Substitua:
RESERVED_RANGE_NAME
: é um nome para o intervalo alocado, comomy-allocated-range
.DESCRIPTION
: uma descrição para o intervalo, comoallocated for my-service
.VPC_NETWORK
: o nome da rede VPC, comomy-vpc-network
.
Criar uma conexão privada a um produtor de serviços. A conexão particular estabelece uma conexão de Peering de rede VPC entre sua rede VPC e a rede do produtor de serviços.
Se você já tiver uma conexão privada, use o comando
gcloud services vpc-peerings update
para atualizá-la:gcloud services vpc-peerings update \ --service=servicenetworking.googleapis.com \ --ranges=RESERVED_RANGE_NAME \ --network=VPC_NETWORK \ --project=PROJECT_ID
Se você ainda não tiver uma conexão particular, use o comando
gcloud services vpc-peerings connect
. Esse comando inicia uma operação de longa duração que retorna um nome de operação.gcloud services vpc-peerings connect \ --service=servicenetworking.googleapis.com \ --ranges=RESERVED_RANGE_NAME \ --network=VPC_NETWORK \ --project=PROJECT_ID
Substitua:
RESERVED_RANGE_NAME
: o nome de um ou mais intervalos alocadosVPC_NETWORK
: o nome da rede VPC.PROJECT_ID
: o ID do projeto que contém a rede VPC.
Para verificar se a operação foi bem-sucedida, use o comando
gcloud services vpc-peerings operations describe
:gcloud services vpc-peerings operations describe \ --name=OPERATION_NAME
Substitua
OPERATION_NAME
pelo nome da operação que foi retornado na etapa anterior.
Repita as etapas 2 e 3 para cada rede VPC que você quer monitorar.
Opcional: ativar o VPC Service Controls
Depois que o acesso a serviços particulares estiver ativado, você poderá ativar o
VPC Service Controls no Cloud IDS.
Se estiver ativado, execute o comando services vpc-peerings enable-vpc-service-controls
para ativar o VPC Service Controls em todas as conexões de peering:
gcloud services vpc-peerings enable-vpc-service-controls \ --service=servicenetworking.googleapis.com \ --network=VPC_NETWORK \ --project=PROJECT_ID
Substitua:
VPC_NETWORK
: o nome da rede VPC.PROJECT_ID
: o ID do projeto que contém sua rede VPC.
criar um endpoint do Cloud IDS
Recomendamos que você crie um endpoint do SDI para cada região em que você implantou cargas de trabalho. Também é possível criar vários endpoints do SDI por região. Siga as etapas abaixo para criar um endpoint do SDI e atribuir um perfil de serviço do SDI a ele.
Console
No console do Google Cloud, acesse Endpoints de IDS.
Configure o endpoint:
- Clique em Criar endpoint.
- Digite um nome no campo Nome do endpoint.
- Opcional: insira uma descrição no campo Descrição.
- Clique na lista suspensa Rede e selecione a rede que você quer que o Cloud IDS inspecione.
- Escolha a região e a zona da sua rede ou sub-rede nas listas suspensas Região e Zona.
- Clique em Continuar.
Selecione o perfil de serviço do Cloud IDS:
- Clique em Selecionar perfil de serviço do IDS.
- Em Nível mínimo de gravidade da ameaça, selecione o nível de alerta correto.
- Clique em Criar. O processo de criação pode levar de 10 a 15 minutos.
Depois que o endpoint do SDI for criado, anexe uma política de espelhamento de pacotes ao endpoint do SDI:
- Selecione a guia Endpoints.
- Ao lado do endpoint do SDI, clique em Anexar.
- No campo Nome da política, insira um nome para a política de espelhamento de pacotes.
- Clique em Próxima.
- Escolha a sub-rede ou as instâncias a serem espelhadas. É possível selecionar várias sub-redes e instâncias.
- Clique em Próxima.
- Determine se você quer espelhar todo o tráfego ou filtrar o tráfego:
- Se você quiser espelhar todo o tráfego, selecione Espelhe todo o tráfego.
- Se você quiser filtrar o tráfego com base no protocolo, no intervalo de endereços IP ou no tráfego de entrada ou saída, selecione Espelhar tráfego filtrado:
- Selecione Permitir todos os protocolos ou Permitir protocolos específicos.
- Selecione Permitir todos os intervalos de IP ou Permitir intervalos de IP específicos.
- Clique em Enviar. O endpoint é criado.
Agora você pode verificar se algum registro de ameaça foi gerado. As seguintes etapas são opcionais:
- Clique na guia Ameaças do IDS.
- Clique no nome de uma ameaça para acessar a página Detalhes da ameaça.
- Volte para a guia Ameaças.
- Clique no Menu à direita do endpoint do SDI e selecione Ver registros de ameaças.
gcloud
Sinalizações opcionais
Os comandos desta seção podem ter algumas ou todas as seguintes sinalizações opcionais:
--no-async
--filter=EXPRESSION
--flatten
, --sort-by
, --filter
e
--limit
.
--limit=LIMIT
--flatten
, --sort-by
, --filter
e
--limit
.
--page-size=PAGE_SIZE
--filter
e
--limit
, dependendo do serviço.
--sort-by=[FIELD,…]
--flatten
, --sort-by
, --filter
e
--limit
.
--uri
--threat-exceptions
Instruções
Para criar um novo endpoint do SDI, siga estas etapas:
Use o comando
gcloud ids endpoints create
. SubstituaENDPOINT_NAME
,VPC_NETWORK
,ZONE
eSEVERITY
por informações que correspondam ao seu aplicativo.gcloud ids endpoints create ENDPOINT_NAME \ --network=VPC_NETWORK \ --zone=ZONE \ --severity=SEVERITY \ [--no-async] \ [GCLOUD_WIDE_FLAG...]
A flag de gravidade é obrigatória e usa um destes valores:
- INFORMATIVA
- BAIXA
- MÉDIO
- HIGH
- CRITICAL
Depois que o endpoint for criado, anexe uma política de espelhamento de pacotes a ele. Primeiro, obtenha o URL do campo
endpoint_forwarding_rule
usando o seguinte comando:gcloud ids endpoints describe ENDPOINT_NAME
Crie a política de espelhamento de pacotes usando o seguinte comando:
gcloud compute packet-mirrorings create POLICY_NAME \ --region=REGION --collector-ilb=ENDPOINT_FORWARDING_RULE \ --network=VPC_NETWORK --mirrored-subnets=SUBNET
Espelhamento de pacotes tem várias flags opcionais, incluindo aquelas que podem ser usadas para filtrar o tráfego com base no protocolo, no intervalo de endereços IP ou no tráfego de entrada ou saída. Para mais informações sobre essas flags opcionais, consulte a referência do espelhamento de pacotes.
Para excluir um endpoint do SDI, use o comando gcloud ids endpoints
delete
. Substitua ENDPOINT_NAME
, PROJECT_ID
e ZONE
por informações que correspondam ao seu aplicativo:
gcloud ids endpoints delete ENDPOINT_NAME \ [--project=PROJECT_ID] \ [--zone=ZONE] \ [--no-async] \ [GCLOUD_WIDE_FLAG...]
Para descrever um endpoint do SDI, use o comando gcloud ids endpoints
describe
. Substitua ENDPOINT_NAME
, PROJECT_ID
e ZONE
por informações que correspondam ao seu aplicativo:
gcloud ids endpoints describe ENDPOINT_NAME \ [--project=PROJECT_ID] \ [--zone=ZONE] \ [GCLOUD_WIDE_FLAG...]
Para listar os endpoints do SDI, use o comando gcloud ids endpoints list
:
gcloud ids endpoints list / [--filter=EXPRESSION] \ [--limit=LIMIT] \ [--page-size=PAGE_SIZE] \ [--sort-by=[FIELD,...]] \ [--uri] \ [GCLOUD_WIDE_FLAG...]
API
Os recursos de endpoint do Cloud IDS têm os seguintes campos:
Campo | Tipo | Descrição do campo |
---|---|---|
createTime | string | [Somente saída] Carimbo de data/hora da criação no formato de texto RFC 3339. |
updateTime | string | [Somente saída] Carimbo de data/hora da última atualização no formato de texto RFC 3339. |
nome | string | [Somente saída] Nome do endpoint no formato projects/{project_id}/locations/{locationId}/endpoints/{endpointId} . |
rede | string | Nome da rede VPC conectada ao endpoint do SDI. Ele pode conter o nome da rede VPC (como "src-net" ) ou o URL completo da rede (como "projects/{project_id}/global/networks/src-net" ). Esse campo é obrigatório ao criar o endpoint. |
gravidade, | string | O nível mínimo de gravidade do alerta informado pelo endpoint. Os valores possíveis são os seguintes:
Este campo é obrigatório ao criar o endpoint. |
description | string | Uma descrição opcional do endpoint. |
endpoint_forwarding_rule | string | [Somente saída] URL do endereço de rede do endpoint para o qual o tráfego será enviado pelo espelhamento de pacotes. |
endpoint | string | [Somente saída] Endereço IP interno do ponto de entrada de rede do endpoint. |
Para criar um endpoint do Cloud IDS, use uma solicitação HTTP POST como a
abaixo, substituindo as variáveis conforme apropriado. O
ENDPOINT_NAME
precisa ter entre 1 e 63 caracteres, conter apenas
letras minúsculas, dígitos e hifens, começar com uma letra minúscula
e não pode terminar com um hífen.
POST https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME { "network": "NETWORK_NAME", "severity": "SEVERITY_LEVEL", }
Para excluir um endpoint do Cloud IDS, use uma solicitação HTTP DELETE
como esta, substituindo as variáveis conforme apropriado:
DELETE https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME
Para acessar um endpoint do Cloud IDS, use uma solicitação HTTP GET
como a
seguinte, substituindo as variáveis conforme apropriado:
GET https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME
Para listar todos os endpoints do Cloud IDS em uma zona, use uma solicitação HTTP GET
como
esta, substituindo as variáveis conforme apropriado:
GET https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints
Como alternativa, para listar todos os endpoints do Cloud IDS em todas as zonas, substitua ZONE
por um hífen, como neste exemplo:
GET https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/-/endpoints
Opcional: configurar exceções de ameaças
É possível desativar IDs de ameaças barulhentos ou desnecessários usando a
flag --threat-exceptions
ao criar ou atualizar o endpoint do Cloud IDS. O exemplo a seguir atualiza um endpoint do Cloud IDS
ENDPOINT_NAME para isentar os IDs de ameaça THREAT_ID1 e
THREAT_ID2:
gcloud ids endpoints update ENDPOINT_NAME
--threat-exceptions=THREAT_ID1,THREAT_ID2