Configure o Cloud IDS

Use estas instruções para configurar o Cloud IDS para a sua aplicação. Para ver informações conceptuais sobre o Cloud IDS, consulte a vista geral do Cloud IDS.

Antes de começar

Antes de configurar o Cloud IDS, tem de cumprir os seguintes requisitos.

Configure as autorizações de IAM para o Cloud IDS

O Cloud IDS tem várias funções de gestão de identidade e de acesso (IAM). Pode usar os comandos de exemplo para conceder a um principal as autorizações de IAM necessárias.

  • Função de administrador do Cloud IDS (roles/ids.admin). Os principais do projeto com esta função podem criar pontos finais do IDS. Se for proprietário de um projeto, já tem esta autorização e não precisa de uma função ids.admin explícita para criar pontos finais da IDS.

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --role=roles/ids.admin \
        --member=user:USER_NAME ;
    

    Esta função permite as seguintes operações:

    • Criar ponto final
    • Eliminar ponto final
    • Obter ponto final
    • Ponto final de listagem
  • Função de visualizador do Cloud IDS (roles/ids.viewer). Os visualizadores de projetos e os principais com esta função têm acesso só de leitura aos pontos finais do IDS. Se for proprietário, editor ou visitante de um projeto, já tem esta autorização.

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --role=roles/ids.viewer \
        --member=user:USER_NAME ;
    
  • Função de utilizador do espelhamento de pacotes de computação (roles/compute.packetMirroringUser). Uma função necessária para anexar uma política de espelhamento de pacotes ao ponto final do IDS. Se tiver a função compute.securityAdmin ou container.serviceAgent, já tem esta autorização. Para mais informações sobre esta função, consulte a referência de funções básicas e predefinidas do IAM.

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --role=roles/compute.packetMirroringUser \
        --member=user:USER_NAME ;
    
  • Função Logs Viewer (roles/logging.viewer). É necessária uma função adicional para ver ameaças recentes, que é uma funcionalidade essencial do Cloud IDS. Para mais informações sobre esta função, consulte o guia de controlo de acesso.

    gcloud projects add-iam-policy-binding PROJECT_ID \
        --role=roles/logging.viewer \
        --member=user:USER_NAME ;
    

Além disso, precisa das seguintes autorizações diversas:

  • compute.regions.list
  • compute.zones.list

Configure o acesso a serviços privados

Para criar pontos finais do IDS, tem de ativar a API Service Networking e configurar o intercâmbio de redes para a rede da nuvem privada virtual (VPC). Isto só tem de ser feito uma vez por projeto do cliente e pode ser feito através daGoogle Cloud consola ou da Google Cloud CLI. Quando atribui um intervalo de endereços IP, este tem de ser um intervalo de endereços IP privados em conformidade com a RFC 1918 (10.0.0.0/8, 172.16.0.0/12 ou 192.168.0.0/16). Caso contrário, a criação do ponto final falha.

Siga os passos seguintes para configurar o acesso a serviços privados:

  1. Ative a API Service Networking através do seguinte comando. Substitua PROJECT_ID pelo ID do seu projeto.

     gcloud services enable servicenetworking.googleapis.com \
         --project=PROJECT_ID
    
  2. Se ainda não tiver atribuído um intervalo de endereços IP na sua rede, tem de atribuir um intervalo de IP para os serviços Google na sua rede VPC. No comando seguinte, pode 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 o seguinte:

    • RESERVED_RANGE_NAME: um nome para o intervalo atribuído, como my-allocated-range

    • DESCRIPTION: uma descrição do intervalo, como allocated for my-service

    • VPC_NETWORK: o nome da sua rede VPC, como my-vpc-network

  3. Crie uma ligação privada a um produtor de serviços. A ligação privada estabelece uma ligação de interligação de redes VPC entre a sua rede VPC e a rede do produtor do serviço.

    Se já tiver uma ligação privada existente, use o comando gcloud services vpc-peerings update para a atualizar:

      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 ligação privada, use o comando gcloud services vpc-peerings connect. Este comando inicia uma operação de execução prolongada que devolve 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 o seguinte:

    • RESERVED_RANGE_NAME: o nome de um ou mais intervalos atribuídos

    • VPC_NETWORK: o nome da sua rede VPC

    • PROJECT_ID: o ID do projeto que contém a 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 que foi devolvido no passo anterior.

Repita os passos 2 e 3 para cada rede de VPC que quer monitorizar.

Opcional: ative os VPC Service Controls

Depois de ativar o acesso privado aos serviços, pode ativar opcionalmente os VPC Service Controls no Cloud IDS. Se estiver ativado, execute o comando services vpc-peerings enable-vpc-service-controls para ativar os VPC Service Controls para todas as suas ligações de peering:

gcloud services vpc-peerings enable-vpc-service-controls \
    --service=servicenetworking.googleapis.com \
    --network=VPC_NETWORK \
    --project=PROJECT_ID

Substitua o seguinte:

  • VPC_NETWORK: o nome da sua rede VPC

  • PROJECT_ID: o ID do projeto que contém a sua rede VPC

Compreenda as práticas recomendadas

Recomendamos que compreenda as práticas recomendadas antes de configurar o Cloud IDS. Para mais informações, consulte o artigo Práticas recomendadas para o IDS na nuvem.

Configure pontos finais do Cloud IDS

As secções seguintes explicam como criar pontos finais do Cloud IDS, associá-los a uma política de espelhamento de pacotes, ver os pontos finais do Cloud IDS, eliminar os pontos finais do Cloud IDS e como configurar exceções de ameaças.

Crie um ponto final do Cloud IDS

Recomendamos que crie um ponto final do IDS para cada região na qual tenha implementado cargas de trabalho. Também pode criar vários pontos finais do IDS por região. Use os passos seguintes para criar um ponto final de IDS e atribuir-lhe um perfil de serviço de IDS.

Consola

Na Google Cloud consola, aceda a Pontos finais de IDS.

Aceda aos pontos finais de IDS

Configure o ponto final:

  1. Clique em Criar ponto final.
  2. Introduza um nome no campo Nome do ponto final.
  3. Opcional: introduza uma descrição no campo Descrição.
  4. Clique na lista Rede e selecione a rede que quer que o Cloud IDS inspecione.
    1. Escolha a região e a zona da sua rede ou sub-rede nas listas Região e Zona.
    2. Clique em Continuar.

Selecione o perfil de serviço do Cloud IDS:

  1. Clique em Selecionar perfil de serviço do IDS.
  2. Em Nível de gravidade da ameaça mínimo, selecione o nível de alerta correto.
  3. Clique em Criar. O processo de criação pode demorar 10 a 15 minutos.

gcloud

Sinalizações opcionais

Os comandos nesta secção podem ter algumas ou todas as seguintes flags opcionais:

--no-async
Aguarde a conclusão da operação em curso, em vez de regressar imediatamente.
--filter=EXPRESSION
Aplique uma EXPRESSÃO de filtro booleano a cada item de recurso a ser apresentado. Se a expressão for avaliada como Verdadeiro, esse item é apresentado. Para ver mais detalhes e exemplos de expressões de filtro, execute o comando gcloud topic filters. Esta marca interage com outras marcas que são aplicadas nesta ordem: --flatten, --sort-by, --filter, --limit.
--limit=LIMIT
O número máximo de recursos a apresentar. A predefinição é ilimitada. Esta marca interage com outras marcas que são aplicadas por esta ordem: --flatten, --sort-by, --filter, --limit.
--page-size=PAGE_SIZE
Produção de lista de recursos de grupos do Cloud IDS em páginas. Esta flag especifica o número máximo de recursos por página. A predefinição é determinada pelo serviço se este suportar a paginação; caso contrário, é ilimitada (sem paginação). A paginação pode ser aplicada antes ou depois das flags --filter e --limit, consoante o serviço.
--sort-by=[FIELD,…]
Uma lista separada por vírgulas de nomes de chaves de campos de recursos para ordenar. A ordem predefinida é ascendente. Adicione um til (~) a um campo para ordenar esse campo por ordem descendente. Esta marca interage com outras marcas que são aplicadas nesta ordem: --flatten, --sort-by, --filter, --limit.
--uri
Imprima uma lista de URIs de recursos em vez do resultado predefinido.
--threat-exceptions
Uma lista separada por vírgulas de IDs de ameaças a isentar de alertas neste ponto final. Limitado a 99 exceções por ponto final.

Instruções

Para criar um novo ponto final de IDS, use o comando gcloud ids endpoints create.

 gcloud ids endpoints create ENDPOINT_NAME \
     --network=VPC_NETWORK \
     --zone=ZONE \
     --severity=SEVERITY \
     [--no-async] \
     [GCLOUD_WIDE_FLAG...]

Substitua o seguinte:

  • ENDPOINT_NAME: o nome ou o ID do ponto final.
  • VPC_NETWORK: o nome da sua rede VPC.
  • ZONE: a zona do ponto final.
  • SEVERITY: a gravidade mínima das ameaças a comunicar.

    A flag de gravidade é obrigatória e assume um dos seguintes valores:

    • INFORMATIONAL
    • LOW
    • MEDIUM
    • HIGH
    • CRITICAL

API

Os recursos de pontos finais do Cloud IDS têm os seguintes campos:

Campo Tipo Descrição do campo
createTime de string [Apenas saída] Data/hora de criação no formato de texto RFC 3339.
updateTime de string [Apenas saída] Data/hora da última atualização no formato de texto RFC 3339.
nome de string [Apenas saída] Nome do ponto final no formato projects/{project_id}/locations/{locationId}/endpoints/{endpointId}.
rede de string Nome da rede VPC ligada ao ponto final do IDS. 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 quando cria o ponto final.
gravidade de string

O nível de gravidade mínimo do alerta comunicado pelo ponto final. Os valores possíveis são os seguintes:

  • INFORMATIONAL
  • LOW
  • MEDIUM
  • HIGH
  • CRITICAL

Este campo é obrigatório quando cria o ponto final.

descrição de string Uma descrição opcional do ponto final.
endpoint_forwarding_rule de string [Apenas saída] URL do endereço de rede do ponto final para o qual o tráfego vai ser enviado pela replicação de pacotes.
ponto final de string [Apenas saída] Endereço IP interno do ponto de entrada de rede do ponto final.

Para criar um ponto final do Cloud IDS, use um pedido HTTP POST, como o seguinte, substituindo as variáveis conforme adequado. O ENDPOINT_NAME tem de ter entre 1 e 63 carateres; tem de conter apenas letras minúsculas, dígitos e hífenes; tem de 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",
}

Anexe uma política de espelhamento de pacotes a um ponto final do Cloud IDS

Siga estes passos para anexar uma política de replicação de pacotes ao ponto final do IDS.

Consola

Depois de criar o ponto final de IDS, anexe uma política de espelhamento de pacotes ao ponto final de IDS:

  1. Na Google Cloud consola, aceda a Pontos finais de IDS.

    Aceda aos pontos finais de IDS

  2. Junto ao ponto final de IDS, clique em Anexar.

  3. No campo Nome da política, introduza um nome para a política de espelhamento de pacotes.

  4. Clicar em Seguinte.

  5. Escolha a sub-rede ou as instâncias a duplicar. Pode selecionar várias sub-redes e instâncias.

  6. Clicar em Seguinte.

  7. Determine se quer duplicar todo o tráfego ou filtrar o tráfego:

    1. Se quiser espelhar todo o tráfego, certifique-se de que a opção Espelhar todo o tráfego está selecionada.
    2. Se 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 Refletir tráfego filtrado:
      1. Selecione Permitir todos os protocolos ou Permitir protocolos específicos.
      2. Selecione Permitir todos os intervalos de IP ou Permitir intervalos de IP específicos.
  8. Clique em Enviar. O ponto final é criado.

gcloud

  1. Depois de criar o ponto final, anexe-lhe uma política de espelhamento de pacotes. Primeiro, obtenha o URL do campo endpoint_forwarding_rule através do seguinte comando:

    gcloud ids endpoints describe ENDPOINT_NAME
    
  2. Crie a política de espelhamento de pacotes com o seguinte comando:

     gcloud compute packet-mirrorings create POLICY_NAME \
         --region=REGION \
         --collector-ilb=ENDPOINT_FORWARDING_RULE \
         --network=VPC_NETWORK \
         --mirrored-subnets=SUBNET
    
  3. A funcionalidade Packet Mirroring tem várias flags opcionais, incluindo as que pode usar 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 estas flags opcionais, consulte a referência de espelhamento de pacotes.

Descreva um ponto final do Cloud IDS

Siga estes passos para descrever um ponto final do IDS.

Consola

  1. Na Google Cloud consola, aceda a Pontos finais de IDS.

    Aceda aos pontos finais de IDS

  2. Na página Pontos finais de IDS, clique no nome do ponto final de IDS. É apresentada a página Detalhes do ponto final.

gcloud

Para descrever um ponto final de IDS, use o comando gcloud ids endpoints describe.

gcloud ids endpoints describe ENDPOINT_NAME \
    [--project=PROJECT_ID] \
    [--zone=ZONE] \
    [GCLOUD_WIDE_FLAG...]

Substitua o seguinte:

  • ENDPOINT_NAME: o nome ou o ID do ponto final.
  • PROJECT_ID: o ID do projeto.
  • ZONE: a zona do ponto final.

API

Para obter um ponto final do Cloud IDS, use um pedido HTTP GET como o seguinte, substituindo as variáveis conforme adequado:

GET https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME

Liste os pontos finais do Cloud IDS

Siga os passos seguintes para apresentar uma lista de todos os pontos finais da IDS.

Consola

  1. Na Google Cloud consola, aceda a Pontos finais de IDS.

    Aceda aos pontos finais de IDS

gcloud

Para apresentar uma lista de pontos finais de IDS, use o gcloud ids endpoints list comando:

gcloud ids endpoints list \
    [--filter=EXPRESSION] \
    [--limit=LIMIT] \
    [--page-size=PAGE_SIZE] \
    [--sort-by=[FIELD,...]] \
    [--uri] \
    [GCLOUD_WIDE_FLAG...]

Substitua o seguinte:

  • EXPRESSION: aplique um filtro booleano a cada item de recurso a ser apresentado. Se a expressão for avaliada como Verdadeiro, esse item é apresentado.
  • LIMIT: o número máximo de recursos a apresentar.
  • PAGE_SIZE: o número máximo de recursos por página.
  • FIELD: uma lista separada por vírgulas de nomes de chaves de campos de recursos pelos quais ordenar.

API

Para listar todos os pontos finais do Cloud IDS numa zona, use um pedido HTTP GET como o seguinte, substituindo as variáveis conforme adequado:

GET https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints

Em alternativa, para listar todos os pontos finais do Cloud IDS em todas as zonas, pode substituir ZONE por um hífen, da seguinte forma:

GET https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/-/endpoints

Elimine um ponto final do Cloud IDS

Siga estes passos para eliminar um ponto final do IDS.

Consola

  1. Na Google Cloud consola, aceda a Pontos finais de IDS.

    Aceda aos pontos finais de IDS

  2. Na página Pontos finais de IDS, clique no nome do ponto final de IDS. É apresentada a página Detalhes do ponto final.

  3. Clique em Eliminar ponto final.

gcloud

Para eliminar um ponto final de IDS, use o comando gcloud ids endpoints delete.

gcloud ids endpoints delete ENDPOINT_NAME \
    [--project=PROJECT_ID] \
    [--zone=ZONE] \
    [--no-async] \
    [GCLOUD_WIDE_FLAG...]

Substitua o seguinte:

  • ENDPOINT_NAME: o nome ou o ID do ponto final.
  • PROJECT_ID: o ID do projeto.
  • ZONE: a zona do ponto final.

API

Para eliminar um ponto final do Cloud IDS, use um pedido HTTP DELETE como o seguinte, substituindo as variáveis conforme adequado:

DELETE https://ids.googleapis.com/v1/projects/PROJECT_NAME/locations/ZONE/endpoints?endpointId=ENDPOINT_NAME

Opcional: configure exceções de ameaças

Pode desativar IDs de ameaças ruidosos ou desnecessários através da flag --threat-exceptions quando cria ou atualiza o seu ponto final do Cloud IDS. O exemplo seguinte atualiza um ponto final do Cloud IDS existente ENDPOINT_NAME para excluir os IDs de ameaças THREAT_ID1 e THREAT_ID2:

gcloud ids endpoints update ENDPOINT_NAME \
    --threat-exceptions=THREAT_ID1,THREAT_ID2

Veja registos de ameaças

Use os passos seguintes para verificar se foram gerados registos de ameaças.

  1. Na Google Cloud consola, aceda a Ameaças de IDS.

    Aceda a Ameaças de IDS

  2. Clique no nome de uma ameaça para ver a página Detalhes da ameaça dessa ameaça.

  3. Regresse ao separador Ameaças.

  4. Clique no Menu à direita do seu ponto final do IDS e selecione Ver registos de ameaças.

O que se segue?