Validando a integridade do arquivo de CloudTrail log com o AWS CLI - AWS CloudTrail

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Validando a integridade do arquivo de CloudTrail log com o AWS CLI

Para validar os registros com o AWS Command Line Interface, use o CloudTrail validate-logs comando. O comando usa os arquivos de resumo fornecidos ao bucket do Amazon S3 para executar a validação. Para obter informações sobre os arquivos de resumo, consulte CloudTrail estrutura do arquivo digest.

O AWS CLI permite que você detecte os seguintes tipos de alterações:

  • Modificação ou exclusão de arquivos de CloudTrail log

  • Modificação ou exclusão de arquivos de CloudTrail resumo

  • Modificação ou exclusão de ambos

nota

O AWS CLI valida somente arquivos de log que são referenciados por arquivos de resumo. Para obter mais informações, consulte Verificando se um arquivo específico foi entregue por CloudTrail.

Pré-requisitos

Para validar a integridade do arquivo de log com o AWS CLI, as seguintes condições devem ser atendidas:

  • Você deve ter conectividade on-line com AWS.

  • Você precisa ter acesso de leitura ao bucket do Amazon S3 que contém os arquivos de resumo e de log.

  • Os arquivos de resumo e log não devem ter sido movidos do local original do Amazon S3 CloudTrail onde foram entregues.

nota

Os arquivos de log que foram baixados para o disco local não podem ser validados com a AWS CLI. Para obter informações sobre como criar suas próprias ferramentas para validação, consulte Implementações personalizadas da validação da integridade do arquivo de CloudTrail log.

validate-logs

Sintaxe

Veja a seguir a sintaxe de validate-logs. Os parâmetros opcionais são mostrados entre colchetes.

aws cloudtrail validate-logs --trail-arn <trailARN> --start-time <start-time> [--end-time <end-time>] [--s3-bucket <amzn-s3-demo-bucket>] [--s3-prefix <prefix>] [--account-id <account-id>] [--verbose]

nota

O comando validate-logs é específico da região. Você deve especificar a opção --region global para validar os registros de um determinado Região da AWS.

Opções

Veja a seguir as opções de linha de comando de validate-logs. As opções --trail-arn e --start-time são obrigatórias. A opção --account-id também é necessária para trilhas organizacionais.

--start-time

Especifica que os arquivos de log entregues em ou após o valor do UTC timestamp especificado serão validados. Exemplo: 2015-01-08T05:21:42Z.

--end-time

Opcionalmente, especifica que os arquivos de log entregues em ou antes do valor do UTC carimbo de data/hora especificado serão validados. O valor padrão é a UTC hora atual (Date.now()). Exemplo: 2015-01-08T12:31:41Z.

nota

Para o período especificado, o comando validate-logs verifica somente os arquivos de log que são referenciados em seus arquivos de resumo correspondentes. Nenhum outro arquivo de log no bucket do Amazon S3 é verificado. Para obter mais informações, consulte Verificando se um arquivo específico foi entregue por CloudTrail.

--s3-bucket

Opcionalmente, especifica o bucket do Amazon S3 em que os arquivos de resumo são armazenados. Se um nome de bucket não for especificado, eles o AWS CLI recuperarão DescribeTrails() chamando.

--s3-prefix

Opcionalmente, especifica o prefixo do Amazon S3 em que os arquivos de resumo são armazenados. Se não for especificado, ele o AWS CLI recuperará DescribeTrails() chamando.

nota

Você deve usar essa opção somente se o prefixo atual for diferente daquele que estava em uso durante o período que você especificar.

--account-id

Opcionalmente, especifica a conta para validar os logs. Esse parâmetro é necessário para trilhas da organização para validação de logs da conta específica dentro de uma organização.

--trail-arn

Especifica o Amazon Resource Name (ARN) da trilha a ser validada. ARNSegue o formato de uma trilha.

arn:aws:cloudtrail:us-east-2:111111111111:trail/MyTrailName
nota

Para obter a trilha ARN para uma trilha, você pode usar o describe-trails comando antes de corrervalidate-logs.

Talvez você queira especificar o nome e o prefixo do bucket, além da trilha, ARN caso os arquivos de log tenham sido entregues a mais de um bucket no intervalo de tempo especificado, e você queira restringir a validação aos arquivos de log em apenas um dos buckets.

--verbose

Opcionalmente, fornece informações de validação de cada arquivo de log ou de compilação no período especificado. Os resultados indicam se o arquivo permanece inalterado ou foi modificado ou excluído. No modo não detalhado (o padrão), as informações são retornadas somente para os casos em que havia uma falha de validação.

Exemplo

O exemplo a seguir valida os arquivos de log do horário de início especificado até o presente, usando o bucket do Amazon S3 configurado para a trilha atual e especificando os resultados detalhados.

aws cloudtrail validate-logs --start-time 2015-08-27T00:00:00Z --end-time 2015-08-28T00:00:00Z --trail-arn arn:aws:cloudtrail:us-east-2:111111111111:trail/my-trail-name --verbose

Como o validate-logs funciona

O comando validate-logs começa validando o arquivo de resumo mais recente no período especificado. Primeiro, ele verifica se o arquivo de resumo foi baixado do local ao qual ele afirma que pertence. Em outras palavras, se o arquivo de resumo do CLI download do local df1 do S3p1, validate-logs verificará isso. p1 == df1.digestS3Bucket + '/' + df1.digestS3Object

Se a assinatura do arquivo de resumo for válida, ela verificará o valor de hash de cada um dos logs referenciados no arquivo de resumo. Então, o comando volta no tempo, validando os arquivos de resumo anteriores e seus arquivos de log referenciados sucessivamente. Ele continuará até que o valor especificado para start-time seja atingido ou até que a cadeia de compilação termine. Se um arquivo de resumo é ausente ou não é válido, o período que não pode ser validado é indicado nos resultados.

Resultados da validação

Os resultados da validação começam com um cabeçalho de resumo no seguinte formato:

Validating log files for trail trail_ARN between time_stamp and time_stamp

Cada linha dos resultados principais contém os resultados da validação para um único arquivo de resumo ou de log no seguinte formato:

<Digest file | Log file> <S3 path> <Validation Message>

A tabela a seguir descreve as possíveis mensagens de validação do arquivo de log e de compilação.

Tipo de arquivo Mensagem de validação Descrição
Digest file valid A assinatura do arquivo de resumo é válida. Os arquivos de log aos quais ela faz referência podem ser verificados. Essa mensagem é incluída apenas no modo detalhado.
Digest file INVALID: has been moved from its original location O bucket do S3 ou o objeto do S3 do qual o arquivo de resumo foi recuperado não corresponde aos locais do bucket do S3 ou do objeto do S3 que são registrados no próprio arquivo de resumo.
Digest file INVALID: invalid format O formato do arquivo de resumo é inválido. Os arquivos de log correspondentes ao período que o arquivo de resumo representa não podem ser validados.
Digest file INVALID: not found O arquivo de resumo não foi encontrado. Os arquivos de log correspondentes ao período que o arquivo de resumo representa não podem ser validados.
Digest file INVALID: public key not found for fingerprint fingerprint A chave pública correspondente à impressão digital registrada no arquivo de resumo não foi encontrada. O arquivo de resumo não pode ser validado.
Digest file INVALID: signature verification failed A assinatura do arquivo de resumo não é válida. Como o arquivo de resumo não é válido, os arquivos de log aos quais ele faz referência não podem ser validados e nenhuma afirmação pode ser feita sobre a API atividade neles contida.
Digest file INVALID: Unable to load PKCS #1 key with fingerprint fingerprint Como a chave pública DER codificada no formato PKCS #1 com a impressão digital especificada não pôde ser carregada, o arquivo de resumo não pode ser validado.
Log file valid O arquivo de log foi validado e não foi modificado desde o horário do fornecimento. Essa mensagem é incluída apenas no modo detalhado.
Log file INVALID: hash value doesn't match O hash do arquivo de log não é correspondente. O arquivo de log foi modificado após a entrega por CloudTrail.
Log file INVALID: invalid format O formato do arquivo de log é inválido. O arquivo de log não pode ser validado.
Log file INVALID: not found O arquivo de log não foi encontrado e não pode ser validado.

A saída inclui informações resumidas sobre os resultados retornados.

Exemplos de resultados

Detalhado

O exemplo de comando validate-logs usa o sinalizador --verbose e produz o exemplo de resultado a seguir. [...] indica que o resultado de amostra foi abreviado.

aws cloudtrail validate-logs --trail-arn arn:aws:cloudtrail:us-east-2:111111111111:trail/example-trail-name --start-time 2015-08-31T22:00:00Z --end-time 2015-09-01T19:17:29Z --verbose
Validating log files for trail arn:aws:cloudtrail:us-east-2:111111111111:trail/example-trail-name between 2015-08-31T22:00:00Z and 2015-09-01T19:17:29Z Digest file s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail-Digest/us-east-2/2015/09/01/111111111111_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150901T201728Z.json.gz valid Log file s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1925Z_WZZw1RymnjCRjxXc.json.gz valid Log file s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1915Z_POuvV87nu6pfAV2W.json.gz valid Log file s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1930Z_l2QgXhAKVm1QXiIA.json.gz valid Log file s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1920Z_eQJteBBrfpBCqOqw.json.gz valid Log file s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1950Z_9g5A6qlR2B5KaRdq.json.gz valid Log file s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1920Z_i4DNCC12BuXd6Ru7.json.gz valid Log file s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1915Z_Sg5caf2RH6Jdx0EJ.json.gz valid Digest file s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail-Digest/us-east-2/2015/09/01/111111111111_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150901T191728Z.json.gz valid Log file s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/09/01/111111111111_CloudTrail_us-east-2_20150901T1910Z_YYSFiuFQk4nrtnEW.json.gz valid [...] Log file s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail/us-east-2/2015/09/01/144218288521_CloudTrail_us-east-2_20150901T1055Z_0Sfy6m9f6iBzmoPF.json.gz valid Log file s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail/us-east-2/2015/09/01/144218288521_CloudTrail_us-east-2_20150901T1040Z_lLa3QzVLpOed7igR.json.gz valid Digest file s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail-Digest/us-east-2/2015/09/01/144218288521_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150901T101728Z.json.gz INVALID: signature verification failed Digest file s3://amzn-s3-demo-bucketAWSLogs/144218288521/CloudTrail-Digest/us-east-2/2015/09/01/144218288521_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150901T091728Z.json.gz valid Log file s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail/us-east-2/2015/09/01/144218288521_CloudTrail_us-east-2_20150901T0830Z_eaFvO3dwHo4NCqqc.json.gz valid Digest file s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail-Digest/us-east-2/2015/09/01/144218288521_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150901T081728Z.json.gz valid Digest file s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail-Digest/us-east-2/2015/09/01/144218288521_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150901T071728Z.json.gz valid [...] Log file s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/08/31/111111111111_CloudTrail_us-east-2_20150831T2245Z_mbJkEO5kNcDnVhGh.json.gz valid Log file s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/08/31/111111111111_CloudTrail_us-east-2_20150831T2225Z_IQ6kXy8sKU03RSPr.json.gz valid Log file s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/08/31/111111111111_CloudTrail_us-east-2_20150831T2230Z_eRPVRTxHQ5498ROA.json.gz valid Log file s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail/us-east-2/2015/08/31/111111111111_CloudTrail_us-east-2_20150831T2255Z_IlWawYZGvTWB5vYN.json.gz valid Digest file s3://amzn-s3-demo-bucket/AWSLogs/111111111111/CloudTrail-Digest/us-east-2/2015/08/31/111111111111_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150831T221728Z.json.gz valid Results requested for 2015-08-31T22:00:00Z to 2015-09-01T19:17:29Z Results found for 2015-08-31T22:17:28Z to 2015-09-01T20:17:28Z: 22/23 digest files valid, 1/23 digest files INVALID 63/63 log files valid

Não detalhado

O exemplo de comando validate-logs não usa o sinalizador --verbose. No exemplo de resultado a seguir, um erro foi encontrado. Somente o cabeçalho, o erro e as informações resumidas são retornados.

aws cloudtrail validate-logs --trail-arn arn:aws:cloudtrail:us-east-2:111111111111:trail/example-trail-name --start-time 2015-08-31T22:00:00Z --end-time 2015-09-01T19:17:29Z
Validating log files for trail arn:aws:cloudtrail:us-east-2:111111111111:trail/example-trail-name between 2015-08-31T22:00:00Z and 2015-09-01T19:17:29Z Digest file s3://amzn-s3-demo-bucket/AWSLogs/144218288521/CloudTrail-Digest/us-east-2/2015/09/01/144218288521_CloudTrail-Digest_us-east-2_example-trail-name_us-east-2_20150901T101728Z.json.gz INVALID: signature verification failed Results requested for 2015-08-31T22:00:00Z to 2015-09-01T19:17:29Z Results found for 2015-08-31T22:17:28Z to 2015-09-01T20:17:28Z: 22/23 digest files valid, 1/23 digest files INVALID 63/63 log files valid

Verificando se um arquivo específico foi entregue por CloudTrail

Para verificar se um arquivo específico em seu bucket foi entregue por CloudTrail, execute validate-logs no modo detalhado durante o período que inclui o arquivo. Se o arquivo aparecer na saída devalidate-logs, então o arquivo foi entregue por CloudTrail.