Como o AWS CloudTrail usa o AWS KMS - AWS Key Management Service

Como o AWS CloudTrail usa o AWS KMS

É possível usar o AWS CloudTrail para registrar chamadas à API da AWS e outras atividades da sua Conta da AWS e salvar as informações registradas nos arquivos de log em um bucket do Amazon Simple Storage Service (Amazon S3) de sua escolha. Por padrão, os arquivos de log entregues pelo CloudTrail no seu bucket do S3 são criptografados usando a criptografia no lado do servidor com chaves de criptografia gerenciadas pelo Amazon S3 (SSE-S3). Mas você pode optar por usar a criptografia do lado do servidor com uma chave do KMS (SSE-KMS). Para saber como criptografar seus arquivos de log do CloudTrail com o AWS KMS, consulte Criptografar arquivos de log do CloudTrail com AWS KMS keys (SSE-KMS) no Guia do usuário do AWS CloudTrail.

Importante

O AWS CloudTrail e o Amazon S3 só oferece suporte a AWS KMS keys simétricas. Não é possível usar uma chave do KMS assimétrica para criptografar logs do CloudTrail. Para obter ajuda para determinar se uma chave do KMS é simétrica ou assimétrica, consulte Identificar chaves do KMS assimétricas.

Você não paga uma cobrança por uso de chave quando o CloudTrail lê ou grava arquivos de log criptografados com uma chave SSE-KMS. No entanto, você paga uma taxa de uso de chave ao acessar arquivos de log do CloudTrail criptografados com uma chave SSE-KMS. Para obter mais informações sobre a definição de preço do AWS KMS, consulte Definição de preço do AWS Key Management Service. Para obter informações sobre o preço do CloudTrail, consulte Preços do AWS CloudTrail e Gerenciar custos do no Manual do usuário do AWS CloudTrail.

Entender quando sua chave do KMS é usada

A criptografia dos arquivos de log do CloudTrail com o AWS KMS baseia-se no recurso do Amazon S3 chamado criptografia no lado do servidor uma AWS KMS key (SSE-KMS). Para saber mais sobre o SSE-KMS, consulte Como o Amazon Simple Storage Service (Amazon S3) usa o AWS KMS neste guia ou Proteção de dados usando a criptografia no lado do servidor com chaves gerenciadas pelo KMS (SSE-KMS) no Guia do usuário do Amazon Simple Storage Service.

Ao configurar o AWS CloudTrail para usar o SSE-KMS para criptografar seus arquivos de log, o CloudTrail e o Amazon S3 usam suas AWS KMS keys quando você executa determinadas ações com esses serviços. As seções a seguir explicam quando e como esses serviços podem usar a chave do KMS e fornecem informações adicionais que podem validar essa explicação.

Configurar o CloudTrail para criptografar arquivos de log com o AWS KMS key

Ao atualizar a configuração do CloudTrail para usar a chave do KMS, o CloudTrail envia uma solicitação GenerateDataKey ao AWS KMS para verificar se a chave do KMS existe e se o CloudTrail tem permissão para usá-la para criptografia. O CloudTrail não usa a chave de dados resultante.

A solicitação GenerateDataKey inclui as seguintes informações para o contexto de criptografia:

  • O Amazon Resource Name (ARN) da trilha do CloudTrail

  • O ARN do bucket do S3 e o caminho onde são entregues os arquivos de log do CloudTrail

A solicitação GenerateDataKey resulta em uma entrada em seus logs do CloudTrail semelhante ao exemplo a seguir. Ao ver uma entrada de log como essa, é possível determinar que o CloudTrail ( ) chamou a operação do AWS KMS ( ) GenerateDataKey) ( ) para uma trilha específica ( ). O AWS KMS criou a chave de dados sob uma chave do KMS específica ( ).

nota

Talvez você precise rolar para a direita para ver algumas das legendas no seguinte exemplo de entrada de log.

{ "eventVersion": "1.02", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::086441151436:user/AWSCloudTrail", "accountId": "086441151436", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "userName": "AWSCloudTrail", "sessionContext": {"attributes": { "mfaAuthenticated": "false", "creationDate": "2015-11-11T21:15:33Z" }}, "invokedBy": "internal.amazonaws.com" }, "eventTime": "2015-11-11T21:15:33Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "internal.amazonaws.com", "userAgent": "internal.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:111122223333:alias/ExampleAliasForCloudTrailKMS key", "encryptionContext": { "aws:cloudtrail:arn": "arn:aws:cloudtrail:us-west-2:111122223333:trail/Default", "aws:s3:arn": "arn:aws:s3:::example-bucket-for-CT-logs/AWSLogs/111122223333/" }, "keySpec": "AES_256" }, "responseElements": null, "requestID": "581f1f11-88b9-11e5-9c9c-595a1fb59ac0", "eventID": "3cdb2457-c035-4890-93b6-181832b9e766", "readOnly": true, "resources": [{ "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333" }], "eventType": "AwsServiceEvent", "recipientAccountId": "111122223333" }

O CloudTrail coloca um arquivo de log no seu bucket do S3

Todaa as vezes que o CloudTrail coloca um arquivo de log no seu bucket do S3, o Amazon S3 envia uma solicitação GenerateDataKey ao AWS KMS em nome do CloudTrail. Em resposta a essa solicitação, o AWS KMS gera uma chave de dados exclusiva e envia ao Amazon S3 duas cópias da chave de dados, uma em texto simples e uma criptografada com a chave do KMS especificada. O Amazon S3 usa a chave de dados em texto simples para criptografar o arquivo de log do CloudTrail e remove essa chave de dados em tempo simples da memória imediatamente logo após o uso. O Amazon S3 armazena a chave de dados criptografada como metadados com o arquivo de log criptografado do CloudTrail.

A solicitação GenerateDataKey inclui as seguintes informações para o contexto de criptografia:

Cada solicitação GenerateDataKey resulta em uma entrada em seus logs do CloudTrail semelhante ao exemplo a seguir. Ao ver uma entrada de log como essa, é possível determinar que o CloudTrail ( ) chamou a operação AWS KMS ( ) GenerateDataKey ( ) para uma trilha específica ( ) para proteger um determinado arquivo de log ( ). O AWS KMS criou a chave de dados na chave do KMS ( ), mostrada duas vezes na mesma entrada de log.

nota

Talvez você precise rolar para a direita para ver algumas das legendas no seguinte exemplo de entrada de log.

{ "eventVersion": "1.02", "userIdentity": { "type": "AssumedRole", "principalId": "AROACKCEVSQ6C2EXAMPLE:i-34755b85", "arn": "arn:aws:sts::086441151436:assumed-role/AWSCloudTrail/i-34755b85", "accountId": "086441151436", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2015-11-11T20:45:25Z" }, "sessionIssuer": { "type": "Role", "principalId": "AROACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::086441151436:role/AWSCloudTrail", "accountId": "086441151436", "userName": "AWSCloudTrail" } }, "invokedBy": "internal.amazonaws.com" }, "eventTime": "2015-11-11T21:15:58Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "internal.amazonaws.com", "userAgent": "internal.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:cloudtrail:arn": "arn:aws:cloudtrail:us-west-2:111122223333:trail/Default", "aws:s3:arn": "arn:aws:s3:::example-bucket-for-CT-logs/AWSLogs/111122223333/CloudTrail/us-west-2/2015/11/11/111122223333_CloudTrail_us-west-2_20151111T2115Z_7JREEBimdK8d2nC9.json.gz" }, "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "keySpec": "AES_256" }, "responseElements": null, "requestID": "66f3f74a-88b9-11e5-b7fb-63d925c72ffe", "eventID": "7738554f-92ab-4e27-83e3-03354b1aa898", "readOnly": true, "resources": [{ "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333" }], "eventType": "AwsServiceEvent", "recipientAccountId": "111122223333" }

Um arquivo de log criptografado é recebido do seu bucket do S3

Cada vez que você recebe um arquivo de log do CloudTrail criptografado do seu bucket do S3, o Amazon S3 envia uma solicitação Decrypt ao AWS KMS em seu nome para descriptografar a chave de dados criptografada do arquivo de log. Em resposta a essa solicitação, o AWS KMS usa sua chave do KMS para descriptografar a chave de dados e depois envia a chave de dados de texto simples para o Amazon S3. O Amazon S3 usa a chave de dados em texto simples para descriptografar o arquivo de log do CloudTrail e remove essa chave de dados em tempo simples da memória imediatamente logo após o uso.

A solicitação Decrypt inclui as seguintes informações para o contexto de criptografia:

Cada solicitação Decrypt resulta em uma entrada em seus logs do CloudTrail semelhante ao exemplo a seguir. Ao ver uma entrada de log como essa, você pode determinar que um usuário do IAM na sua Conta da AWS ( ) chamou a operação AWS KMS ( ) Decrypt ( ) para uma trilha específica ( ) e um arquivo de log específico ( ). O AWS KMS descriptografou a chave de dados sob uma chave do KMS específica ( ).

nota

Talvez você precise rolar para a direita para ver algumas das legendas no seguinte exemplo de entrada de log.

{ "eventVersion": "1.02", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::111122223333:user/cloudtrail-admin", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "cloudtrail-admin", "sessionContext": {"attributes": { "mfaAuthenticated": "false", "creationDate": "2015-11-11T20:48:04Z" }}, "invokedBy": "signin.amazonaws.com" }, "eventTime": "2015-11-11T21:20:52Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "internal.amazonaws.com", "userAgent": "internal.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:cloudtrail:arn": "arn:aws:cloudtrail:us-west-2:111122223333:trail/Default", "aws:s3:arn": "arn:aws:s3:::example-bucket-for-CT-logs/AWSLogs/111122223333/CloudTrail/us-west-2/2015/11/11/111122223333_CloudTrail_us-west-2_20151111T2115Z_7JREEBimdK8d2nC9.json.gz" } }, "responseElements": null, "requestID": "16a0590a-88ba-11e5-b406-436f15c3ac01", "eventID": "9525bee7-5145-42b0-bed5-ab7196a16daa", "readOnly": true, "resources": [{ "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333" }], "eventType": "AwsApiCall", "recipientAccountId": "111122223333" }