Coletar registros de acesso do AWS API Gateway
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)
- Acesse Console da AWS > API Gateway.
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
).
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
).
Clique em Salvar.
Configurar um feed no Google SecOps para ingerir registros do Amazon API Gateway
- Acesse Configurações do SIEM > Feeds.
- Clique em + Adicionar novo feed.
- No campo Nome do feed, insira
Amazon API Gateway - CloudWatch via Firehose
. - Selecione Amazon Data Firehose como o Tipo de origem.
- Selecione Amazon API Gateway como o Tipo de registro.
- Clique em Próxima.
- 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>
- Delimitador de divisão:
- Clique em Próxima.
- Revise a configuração do feed e clique em Enviar.
- Em Detalhes do feed, clique em Gerar chave secreta e copie a Chave secreta.
- Copie o URL do endpoint HTTPS do feed em Informações do endpoint.
- 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.
- Copie e salve a chave de API em um local seguro.
Configurar o Amazon Kinesis Data Firehose (direto para o Google SecOps)
- No console da AWS, acesse Kinesis > Data Firehose > Criar fluxo de entrega.
- 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.
- Clique em Criar fluxo de entrega. Por exemplo,
cwlogs-to-secops
.
Configurar permissões do IAM e assinar o grupo de registros
- No console da AWS, acesse IAM > Políticas > Criar política > JSON.
- 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.
Nomeie a política como
CWLtoFirehoseWrite
e clique em Criar política.Acesse IAM > Papéis > Criar papel.
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" } ] }
Anexe a política
CWLtoFirehoseWrite
à função.Nomeie a função como
CWLtoFirehoseRole
e clique em Criar função.Acesse CloudWatch > Registros > Grupos de registros.
Selecione o grupo de registros do Gateway de API que você criou antes.
Abra a guia Filtros de assinatura e clique em Criar.
Escolha Criar filtro de assinatura do Amazon Kinesis Data Firehose.
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.
- Destino: fluxo de transmissão de entrega
Clique em Iniciar streaming.
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.