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 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 o 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 IDS. Se você é proprietário do projeto, já tem essa permissão e não precisa de um papelids.admin
explícito para criar endpoints do IDS.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
- Listar endpoint
Papel Leitor do Cloud IDS (
roles/ids.viewer
). Visualizadores do projeto e principais com esse papel 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 de 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 IDS. Se você tiver o papelcompute.securityAdmin
oucontainer.serviceAgent
, já terá essa permissão. Para mais informações sobre essa função, consulte a Papéis básicos e predefinidos do IAM como referência.gcloud projects add-iam-policy-binding PROJECT_ID \ --role=roles/compute.packetMirroringUser \ --member=user:USER_NAME ;
Papel de Visualizador de registros (
roles/logging.viewer
). É necessário um outro papel para conferir as ameaças recentes, que é um recurso essencial 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 IDS, 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 CLI do Google Cloud. Quando você aloca um intervalo de endereços IP,
ele precisa ser um intervalo de endereços IP privados compatível com RFC 1918 (10.0.0.0/8
,
172.16.0.0/12
ou 192.168.0.0/16
) ou a criação do endpoint vai falhar.
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 o Google Cloud seleciona 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
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 um peering de rede VPC entre sua rede VPC e a rede VPC do produtor de serviços em uma rede VPC.
Se você já tiver uma conexão particular, use o Comando
gcloud services vpc-peerings update
para atualizá-lo: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 sua 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, será possível ativar
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 a rede VPC.
criar um endpoint do Cloud IDS
Recomendamos criar um endpoint SDI para cada região onde você tem cargas de trabalho implantadas. Também é possível criar vários endpoints SDI por região. Usar as etapas a seguir para criar um endpoint SDI e atribuir a ele um serviço do SDI perfil.
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 o Cloud IDS faça a inspeção.
- Escolha a região e a zona da sua rede ou sub-rede em 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 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, digite 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. O as etapas a seguir são opcionais:
- Clique na guia Ameaças do IDS.
- Clique no nome de uma ameaça para visualizar a página Detalhes da ameaça relacionada.
- Volte para a guia Ameaças.
- Clique no Menu para o à direita do endpoint do SDI e selecione Ver registros de ameaças.
gcloud
Sinalizações opcionais
Os comandos nesta seção podem ter alguns ou todos os seguintes sinalizações opcionais:
--no-async
--filter=EXPRESSION
--flatten
, --sort-by
e --filter
.
--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
e --filter
.
--limit
.
--uri
--threat-exceptions
Instruções
Para criar um novo endpoint SDI, execute as seguintes etapas:
Use o comando
gcloud ids endpoints create
. SubstituaENDPOINT_NAME
,VPC_NETWORK
,ZONE
eSEVERITY
com informações que correspondem 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 aceita um dos seguintes valores:
- INFORMATIVO
- LOW
- MÉDIO
- HIGH
- CRITICAL
Depois que o endpoint for 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 endereçamento 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 sinalizações opcionais, consulte a Referência do Espelhamento de pacotes.
Para excluir um endpoint 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 IDS, use o comando gcloud ids endpoints
describe
. Substitua ENDPOINT_NAME
, PROJECT_ID
,
e ZONE
com informações que correspondem 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 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. |
name | string | [Somente saída] Nome do endpoint no formato projects/{project_id}/locations/{locationId}/endpoints/{endpointId} . |
network | 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" ). Esse campo é obrigatório ao criar o endpoint. |
gravidade, | string | O nível mínimo de gravidade de 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 POST HTTP, como a
seguintes, 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 a
seguinte, 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
a seguir, 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, você pode
Substitua ZONE
por um hífen como o seguinte:
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 seu 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