Configurar o Cloud IDS

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 do ids.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 de compute.securityAdmin ou container.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:

  1. 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
    
  2. 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, como my-allocated-range.

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

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

  3. 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 você 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.

Entender as práticas recomendadas

Recomendamos que você entenda as práticas recomendadas antes de configurar o Cloud IDS. Para mais informações, consulte Práticas recomendadas para o Cloud IDS.

Configurar endpoints do Cloud IDS

As seções a seguir explicam como criar endpoints do Cloud IDS, anexá-los a uma política de espelhamento de pacotes, visualizar e excluir endpoints do Cloud IDS e configurar exceções de ameaças.

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.

Acessar Endpoints do IDS

Configurar o endpoint:

  1. Clique em Criar endpoint.
  2. Insira um nome no campo Nome do endpoint.
  3. Opcional: insira uma descrição no campo Descrição.
  4. Clique na lista Rede e selecione a rede que você 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.

Selecionar o perfil de serviço do Cloud IDS:

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

gcloud

Flags opcionais

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

--no-async
Aguarda a conclusão da operação em andamento, em vez de retornar imediatamente.
--filter=EXPRESSION
Aplica uma EXPRESSÃO de filtro booleano a cada item de recurso a ser listado. Se a expressão for avaliada como True, o item será listado. Para mais detalhes e exemplos de expressões de filtro, execute o comando gcloud topic filters. Essa flag interage com outras flags aplicadas nesta ordem: --flatten, --sort-by, --filter, --limit.
--limit=LIMIT
O número máximo de recursos a serem listados. O padrão é ilimitado. Esta flag interage com outras flags aplicadas nesta ordem: --flatten, --sort-by, --filter e --limit.
--page-size=PAGE_SIZE
Saída 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. O padrão será determinado pelo serviço se ele aceitar paginação. Caso contrário, será ilimitado (sem paginação). A paginação pode ser aplicada antes ou depois das flags --filter e --limit, dependendo do serviço.
--sort-by=[FIELD,…]
Uma lista separada por vírgulas de nomes de chaves de campo do recurso para usar na ordenação. A ordem padrão é crescente. Use o prefixo til (~) em um campo para ordená-lo de forma decrescente. Essa flag interage com outras flags aplicadas nesta ordem: --flatten, --sort-by, --filter, --limit.
--uri
Imprime uma lista de URIs de recursos em vez da saída padrão.
--threat-exceptions
Uma lista separada por vírgulas de IDs de ameaças a serem isentos de alertas neste endpoint. Limitado a 99 exceções por endpoint.

Instruções

Para criar um endpoint do SDI, 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:

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

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

    • INFORMATIONAL
    • LOW
    • MEDIUM
    • HIGH
    • CRITICAL

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:

  • INFORMATIONAL
  • LOW
  • MEDIUM
  • HIGH
  • CRITICAL

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",
}

Anexar uma política de espelhamento de pacotes a um endpoint do Cloud IDS

Siga estas etapas para anexar uma política de espelhamento de pacotes ao endpoint do SDI.

Console

Depois que o endpoint do IDS for criado, anexe uma política de Espelhamento de Pacotes a ele:

  1. No console do Google Cloud , acesse Endpoints do IDS.

    Acessar Endpoints do IDS

  2. Ao lado do endpoint do IDS, clique em Anexar.

  3. No campo Nome da política, insira um nome para a política de Espelhamento de Pacotes.

  4. Clique em Avançar.

  5. Escolha a sub-rede ou as instâncias a serem espelhadas. É possível selecionar várias sub-redes e instâncias.

  6. Clique em Próxima.

  7. Determine se você quer espelhar todo o tráfego ou filtrar o tráfego:

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

gcloud

  1. 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
    
  2. 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
    
  3. 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.

Descrever um endpoint do Cloud IDS

Siga estas etapas para descrever um endpoint do SDI.

Console

  1. No console do Google Cloud , acesse Endpoints do IDS.

    Acessar Endpoints do IDS

  2. Na página Endpoints do IDS, clique no nome do endpoint do SDI. A página Detalhes do endpoint é exibida.

gcloud

Para descrever um endpoint do SDI, use o comando gcloud ids endpoints describe.

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

Substitua:

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

API

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

Listar endpoints do Cloud IDS

Siga estas etapas para listar todos os endpoints do SDI.

Console

  1. No console do Google Cloud , acesse Endpoints do IDS.

    Acessar Endpoints do IDS

gcloud

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...]

Substitua:

  • EXPRESSION: aplique um filtro booleano a cada item de recurso a ser listado. Se a expressão for avaliada como True, o item será listado.
  • LIMIT: o número máximo de recursos a serem listados.
  • PAGE_SIZE: o número máximo de recursos por página.
  • FIELD: uma lista separada por vírgulas de nomes de chaves de campo do recurso para usar na ordenação.

API

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

Excluir um endpoint do Cloud IDS

Siga estas etapas para excluir um endpoint do SDI.

Console

  1. No console do Google Cloud , acesse Endpoints do IDS.

    Acessar Endpoints do IDS

  2. Na página Endpoints do IDS, clique no nome do endpoint do SDI. A página Detalhes do endpoint é exibida.

  3. Clique em Excluir endpoint.

gcloud

Para excluir um endpoint do SDI, use o comando gcloud ids endpoints delete.

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

Substitua:

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

API

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

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 exemplo a seguir 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

Ver registros de ameaças

Siga estas etapas para verificar se algum registro de ameaça foi gerado.

  1. No console do Google Cloud , acesse Ameaças do IDS.

    Acessar Ameaças do IDS

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

  3. Volte para a guia Ameaças.

  4. Clique no Menu à direita do endpoint do SDI e selecione Ver registros de ameaças.

A seguir