Configurar políticas de clave de AWS KMS para CloudTrail - 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.

Configurar políticas de clave de AWS KMS para CloudTrail

Puede crear una AWS KMS key de tres maneras:

  • En la consola de CloudTrail

  • La consola de administración de AWS

  • Con la AWS CLI

nota

Si crea una clave de KMS en la consola de CloudTrail, CloudTrail agrega la política de claves de KMS necesaria. No es necesario que añada manualmente las instrucciones de política. Consulte Política de claves de KMS predeterminada creada en la consola de CloudTrail.

Si crea una clave de KMS en la administración de AWS o la AWS CLI, debe agregar secciones de política a la clave para poder usarla con CloudTrail. La política debe permitir que CloudTrail utilice la clave para cifrar los archivos de registro y los almacenes de datos de eventos. También debe permitir que los usuarios especificados lean archivos de registro en formato no cifrado.

Consulte los siguientes recursos:

Secciones de política de clave de KMS necesarias para utilizar con CloudTrail

Si creó una clave de KMS con la consola de administración de AWS o la AWS CLI , debe agregar, como mínimo, las siguientes instrucciones a la política de claves de KMS para que funcione con CloudTrail.

Elementos de política de clave de KMS necesarios para los registros de seguimiento

  1. Habilitar los permisos de cifrado de registros de CloudTrail. Consulte Concesión de permisos de cifrado.

  2. Habilite los permisos de descifrado de registros de CloudTrail Consulte Concesión de permisos de descifrado. Si está utilizando un bucket de S3 existente con una Clave de bucket de S3, los permisos kms:Decrypt son necesarios para crear o actualizar un registro de seguimiento con el cifrado SSE-KMS habilitado.

  3. Habilite CloudTrail para describir las propiedades de la clave de KMS. Consulte Habilitar CloudTrail para describir las propiedades de la clave de KMS.

Como práctica recomendada de seguridad, agregue una clave de condición aws:SourceArn a la política de claves de KMS. La clave de condición global de IAM aws:SourceArn ayuda a garantizar que CloudTrail utilice la clave KMS solo para una traza o trazas específicas. El valor de aws:SourceArn siempre es el ARN de traza (o matriz de ARN de traza) que utiliza la clave KMS. Asegúrese de agregar la clave de condiciones aws:SourceArn de las políticas clave de KMS para las trazas existentes.

La clave de condición aws:SourceAccount también se admite, aunque no se recomienda. El valor de aws:SourceAccount es el ID de cuenta del propietario del traza, para las trazas de la organización, el ID de cuenta de administración.

importante

Cuando agregue las secciones nuevas a su política de clave de KMS, no cambie las secciones existentes en la política.

Si el cifrado está habilitado en un registro de traza y la clave de KMS está deshabilitada o la política de claves de KMS no está correctamente configurada para CloudTrail, CloudTrail no enviará archivos de registros.

Elementos de política de clave de KMS necesarios para los almacenes de datos de eventos

  1. Habilitar los permisos de cifrado de registros de CloudTrail. Consulte Concesión de permisos de cifrado.

  2. Habilite los permisos de descifrado de registros de CloudTrail Consulte Concesión de permisos de descifrado.

  3. Conceda permiso a los usuarios y a los roles para cifrar y descifrar datos del almacén de datos de eventos con la clave de KMS.

    Tanto para crear un almacén de datos de eventos y cifrarlo con una clave de KMS como para ejecutar consultas en un almacén de datos de eventos que esté cifrando con una clave de KMS, debe tener acceso de escritura a la clave de KMS. La política de clave de KMS debe tener acceso a CloudTrail, y los usuarios que ejecuten operaciones (como consultas) en el almacén de datos de eventos deben contar con la posibilidad de administrar la clave de KMS.

  4. Habilite CloudTrail para describir las propiedades de la clave de KMS. Consulte Habilitar CloudTrail para describir las propiedades de la clave de KMS.

Las claves de condición aws:SourceArn y aws:SourceAccount no se admiten en las políticas de claves de KMS para los almacenes de datos de eventos.

importante

Cuando agregue las secciones nuevas a su política de clave de KMS, no cambie las secciones existentes en la política.

Si el cifrado está habilitado en un almacén de datos de eventos y la clave de KMS está desactivada o eliminada, o bien, si la política de clave de KMS no está configurada correctamente para CloudTrail, dicho servicio no podrá enviar eventos al almacén de datos de eventos.

Concesión de permisos de cifrado

ejemplo Permita a CloudTrail cifrar archivos de registros en nombre de cuentas específicas.

CloudTrail necesita permisos explícitos para utilizar la clave de KMS para cifrar archivos de registros en nombre de cuentas específicas. Para especificar una cuenta, agregue la siguiente declaración necesaria a su política de claves de KMS y reemplace account-id, region y trailName por los valores apropiados para su configuración. Puede agregar identificadores de cuenta adicionales a la sección EncryptionContext para permitir que esas cuentas utilicen CloudTrail para emplear su clave de KMS a fin de cifrar archivos de registros.

Como práctica recomendada de seguridad, agregue una clave de condición aws:SourceArn a la política de clave de KMS para un registro de seguimiento. La clave de condición global de IAM aws:SourceArn ayuda a garantizar que CloudTrail utilice la clave KMS solo para una traza o trazas específicas.

{ "Sid": "Allow CloudTrail to encrypt logs", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:GenerateDataKey*", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:account-id:trail/trail-name" }, "StringLike": { "kms:EncryptionContext:aws:cloudtrail:arn": "arn:aws:cloudtrail:*:account-id:trail/*" } } }

La política de una clave de KMS utilizada para cifrar los registros del almacén de datos de eventos de CloudTrail Lake no puede usar las claves de condición aws:SourceArn y aws:SourceAccount. A continuación, se muestra un ejemplo de política de una clave de KMS para un almacén de datos de eventos.

{ "Sid": "Allow CloudTrail to encrypt event data store", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" }

La siguiente instrucción de política de ejemplo ilustra cómo otra cuenta puede utilizar su clave de KMS para cifrar archivos de registros de CloudTrail.

Escenario
  • Su clave de KMS está en la cuenta 111111111111.

  • Usted y la cuenta 222222222222 cifrarán los archivos de registro.

En la política, agrega una o varias cuentas que se cifran con la clave en EncryptionContext de CloudTrail. Esto impide a CloudTrail utilizar la clave para cifrar registros solo para las cuentas que especifique. Cuando concede permiso a la raíz de la cuenta 222222222222 para cifrar registros, delega el permiso al administrador de la cuenta para cifrar los permisos necesarios a otros usuarios de esa cuenta. Para ello, el administrador de la cuenta cambia las políticas asociadas a esos usuarios de IAM.

Como práctica recomendada de seguridad, agregue una clave de condición aws:SourceArn a la política de claves de KMS. La clave de condición global de IAM aws:SourceArn ayuda a garantizar que CloudTrail utilice la clave de KMS solo para los registros de seguimiento específicos. Esta condición no se admite en las políticas de claves de KMS para los almacenes de datos de eventos.

Instrucción de la política de claves de KMS:

{ "Sid": "Enable CloudTrail encrypt permissions", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:GenerateDataKey*", "Resource": "*", "Condition": { "StringLike": { "kms:EncryptionContext:aws:cloudtrail:arn": [ "arn:aws:cloudtrail:*:111111111111:trail/*", "arn:aws:cloudtrail:*:222222222222:trail/*" ] }, "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:account-id:trail/trail-name" } } }

Para obtener más información sobre cómo editar una política de claves de KMS para utilizarla con CloudTrail, consulte Edición de una política de claves en la Guía para desarrolladores de AWS Key Management Service.

Concesión de permisos de descifrado

Antes de agregar su clave de KMS a la configuración de CloudTrail, es importante que conceda permisos de descifrado a todos los usuarios que los necesiten. Los usuarios que tienen permisos de cifrado, pero no permisos de descifrado no pueden leer los registros cifrados. Si está utilizando un bucket de S3 existente con una Clave de bucket de S3, los permisos kms:Decrypt son necesarios para crear o actualizar un registro de seguimiento con el cifrado SSE-KMS habilitado.

Habilitar los permisos de descifrado de registros de CloudTrail

Los usuarios de su clave deben tener permisos explícitos para leer los archivos de registros que CloudTrail ha cifrado. Para habilitar a los usuarios para que puedan leer archivos de registros cifrados, agregue la siguiente instrucción necesaria a su política de claves de KMS y modifique la sección Principal para agregar una línea para cada entidad principal a la que desee permitir descifrar con su clave de KMS.

{ "Sid": "Enable CloudTrail log decrypt permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:user/username" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }

El siguiente es un ejemplo de política que se requiere para permitir que la entidad principal del servicio CloudTrail descifre los registros de seguimiento.

{ "Sid": "Allow CloudTrail to decrypt a trail", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:Decrypt", "Resource": "*" }

La política de descifrado de una clave de KMS que se utiliza con un almacén de datos de eventos de CloudTrail Lake es similar a la siguiente. Los ARN de usuario o rol especificados como valores para Principal necesitan permisos de descifrado para crear o actualizar almacenes de datos de eventos, ejecutar consultas u obtener los resultados de las consultas.

{ "Sid": "Enable user key permissions for event data stores" "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::account-id:user/username" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }

El siguiente es un ejemplo de política que se requiere para permitir que la entidad principal del servicio CloudTrail descifre los registros del almacén de datos de eventos.

{ "Sid": "Allow CloudTrail to decrypt an event data store", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:Decrypt", "Resource": "*" }

Permitir a los usuarios de su cuenta descifrar los registros de seguimiento con su clave de KMS

Ejemplo

Esta instrucción de política ilustra cómo permitir que un usuario o un rol de su cuenta use su clave para leer registros cifrados en el bucket de S3 de su cuenta.

ejemplo Escenario
  • Su clave de KMS, el bucket de S3 y el usuario de IAM Bob están en la cuenta 111111111111.

  • Concede al usuario de IAM, Bob, permiso para descifrar los registros de CloudTrail en el bucket de S3.

En la política de claves, habilita los permisos de descifrado de registros de CloudTrail para el usuario de IAM, Bob.

Instrucción de la política de claves de KMS:

{ "Sid": "Enable CloudTrail log decrypt permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111111111111:user/Bob" }, "Action": "kms:Decrypt", "Resource": "arn:aws:kms:region:account-id:key/key-id", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }
Temas

    Permitir a los usuarios de otras cuentas descifrar los registros de seguimiento con su clave de KMS

    Puede permitir que los usuarios de otras cuentas utilicen su clave de KMS para descifrar registros de seguimiento, pero no los registros del almacén de datos de eventos. Los cambios necesarios en su política de claves dependen de si el bucket de S3 se encuentra en su cuenta o en otra cuenta.

    Permitir a los usuarios de un bucket de otra cuenta descifrar archivos de registro

    Ejemplo

    Esta instrucción de política ilustra cómo permitir que un usuario o un rol de IAM de otra cuenta use su clave para leer archivos de registro cifrados de un bucket de S3 de la otra cuenta.

    Escenario
    • Su clave de KMS está en la cuenta 111111111111.

    • El usuario de IAM Alice y el bucket de S3 se encuentran en la cuenta 222222222222.

    En este caso, concede permiso a CloudTrail para descifrar los registros de la cuenta 222222222222 y concede permiso a la política del usuario de IAM Alice para utilizar su clave KeyA, que se encuentra en la cuenta 111111111111.

    Instrucción de la política de claves de KMS:

    { "Sid": "Enable encrypted CloudTrail log read access", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::222222222222:root" ] }, "Action": "kms:Decrypt", "Resource": "arn:aws:kms:region:account-id:key/key-id", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }

    Instrucción de política de la usuaria de IAM Alice:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kms:Decrypt", "Resource": "arn:aws:kms:us-west-2:111111111111:key/KeyA" } ] }

    Permitir a los usuarios de otra cuenta descifrar los registros de seguimiento de su bucket

    ejemplo

    Esta política ilustra cómo otra cuenta puede utilizar su clave para leer archivos de registro cifrados de su bucket de S3.

    ejemplo Escenario
    • Su clave de KMS y el bucket de S3 se encuentran en la cuenta 111111111111.

    • El usuario que lee registros del bucket está en la cuenta 222222222222.

    Para permitir este escenario, habilite los permisos de cifrado para el rol de IAM CloudTrailReadRole de su cuenta y, a continuación, conceda a la otra cuenta permiso para asumir ese rol.

    Instrucción de la política de claves de KMS:

    { "Sid": "Enable encrypted CloudTrail log read access", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:iam::11111111111:role/CloudTrailReadRole" ] }, "Action": "kms:Decrypt", "Resource": "arn:aws:kms:region:account-id:key/key-id", "Condition": { "Null": { "kms:EncryptionContext:aws:cloudtrail:arn": "false" } } }

    Instrucción de política de entidad de confianza CloudTrailReadRole:

    { "Version": "2012-10-17", "Statement": [ { "Sid": "Allow CloudTrail access", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::222222222222:root" }, "Action": "sts:AssumeRole" } ] }

    Para obtener más información sobre cómo editar la política de una clave de KMS para utilizarla con CloudTrail, consulte Editing a Key Policy (Edición de la política de una clave) en la Guía para desarrolladores de AWS Key Management Service.

    Habilitar CloudTrail para describir las propiedades de la clave de KMS

    CloudTrail requiere la capacidad para describir las propiedades de la clave de KMS. Para habilitar esta funcionalidad, agregue la siguiente instrucción necesaria tal cual está a su política de claves de KMS. Esta instrucción no concede a CloudTrail ningún permiso distinto de los permisos que usted especifique.

    Como práctica recomendada de seguridad, agregue una clave de condición aws:SourceArn a la política de claves de KMS. La clave de condición global de IAM aws:SourceArn ayuda a garantizar que CloudTrail utilice la clave KMS solo para una traza o trazas específicas.

    { "Sid": "Allow CloudTrail access", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "kms:DescribeKey", "Resource": "arn:aws:kms:region:account-id:key/key-id", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:region:account-id:trail/trail-name" } } }

    Para obtener más información sobre cómo editar políticas de claves de KMS, consulte Edición de una política de claves en la Guía para desarrolladores de AWS Key Management Service.