Recolha registos de acesso do gateway da API da AWS
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)
- Aceda a AWS Console > API Gateway.
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
).
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
).
Clique em Guardar.
Configure um feed no Google SecOps para carregar registos do Amazon API Gateway
- Aceda a Definições do SIEM > Feeds.
- Clique em + Adicionar novo feed.
- No campo Nome do feed, introduza
Amazon API Gateway - CloudWatch via Firehose
. - Selecione Amazon Data Firehose como o Tipo de origem.
- Selecione Amazon API Gateway como o Tipo de registo.
- Clicar em Seguinte.
- 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>
- Delimitador de divisão: opcional
- Clicar em Seguinte.
- Reveja a configuração do feed e clique em Enviar.
- Nos Detalhes do feed, clique em Gerar chave secreta e copie a chave secreta.
- Copie o URL do ponto final HTTPS do feed em Informações do ponto final.
- Crie uma chave da API Google Cloud em APIs e serviços > Credenciais > Criar credenciais > Chave da API e restrinja-a à API Google SecOps.
- Copie e guarde a chave da API num local seguro.
Configure o Amazon Kinesis Data Firehose (diretamente para o Google SecOps)
- Na consola da AWS, aceda a Kinesis > Data Firehose > Criar stream de entrega.
- 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.
- Clique em Criar stream de fornecimento. (Por exemplo,
cwlogs-to-secops
.)
Configure as autorizações do IAM e subscreva o grupo de registos
- Na consola da AWS, aceda a IAM > Políticas > Criar política > JSON.
- 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.
Dê um nome à política
CWLtoFirehoseWrite
e clique em Criar política.Aceda a IAM > Funções > Criar função.
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" } ] }
Anexe a política
CWLtoFirehoseWrite
à função.Dê o nome
CWLtoFirehoseRole
à função e clique em Criar função.Aceda a CloudWatch > Registos > Grupos de registos.
Selecione o grupo de registos do API Gateway que criou anteriormente.
Abra o separador Filtros de subscrição e clique em Criar.
Escolha Criar filtro de subscrição do Amazon Kinesis Data Firehose.
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.
- Destino: stream de fornecimento
Clique em Iniciar streaming.
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.