Recolha registos de acesso do gateway da API da AWS

Compatível com:

Este documento explica como carregar registos de acesso do Amazon API Gateway para o Google Security Operations através do AWS CloudWatch Logs e do Kinesis Data Firehose. O Amazon API Gateway fornece APIs REST e HTTP para criar e gerir APIs à escala. Os registos de acesso ajudam a monitorizar a utilização da API e a resolver problemas. Esta integração transmite estes registos para o Google SecOps para análise e monitorização.

Antes de começar

Certifique-se de que tem os seguintes pré-requisitos:

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

Ative o registo de acesso do Amazon API Gateway (para os registos do CloudWatch)

  1. Aceda a AWS Console > API Gateway.
  2. Para APIs REST:

    • Abra o Stage > Registos/rastreio > ative o Registo de acesso.
    • Formato de registo: 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 registos do CloudWatch Logs: escolha ou crie um grupo de registos (por exemplo, /aws/apigateway/access).

  3. Para APIs HTTP:

    • Selecione a sua API > Monitorizar > Registo.
    • Selecione Preparar > Editar.
    • Ative o Registo de acesso.
    • Use o mesmo formato de registo JSON que acima.
    • Grupo de registos do CloudWatch Logs: escolha ou crie um grupo de registos (por exemplo, /aws/apigateway/access).
  4. Clique em Guardar.

Configure um feed no Google SecOps para carregar registos do Amazon API Gateway

  1. Aceda a Definições do SIEM > Feeds.
  2. Clique em + Adicionar novo feed.
  3. No campo Nome do feed, introduza 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 registo.
  6. Clicar em Seguinte.
  7. Especifique valores para os seguintes parâmetros de entrada:
    • Delimitador de divisão: opcional n
    • Espaço de nomes de recursos: aws.api_gateway
    • Etiquetas de carregamento: por exemplo, source=apigw_access, aws_region=<your-region>
  8. Clicar em Seguinte.
  9. Reveja a configuração do feed e clique em Enviar.
  10. Nos Detalhes do feed, clique em Gerar chave secreta e copie a chave secreta.
  11. Copie o URL do ponto final HTTPS do feed em Informações do ponto final.
  12. Crie uma chave da API Google Cloud em APIs e serviços > Credenciais > Criar credenciais > Chave da API e restrinja-a à API Google SecOps.
  13. Copie e guarde a chave da API num local seguro.

Configure o Amazon Kinesis Data Firehose (diretamente para o Google SecOps)

  1. Na consola da AWS, aceda a Kinesis > Data Firehose > Criar stream de entrega.
  2. Indique os seguintes detalhes de configuração:
    • Origem: selecione Direct PUT ou outras origens.
    • Destino: escolha Ponto final HTTP.
    • URL do ponto final HTTP: introduza ENDPOINT_URL?key=API_KEY (use o URL do ponto final HTTPS do feed e a chave da API do passo anterior).
    • Método HTTP: selecione POST.
    • Chave de acesso: cole a chave secreta gerada no feed.
    • Sugestões de colocação no buffer: defina Buffer size = 1 MiB e Buffer interval = 60 segundos.
    • Compressão: selecione Desativada.
    • Cópia de segurança do S3: selecione Desativada.
    • Deixe as definições de nova tentativa e registo como predefinições.
  3. Clique em Criar stream de fornecimento. (Por exemplo, cwlogs-to-secops.)

Configure as autorizações do IAM e subscreva o grupo de registos

  1. Na consola da AWS, aceda a IAM > Políticas > Criar política > JSON.
    1. No editor JSON, introduza 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. Dê um nome à política CWLtoFirehoseWrite e clique em Criar política.

  3. Aceda a IAM > Funções > Criar função.

  4. Selecione Política de confiança personalizada e introduza 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. Dê o nome CWLtoFirehoseRole à função e clique em Criar função.

  7. Aceda a CloudWatch > Registos > Grupos de registos.

  8. Selecione o grupo de registos do API Gateway que criou anteriormente.

  9. Abra o separador Filtros de subscrição e clique em Criar.

  10. Escolha Criar filtro de subscrição do Amazon Kinesis Data Firehose.

  11. Configure o seguinte:

    • Destino: stream de fornecimento cwlogs-to-secops.
    • Conceder autorização: função CWLtoFirehoseRole.
    • Nome do filtro: introduza 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 da Google SecOps.