Coletar registros do AWS CloudTrail
Versão do analisador: 30.0
Neste documento, descrevemos como coletar registros do AWS CloudTrail configurando um feed do Google Security Operations e como os campos de registro são mapeados para os campos do modelo de dados unificado (UDM) do Google SecOps.
Para mais informações, consulte Ingestão de dados no Google SecOps.
Uma implantação típica consiste no AWS CloudTrail e no feed do Google SecOps configurado para enviar registros ao Google SecOps. Sua implantação pode ser diferente da implantação típica descrita neste documento. A implantação contém os seguintes componentes:
AWS CloudTrail: a plataforma que coleta registros.
AWS S3: a plataforma que armazena registros.
Feed do Google SecOps: o feed do Google SecOps que busca registros do AWS S3 e os grava no Google SecOps.
Google SecOps: a plataforma que retém e analisa os registros do AWS CloudTrail.
Um rótulo de ingestão identifica o analisador que normaliza dados de registro brutos
para o formato UDM estruturado. As informações neste documento se aplicam ao
analisador com o rótulo de ingestão AWS_CLOUDTRAIL.
Antes de começar
Verifique se você tem os pré-requisitos a seguir:
- Conta da AWS
- os pré-requisitos para usar o AWS CloudTrail sejam atendidos. Para mais informações, consulte Configuração do AWS CloudTrail.
- Todos os sistemas na arquitetura de implantação usam o fuso horário UTC.
Etapas básicas para ingerir registros do S3 com o SQS
Nesta seção, descrevemos as etapas básicas para ingerir registros do AWS CloudTrail na sua instância do Google SecOps. As etapas descrevem como fazer isso usando o Amazon S3 com o Amazon SQS como o tipo de origem do feed.
Configurar o AWS CloudTrail e o S3
Neste procedimento, você vai configurar os registros do AWS CloudTrail para serem gravados em um bucket do S3.
- No console da AWS, pesquise CloudTrail.
- Clique em Criar trilha.
- Dê um Nome para a trilha.
- Selecione Criar novo bucket do S3. Também é possível usar um bucket do S3.
- Dê um nome para o alias do AWS KMS ou escolha uma chave do AWS KMS.
- Deixe as outras configurações como padrão e clique em Próxima.
- Escolha Tipo de evento, adicione Eventos de dados conforme necessário e clique em Próxima.
- Revise as configurações em Revisar e criar e clique em Criar trilha.
- No console da AWS, pesquise Buckets do Amazon S3.
- Clique no bucket de registros recém-criado e selecione a pasta AWSLogs. Em seguida, clique em Copy S3 URI e salve-o para usar nas próximas etapas.
Configurar uma fila padrão do SQS e o SNS
Se você usar uma fila do SQS, ela precisará ser uma fila padrão, não uma fila FIFO.
- Ative o AWS CloudTrail e configure-o para enviar registros a um bucket do S3 usando uma trilha nova ou atual.
- Abra o console do AWS SNS e crie um novo tópico padrão. Dê um nome a ele, por exemplo, CloudTrail-Notification-Topic.
Crie uma fila do SQS usando o console do AWS SQS, por exemplo, CloudTrail-Notification-Queue, e atualize a política de acesso para permitir que o ARN do tópico do SNS envie mensagens. Para detalhes sobre como criar filas do SQS, consulte Primeiros passos com o Amazon SQS.
Exemplo de snippet de política do SQS:
{ "Version": "2012-10-17", "Id": `PolicyForSNS`, "Statement": [ { "Sid": "AllowSNS", "Effect": "Allow", "Principal": { "Service": "sns.amazonaws.com" }, "Action": "SQS:SendMessage", "Resource": "arn:aws:sqs:REGION:ACCOUNT_ID:CloudTrail-Notification-Queue", "Condition": { "ArnEquals": { "aws:SourceArn": "arn:aws:sns:REGION:ACCOUNT_ID:CloudTrail-Notification-Topic"} } } ] }Acesse Tópico do SNS → Assinaturas → Criar assinatura, defina o protocolo como SQS e o endpoint como o ARN da fila do SQS.
O CloudTrail não envia novos registros para o SNS de forma nativa. Para ativar as notificações, use um seletor de eventos do CloudTrail para eventos de gerenciamento ou a integração do CloudTrail com o CloudWatch Logs e crie uma regra de evento do CloudWatch que acione notificações definindo um tópico do SNS como destino. Para mais detalhes, consulte Configurar notificações no bucket do S3.
Exemplo de padrão de evento:
{ "source": ["aws.s3"], "detail-type": ["AWS API Call via CloudTrail"], "detail": { "eventName": ["PutObject"], "requestParameters": { "bucketName": [`CloudTrail-Notification-Topic`] } } }Verifique se os papéis ou as políticas do IAM permitem que o CloudWatch Events publique no SNS e se o SNS tem permissão para enviar mensagens ao SQS.
Configurar o usuário do AWS IAM
Configure um usuário do IAM da AWS que o Google SecOps usará para acessar a fila do SQS (se usada) e o bucket do S3.
- No console da AWS, pesquise IAM.
- Clique em Usuários e, na tela seguinte, em Criar usuários.
- Dê um nome ao usuário, por exemplo, chronicle-feed-user, e selecione Provide user access to the AWS Management Console.
- Selecione Anexar políticas atuais diretamente e selecione AmazonS3ReadOnlyAccess ou AmazonS3FullAccess, conforme necessário. AmazonS3FullAccess será usado se o Google SecOps precisar limpar os buckets do S3 depois de ler os registros para otimizar os custos de armazenamento do AWS S3.
- Como alternativa recomendada à etapa anterior, é possível restringir ainda mais o acesso apenas ao bucket do S3 especificado criando uma política personalizada. Clique em Criar política e siga a documentação da AWS para criar uma política personalizada.
- Ao aplicar uma política, inclua
sqs:DeleteMessage. O Google SecOps não poderá excluir mensagens se a permissãosqs:DeleteMessagenão estiver anexada à fila do SQS. Todas as mensagens são acumuladas no lado da AWS, o que causa um atraso, já que o Google SecOps tenta transferir os mesmos arquivos repetidamente. - Clique em Próxima:tags.
- Adicione tags, se necessário, e clique em Próxima:revisar.
- Revise a configuração e clique em Criar usuário.
- Depois que o usuário for criado, acesse a guia Credenciais de segurança e clique em Criar chave de acesso.
- Escolha CLI e clique em Próximo:tags.
- Adicione as tags necessárias e clique em Criar chave de acesso: revisar.
Copie o ID da chave de acesso e a chave de acesso secreta do usuário criado para usar na próxima etapa.
Para encontrar o
SubjectID, siga estas etapas:- Inicie o processo de configuração do feed do AWS CloudTrail no Google SecOps.
- Acesse o bucket designado do Amazon S3 e analise os registros do AWS CloudTrail em busca de entradas relacionadas à tentativa de configuração do feed.
- Abra a entrada de registro relevante e procure a seção
userIdentitynos dados JSON brutos. - Nessa seção, localize o campo
principalIdouuserName. O valor numérico listado aqui é seu SubjectID exclusivo. - Copie esse SubjectID e adicione-o à política de confiança do seu papel do IAM da AWS para conceder as permissões de acesso necessárias.
Como configurar permissões de chave do KMS
Uma chave do KMS é necessária para descriptografar os registros do CloudTrail, que são criptografados do lado do servidor. O AWS KMS oferece criptografia e segurança avançadas para dados sensíveis armazenados no Amazon S3.
- No console da AWS, pesquise serviço de gerenciamento de chaves (KMS).
- Clique em Criar chave:Próxima.
- Adicione um Alias para a chave. Se quiser, adicione uma Descrição e Tags. Clique em PRÓXIMO: REVISAR.
- Depois de revisar a configuração, clique em Próxima.
- Selecione os Usuários da chave que devem ter acesso a ela e clique em Concluir.
Configurar feeds
Há dois pontos de entrada diferentes para configurar feeds na plataforma do Google SecOps:
- Configurações > Gerenciamento de dados > Feeds > Adicionar novo feed (na plataforma somente SIEM, Configurações > Feeds > Adicionar novo feed)
- Hub de conteúdo > Pacotes de conteúdo > Comece já
Como configurar o feed do AWS CloudTrail
- Clique no pacote Amazon Cloud Platform.
- No tipo de registro AWS CloudTrail, especifique os seguintes valores:
Especifique valores para os seguintes campos:
- Tipo de origem: Amazon SQS V2
- Nome da fila: o nome da fila do SQS de onde os dados serão lidos.
- URI do S3: o URI do bucket.
s3://your-log-bucket-name/- Substitua
your-log-bucket-namepelo nome real do bucket do S3.
- Substitua
Opções de exclusão da origem: selecione a opção de exclusão de acordo com suas preferências de ingestão.
Idade máxima do arquivo: inclua arquivos modificados nos últimos dias. O padrão é 180 dias.
ID da chave de acesso da fila do SQS: uma chave de acesso da conta que é uma string alfanumérica de 20 caracteres.
Chave de acesso secreta da fila do SQS: uma chave de acesso de conta que é uma string alfanumérica de 40 caracteres.
Opções avançadas
- Nome do feed: um valor predefinido que identifica o feed.
- Namespace do recurso: namespace associado ao feed.
- Rótulos de ingestão: rótulos aplicados a todos os eventos desse feed.
Clique em Criar feed.
Para mais informações sobre como configurar vários feeds para diferentes tipos de registro nessa família de produtos, consulte Configurar feeds por produto.
Tipos de registro compatíveis do AWS CloudTrail
O analisador do AWS CloudTrail é compatível com os seguintes serviços:
- apigateway.amazonaws.com
- appconfig.amazonaws.com
- autoscaling.amazonaws.com
- cloud9.amazonaws.com
- cloudsearch.amazonaws.com
- cloudshell.amazonaws.com
- cloudtrail.amazonaws.com
- config.amazonaws.com
- devicefarm.amazonaws.com
- ds.amazonaws.com
- dynamodb.amazonaws.com
- ec2-instance-connect.amazonaws.com
- ec2.amazonaws.com
- ecr-public.amazonaws.com
- ecr.amazonaws.com
- ecs.amazonaws.com
- eks.amazonaws.com
- elasticache.amazonaws.com
- elasticloadbalancing.amazonaws.com
- firehose.amazonaws.com
- guardduty.amazonaws.com
- health.amazonaws.com
- iam.amazonaws.com
- imagebuilder.amazonaws.com
- kinesis.amazonaws.com
- kinesisanalytics.amazonaws.com
- kinesisvideo.amazonaws.com
- kms.amazonaws.com
- lambda.amazonaws.com
- logs.amazonaws.com
- macie2.amazonaws.com
- monitoring.amazonaws.com
- network-firewall.amazonaws.com
- organizations.amazonaws.com
- quicksight.amazonaws.com
- ram.amazonaws.com
- rds.amazonaws.com
- resource-explorer-2.amazonaws.com
- resource-groups.amazonaws.com
- route53-recovery-readiness.amazonaws.com
- route53.amazonaws.com
- route53domains.amazonaws.com
- route53resolver.amazonaws.com
- s3-outposts.amazonaws.com
- s3.amazonaws.com
- s3express.amazonaws.com
- secretsmanager.amazonaws.com
- securityhub.amazonaws.com
- ses.amazonaws.com
- signin.amazonaws.com
- ssm.amazonaws.com
- sts.amazonaws.com
- waf-regional.amazonaws.com
- waf.amazonaws.com
- wafv2.amazonaws.com
Formatos de registro do AWS CloudTrail compatíveis
O analisador do AWS CloudTrail é compatível com registros no formato JSON.
Registros de amostra compatíveis do AWS CloudTrail
JSON:
{ "Records": [{ "eventVersion": "1.08", "userIdentity": { "type": "AssumedRole", "principalId": "AROAXELJRGZMPHEYTK4Q4:redlock", "arn": "arn:aws:sts::111111111111:assumed-role/PrismaCloudReadOnlyRole/redlock", "accountId": "111111111111", "accessKeyId": "ASIAXELJRGZMNUCV3DC4", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AROAXELJRGZMPHEYTK4Q4", "arn": "arn:aws:iam::111111111111:role/PrismaCloudReadOnlyRole", "accountId": "111111111111", "userName": "PrismaCloudReadOnlyRole" }, "webIdFederationData": {}, "attributes": { "creationDate": "2021-07-01T03:20:01Z", "mfaAuthenticated": "false" } } }, "eventTime": "2021-07-01T03:35:42Z", "eventSource": "kms.amazonaws.com", "eventName": "DescribeKey", "awsRegion": "eu-west-1", "sourceIPAddress": "198.51.100.0", "userAgent": "aws-sdk-java/1.11.1025Linux/4.14.232-176.381.amzn2.x86_64OpenJDK_64-Bit_Server_VM/11.0.10+9java/11.0.10groovy/2.5.12vendor/AdoptOpenJDKcfg/retry-mode/legacy", "requestParameters": { "keyId": "11a011a1-1010-11a1-a0aa-c4e1a9367642" }, "responseElements": null, "requestID": "11a011a1-1010-11a1-a0aa-604ac86fc50e", "eventID": "11a011a1-1010-11a1-a0aa-17ef2bdeb889", "readOnly": true, "resources": [{ "accountId": "111111111111", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:eu-west-1:111111111111:key/11a011a1-1010-11a1-a0aa-c4e1a9367642" }], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "111111111111", "eventCategory": "Management" }] }
Para mais informações sobre o mapeamento de campos e o mapeamento de UDM, consulte Mapeamento de campos do AWS Cloudtrail.
Registro de alterações
Confira o registro de alterações deste analisador
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.