Cómo AWS CloudTrail usa AWS KMS - AWS CloudTrail

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Cómo AWS CloudTrail usa AWS KMS

En esta sección se describe cómo AWS KMS funciona un CloudTrail registro cifrado con una clave SSE-KMS.

importante

AWS CloudTrail y Amazon S3 solo son compatibles con sistemas simétricos AWS KMS keys. No puede utilizar una clave KMS asimétrica para cifrar sus registros. CloudTrail Para obtener ayuda para determinar si una clave de KMS es simétrica o asimétrica, consulte Identificación de distintos tipos de claves en la Guía para desarrolladores de AWS Key Management Service .

No paga ningún cargo por el uso de claves cuando CloudTrail lee o escribe archivos de registro cifrados con una clave SSE-KMS. Sin embargo, paga un cargo por el uso de la clave cuando accede a los archivos de CloudTrail registro cifrados con una clave SSE-KMS. Para obtener información sobre AWS KMS los precios, consulte AWS Key Management Service Precios. Para obtener información sobre precios de CloudTrail , consulte los precios de AWS CloudTrail.

Comprenda cuándo se usa su clave KMS para su ruta

El cifrado de archivos de CloudTrail registro AWS KMS se basa en la función de Amazon S3 denominada cifrado del lado del servidor con un AWS KMS key (SSE-KMS). Para obtener más información sobre SSE-KMS, consulte Uso del cifrado del lado del servidor con AWS KMS claves (SSE-KMS) en la Guía del usuario de Amazon Simple Storage Service.

Cuando configura AWS CloudTrail el SSE-KMS para cifrar sus archivos de registro y Amazon CloudTrail S3 lo usa AWS KMS keys cuando realiza determinadas acciones con esos servicios. En las secciones siguientes se explica cuándo y cómo dichos servicios pueden utilizar su clave KMS y se proporciona información adicional que puede utilizar para validar esta explicación.

Se configura CloudTrail para cifrar los archivos de registro con su AWS KMS key

Al actualizar la CloudTrail configuración para usar la clave de KMS, CloudTrail envía una GenerateDataKeysolicitud AWS KMS para comprobar que la clave de KMS existe y que CloudTrail tiene permiso para utilizarla con fines de cifrado. CloudTrail no utiliza la clave de datos resultante.

La solicitud GenerateDataKey incluye la siguiente información para el contexto de cifrado:

La GenerateDataKey solicitud da como resultado una entrada en CloudTrail los registros similar a la del siguiente ejemplo. Si ve una entrada de registro como esta, puede determinar que CloudTrail se ha realizado la AWS KMS GenerateDataKey operación para un registro específico. AWS KMS creó la clave de datos con una clave de KMS específica.

{ "eventVersion": "1.09", "userIdentity": { "type": "AWSService", "invokedBy": "cloudtrail.amazonaws.com" }, "eventTime": "2024-12-06T20:14:46Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-east-1", "sourceIPAddress": "cloudtrail.amazonaws.com", "userAgent": "cloudtrail.amazonaws.com", "requestParameters": { "keySpec": "AES_256", "keyId": "arn:aws:kms:us-east-1:123456789012:key/example1-6736-4661-bf00-exampleeb770", "encryptionContext": { "aws:cloudtrail:arn": "arn:aws:cloudtrail:us-east-1:123456789012:trail/management-events", "aws:s3:arn": "arn:aws:s3:::amzn-s3-demo-logging-bucket-123456789012-9af1fb49/AWSLogs/123456789012/CloudTrail/us-east-1/2024/12/06/123456789012_CloudTrail_us-east-1_20241206T2010Z_TO50OLMG1hIQ1png.json.gz" } }, "responseElements": null, "requestID": "a0555e85-7e8a-4765-bd8f-2222295558e1", "eventID": "e4f3557e-7dbd-4e37-a00a-d86c137d1111", "readOnly": true, "resources": [ { "accountId": "123456789012", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:123456789012:key/example1-6736-4661-bf00-exampleeb770" }], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "123456789012", "sharedEventID": "ce71d6be-0846-498e-851f-111a1af9078f", "eventCategory": "Management" }

CloudTrail coloca un archivo de registro en su bucket de S3

Cada vez que CloudTrail coloca un archivo de registro en su bucket de S3, Amazon S3 envía una GenerateDataKeysolicitud AWS KMS en su nombre CloudTrail. En respuesta a esta solicitud, AWS KMS genera una clave de datos única y, a continuación, envía a Amazon S3 dos copias de la clave de datos, una en texto sin formato y otra cifrada con la clave de KMS especificada. Amazon S3 utiliza la clave de datos de texto sin formato para cifrar el archivo de CloudTrail registro y, a continuación, elimina la clave de datos de texto sin formato de la memoria tan pronto como sea posible tras su uso. Amazon S3 almacena la clave de datos cifrados como metadatos con el archivo de CloudTrail registro cifrado.

La solicitud GenerateDataKey incluye la siguiente información para el contexto de cifrado:

Cada GenerateDataKey solicitud da como resultado una entrada en CloudTrail los registros similar a la del siguiente ejemplo. Si ve una entrada de registro como esta, puede determinar que CloudTrail se ha realizado la AWS KMS GenerateDataKey operación de un registro específico para proteger un archivo de registro específico. AWS KMS creó la clave de datos con la clave KMS especificada, que se muestra dos veces en la misma entrada de registro.

{ "eventVersion": "1.09", "userIdentity": { "type": "AWSService", "invokedBy": "cloudtrail.amazonaws.com" }, "eventTime": "2024-12-06T21:49:28Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-east-1", "sourceIPAddress": "cloudtrail.amazonaws.com", "userAgent": "cloudtrail.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:cloudtrail:arn": "arn:aws:cloudtrail:us-east-1::trail/insights-trail", "aws:s3:arn": "arn:aws:s3:::amzn-s3-demo-logging-bucket1-123456789012-7867ab0c/AWSLogs/123456789012/CloudTrail/us-east-1/2024/12/06/123456789012_CloudTrail_us-east-1_20241206T2150Z_hVXmrJzjZk2wAM2V.json.gz" }, "keySpec": "AES_256", "keyId": "arn:aws:kms:us-east-1:123456789012:key/example9-16ef-48ba-9163-example67a5a" }, "responseElements": null, "requestID": "11117d14-9232-414a-b3d1-01bab4dc9f99", "eventID": "999e9a50-512c-4e2a-84a3-111a5f511111", "readOnly": true, "resources": [ { "accountId": "123456789012", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:123456789012:key/example9-16ef-48ba-9163-example67a5a" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "123456789012", "sharedEventID": "5e663acc-b7fd-4cdd-8328-0eff862952fa", "eventCategory": "Management" }

Obtenga un archivo de registro cifrado del bucket de S3

Cada vez que obtiene un archivo de CloudTrail registro cifrado de su bucket de S3, Amazon S3 envía una Decryptsolicitud AWS KMS en su nombre para descifrar la clave de datos cifrados del archivo de registro. En respuesta a esta solicitud, AWS KMS utiliza la clave de KMS para descifrar la clave de datos y, a continuación, envía la clave de datos de texto sin formato a Amazon S3. Amazon S3 utiliza la clave de datos de texto sin formato para descifrar el archivo de CloudTrail registro y, a continuación, elimina la clave de datos de texto sin formato de la memoria tan pronto como sea posible tras su uso.

La solicitud Decrypt incluye la siguiente información para el contexto de cifrado:

Cada Decrypt solicitud da como resultado una entrada en CloudTrail los registros similar a la del siguiente ejemplo. Cuando ve una entrada de registro como esta, puede determinar que un rol asumido se denominó AWS KMS Decrypt operación para una ruta y un archivo de registro específicos. AWS KMS descifró la clave de datos con una clave KMS específica.

{ "eventVersion": "1.09", "userIdentity": { "type": "AssumedRole", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:sts::123456789012:assumed-role/Admin", "accountId": "123456789012", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "sessionIssuer": { "type": "Role", "principalId": "AIDACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::123456789012:role/Admin", "accountId": "123456789012", "userName": "Admin" }, "attributes": { "creationDate": "2024-12-06T22:04:04Z", "mfaAuthenticated": "false" } }, "invokedBy": "AWS Internal" }, "eventTime": "2024-12-06T22:26:34Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-east-1", "sourceIPAddress": "AWS Internal", "userAgent": "AWS Internal", "requestParameters": { "encryptionContext": { "aws:cloudtrail:arn": "arn:aws:cloudtrail:us-east-1:123456789012:trail/insights-trail", "aws:s3:arn": "arn:aws:s3:::amzn-s3-demo-logging-bucket1-123456789012-7867ab0c/AWSLogs/123456789012/CloudTrail/us-east-1/2024/12/06/123456789012_CloudTrail_us-east-1_20241206T0000Z_aAAsHbGBdye3jp2R.json.gz" }, "encryptionAlgorithm": "SYMMETRIC_DEFAULT" }, "responseElements": null, "requestID": "1ab2d2d2-111a-2222-a59b-11a2b3832b53", "eventID": "af4d4074-2849-4b3d-1a11-a1aaa111a111", "readOnly": true, "resources": [ { "accountId": "123456789012", "type": "AWS::KMS::Key", "ARN": "arn:aws:kms:us-east-1:123456789012:key/example9-16ef-48ba-9163-example67a5a" } ], "eventType": "AwsApiCall", "managementEvent": true, "recipientAccountId": "123456789012", "eventCategory": "Management", "sessionCredentialFromConsole": "true" }