Coletar registros de acesso do AWS API Gateway

Compatível com:

Este documento explica como ingerir registros de acesso do Amazon API Gateway no Google Security Operations usando os registros do AWS CloudWatch e o Kinesis Data Firehose. O Amazon API Gateway oferece APIs REST e HTTP para criar e gerenciar APIs em grande escala. Os registros de acesso ajudam a monitorar o uso da API e resolver problemas. Essa integração transmite esses registros para o Google SecOps para análise e monitoramento.

Antes de começar

Verifique se você tem os pré-requisitos a seguir:

  • Instância do Google SecOps
  • Acesso privilegiado à AWS

Ativar o registro de acesso do Amazon API Gateway (para o CloudWatch Logs)

  1. Acesse Console da AWS > API Gateway.
  2. Para APIs REST:

    • Abra Stage > Logs/Tracing > enable Access logging.
    • Formato do registro: selecione JSON.

      {
        "requestId":"$context.requestId",
        "ip":"$context.identity.sourceIp",
        "requestTime":"$context.requestTime",
        "httpMethod":"$context.httpMethod",
        "routeKey":"$context.routeKey",
        "status":"$context.status",
        "protocol":"$context.protocol",
        "responseLength":"$context.responseLength",
        "integrationLatency":"$context.integrationLatency",
        "error":"$context.error.message"
      }
      
    • Grupo de registros do CloudWatch Logs: escolha ou crie um grupo de registros (por exemplo, /aws/apigateway/access).

  3. Para APIs HTTP:

    • Selecione API > Monitor > Logging.
    • Selecione Etapa > Editar.
    • Ative a geração de registros de acesso.
    • Use o mesmo formato de registro JSON acima.
    • Grupo de registros do CloudWatch Logs: escolha ou crie um grupo de registros (por exemplo, /aws/apigateway/access).
  4. Clique em Salvar.

Configurar um feed no Google SecOps para ingerir registros do Amazon API Gateway

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em + Adicionar novo feed.
  3. No campo Nome do feed, insira Amazon API Gateway - CloudWatch via Firehose.
  4. Selecione Amazon Data Firehose como o Tipo de origem.
  5. Selecione Amazon API Gateway como o Tipo de registro.
  6. Clique em Próxima.
  7. Especifique valores para os seguintes parâmetros de entrada:
    • Delimitador de divisão: n opcional
    • Namespace do recurso: aws.api_gateway
    • Rótulos de ingestão: por exemplo, source=apigw_access, aws_region=<your-region>
  8. Clique em Próxima.
  9. Revise a configuração do feed e clique em Enviar.
  10. Em Detalhes do feed, clique em Gerar chave secreta e copie a Chave secreta.
  11. Copie o URL do endpoint HTTPS do feed em Informações do endpoint.
  12. Crie uma chave de API do Google Cloud em APIs e serviços > Credenciais > Criar credenciais > Chave de API e restrinja-a à API Google SecOps.
  13. Copie e salve a chave de API em um local seguro.

Configurar o Amazon Kinesis Data Firehose (direto para o Google SecOps)

  1. No console da AWS, acesse Kinesis > Data Firehose > Criar fluxo de entrega.
  2. Informe os seguintes detalhes de configuração:
    • Origem: selecione PUT direto ou outras origens.
    • Destino: escolha Endpoint HTTP.
    • URL do endpoint HTTP: insira ENDPOINT_URL?key=API_KEY (use o URL do endpoint HTTPS do feed e a chave de API da etapa anterior).
    • Método HTTP: selecione POST.
    • Chave de acesso: cole a chave secreta gerada no feed.
    • Dicas de buffer: defina Tamanho do buffer = 1 MiB e Intervalo do buffer = 60 segundos.
    • Compressão: selecione Desativada.
    • Backup do S3: selecione Desativado.
    • Deixe as configurações de retry e logging como padrão.
  3. Clique em Criar fluxo de entrega. Por exemplo, cwlogs-to-secops.

Configurar permissões do IAM e assinar o grupo de registros

  1. No console da AWS, acesse IAM > Políticas > Criar política > JSON.
    1. No editor JSON, insira a seguinte política:
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Action": [
            "firehose:PutRecord",
            "firehose:PutRecordBatch"
          ],
          "Resource": "arn:aws:firehose:<region>:<account-id>:deliverystream/cwlogs-to-secops"
        }
      ]
    }
    
    • Substitua <region> e <account-id> pela sua região da AWS e ID da conta.
  2. Nomeie a política como CWLtoFirehoseWrite e clique em Criar política.

  3. Acesse IAM > Papéis > Criar papel.

  4. Selecione Política de confiança personalizada e insira o seguinte:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Service": "logs.<your-region>.amazonaws.com"
          },
          "Action": "sts:AssumeRole"
        }
      ]
    }
    
  5. Anexe a política CWLtoFirehoseWrite à função.

  6. Nomeie a função como CWLtoFirehoseRole e clique em Criar função.

  7. Acesse CloudWatch > Registros > Grupos de registros.

  8. Selecione o grupo de registros do Gateway de API que você criou antes.

  9. Abra a guia Filtros de assinatura e clique em Criar.

  10. Escolha Criar filtro de assinatura do Amazon Kinesis Data Firehose.

  11. Faça as configurações a seguir:

    • Destino: fluxo de transmissão de entrega cwlogs-to-secops.
    • Conceder permissão: papel CWLtoFirehoseRole.
    • Nome do filtro: insira all-events.
    • Padrão de filtro: deixe em branco para enviar todos os eventos.
  12. Clique em Iniciar streaming.

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.