View a markdown version of this page

Permisos para utilizar claves de KMS generadas por el usuario - Amazon Kinesis Data Streams

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.

Permisos para utilizar claves de KMS generadas por el usuario

Antes de poder usar el cifrado del lado del servidor con una clave de KMS generada por el usuario, debe configurar las políticas de AWS KMS claves para permitir el cifrado de las transmisiones y el cifrado y el descifrado de los registros de transmisiones. Para ver ejemplos y obtener más información sobre AWS KMS los permisos, consulte Permisos de la API de AWS KMS: referencia de acciones y recursos.

nota

El uso de las claves de servicio predeterminadas para el cifrado no requiere que se apliquen permisos de IAM personalizados.

Antes de utilizar las claves principales de KMS generadas por el usuario, asegúrese de que sus productores y consumidores de flujos de Kinesis (entidades principales de IAM) sean usuarios en la política de claves principales de KMS. De lo contrario, las labores de escritura y lectura de una secuencia producirán un error, lo que, en definitiva, podría resultar en pérdida de datos, retrasos en el procesamiento, aplicaciones colgadas. Puede administrar los permisos para las claves de KMS con las políticas de IAM. Para obtener más información, consulte Uso de políticas de IAM con AWS KMS.

Contexto de cifrado de Kinesis Data Streams

Cuando Amazon Kinesis Data Streams llama AWS KMS en su nombre, le transfiere un contexto de cifrado AWS KMS que puede usarse como condición para la autorización en las políticas y concesiones clave. Kinesis Data Streams utiliza el ARN de la transmisión como contexto de cifrado en todas las llamadas. AWS KMS

"encryptionContext": { "aws:kinesis:arn": "arn:aws:kinesis:region:account-id:stream/stream-name" }

Puede usar el contexto de cifrado para identificar el uso de su clave de KMS en los registros y registros de auditoría. También aparece en texto plano en los registros, por ejemplo. AWS CloudTrail

Para limitar el uso de su clave de KMS a las solicitudes de Kinesis Data Streams para una transmisión específica, use la clave de kms:EncryptionContext:aws:kinesis:arn condición de la política de claves de KMS o la política de IAM.

Ejemplo de permisos para productores

Sus productores de flujos de Kinesis deben tener el permiso kms:GenerateDataKey.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, { "Effect": "Allow", "Action": [ "kinesis:PutRecord", "kinesis:PutRecords" ], "Resource": "arn:aws:kinesis:*:123456789012:MyStream" } ] }

Ejemplo de permisos para consumidores

Sus consumidores de flujos de Kinesis deben tener el permiso kms:Decrypt.

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "arn:aws:kms:us-west-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, { "Effect": "Allow", "Action": [ "kinesis:GetRecords", "kinesis:DescribeStream" ], "Resource": "arn:aws:kinesis:*:123456789012:MyStream" } ] }

Amazon Managed Service para Apache Flink y AWS Lambda usa roles para consumir transmisiones de Kinesis. Asegúrese de agregar el permiso kms:Decrypt a los roles que usen estos consumidores.

Permisos de administrador de flujos

Los administradores de flujos de Kinesis deben tener autorización para llamar a kms:List* y kms:DescribeKey*.