Use estas instruções para configurar o Cloud IDS no seu aplicativo. Para informações conceituais sobre ele, consulte Visão geral do Cloud IDS.
Antes de começar
Antes de configurar o Cloud IDS, você deve cumprir os requisitos a seguir.
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.
Papel de administrador do Cloud IDS (
roles/ids.admin
): os principais do projeto com esse papel podem criar endpoints do IDS. Se você for proprietário de um projeto, já terá essa permissão e não precisará de um papel explícito doids.admin
para criá-los.gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/ids.admin \ --member=user:USER_NAME ;
Esse papel permite as seguintes operações:
- Criar endpoints
- Excluir endpoints
- Acessar endpoints
- Listar endpoints
Papel de visualizador do Cloud IDS (
roles/ids.viewer
): os visualizadores do projeto e os principais com esse papel têm acesso somente leitura aos endpoints do IDS. Se você for proprietário, editor ou visualizador de um projeto, já terá essa permissão.gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/ids.viewer \ --member=user:USER_NAME ;
Papel de usuário de espelhamento de pacotes do Compute (
roles/compute.packetMirroringUser
): um papel necessário para anexar uma política de espelhamento de pacotes ao endpoint do IDS. Se você tiver o papel decompute.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 ;
Papel de visualizador de registros (
roles/logging.viewer
): um papel adicional necessário para ver as ameaças recentes, que é um recurso principal crítico 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 adicionais:
compute.regions.list
compute.zones.list
Configurar o acesso a serviços particulares
Para criar endpoints do IDS, é necessário ativar a API Service Networking
e configurar o peering de rede para a rede de nuvem privada virtual (rede VPC). Essa ação
é necessária apenas uma vez por projeto de cliente e pode ser executada usando o
console doGoogle Cloud ou a CLI do Google Cloud. Ao alocar um intervalo de endereços IP,
ele deve ser um intervalo de endereços IP privados compatível com a RFC 1918 (10.0.0.0/8
,
172.16.0.0/12
ou 192.168.0.0/16
). Do contrário, a criação do endpoint vai falhar.
Siga as seguintes etapas para configurar o acesso a serviços particulares:
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 ainda não tiver alocado um intervalo de endereços IP na sua rede, você deve alocar um para os Serviços do Google na rede VPC. No comando abaixo, é possível omitir o campo
addresses
, pois o Google Cloud selecionará um intervalo de endereços não utilizado na 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
Faça as seguintes substituições:
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
.
Crie uma conexão privada com um produtor de serviços. A conexão privada estabelece uma conexão com o Peering de redes 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 ainda não tiver uma conexão privada, 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
Faça as seguintes substituições:
RESERVED_RANGE_NAME
: o nome de um ou mais intervalos alocados.VPC_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 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 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
Faça as seguintes substituições:
VPC_NETWORK
: o nome da rede VPC.PROJECT_ID
: o ID do projeto que contém a rede VPC.
Criar um endpoint do Cloud IDS
Recomendamos que você crie um endpoint do IDS para cada região em que implantou cargas de trabalho. Também é possível criar vários endpoints do IDS por região. Siga as etapas a seguir para criar um endpoint do IDS e atribuir a ele um perfil de serviço do IDS.
Console
No console do Google Cloud , acesse Endpoints do IDS.
Configurar o endpoint:
- Clique em Criar endpoint.
- Insira 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.
Selecionar o perfil de serviço do Cloud IDS:
- Clique em Selecionar perfil de serviço do IDS.
- Em Nível mínimo de gravidade de ameaças, 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 IDS for criado, anexe uma política de Espelhamento de Pacotes a ele:
- Selecione a guia Endpoints.
- Ao lado do endpoint do IDS, clique em Anexar.
- No campo Nome da política, insira um nome para a política de Espelhamento de Pacotes.
- Clique em Avançar.
- Escolha a sub-rede ou as instâncias a serem espelhadas. É possível selecionar várias sub-redes e instâncias.
- Clique em Avançar.
- Determine se você quer espelhar todo o tráfego ou filtrar o tráfego:
- Se quiser espelhar todo o tráfego, verifique se a opção Espelhar todo o tráfego está selecionada.
- Se você quiser filtrar o tráfego com base em protocolo, intervalo de endereços IP ou
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 IPs ou Permitir intervalos de IPs específicos.
- Clique em Enviar. O endpoint é criado.
Agora, verifique 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 IDS e selecione Ver registros de ameaças.
gcloud
Flags opcionais
Os comandos nesta seção podem ter algumas ou todas as seguintes flags 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 endpoint do IDS, 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 dos seguintes valores:
- INFORMATIONAL
- LOW
- MEDIUM
- HIGH
- CRITICAL
Depois que o endpoint tiver sido criado, anexe uma política de Espelhamento de Pacotes a ele. Primeiro, extraia 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
O 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 IDS, 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 IDS, 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 IDS, 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 endpoints 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
IDS. 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" ).
Este campo é obrigatório ao criar o endpoint. |
gravidade | string | O nível mínimo de gravidade do alerta informado pelo endpoint. Os possíveis valores são os seguintes:
Este campo é obrigatório ao criar o endpoint. |
descrição | string | Uma descrição opcional do endpoint. |
endpoint_forwarding_rule | string | [Somente saída] o URL do endereço de rede do endpoint para onde o tráfego será enviado pelo Espelhamento de Pacotes. |
endpoint | string | [Somente saída] Endereço IP interno do ponto de entrada da rede do endpoint. |
Para criar um endpoint do Cloud IDS, use uma solicitação POST HTTP como a
seguir, substituindo as variáveis conforme necessário. 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 a
seguinte, substituindo as variáveis conforme necessário:
DELETE https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME
Para obter um endpoint do Cloud IDS, use uma solicitação HTTP GET
como a
seguinte, substituindo as variáveis conforme necessário:
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
a seguinte, substituindo as variáveis conforme necessário:
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 este:
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 ruidosos ou desnecessários usando a flag
--threat-exceptions
ao criar ou atualizar o endpoint do Cloud IDS. O seguinte exemplo atualiza um endpoint
ENDPOINT_NAME do Cloud IDS para isentar os IDs de ameaças THREAT_ID1 e
THREAT_ID2:
gcloud ids endpoints update ENDPOINT_NAME
--threat-exceptions=THREAT_ID1,THREAT_ID2