Administración de SQS claves de Amazon - Amazon Simple Queue Service

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.

Administración de SQS claves de Amazon

Amazon SQS se integra con AWS Key Management Service (KMS) para gestionar KMSlas claves de cifrado del lado del servidor ()SSE. Consulte El cifrado en reposo en Amazon SQS para SSE obtener información y las definiciones de administración de claves. Amazon SQS utiliza KMS claves para validar y proteger las claves de datos que cifran y descifran los mensajes. En las siguientes secciones se proporciona información sobre cómo trabajar con KMS claves y claves de datos en el SQS servicio de Amazon.

Configuración de los permisos de AWS KMS

Cada KMS clave debe tener una política clave. Ten en cuenta que no puedes modificar la política de claves de una KMS clave AWS gestionada para AmazonSQS. La política de esta KMS clave incluye permisos para que todos los principales de la cuenta (que estén autorizados a usar AmazonSQS) utilicen colas cifradas.

En el caso de una KMS clave gestionada por el cliente, debes configurar la política de claves para añadir permisos a cada productor y consumidor de colas. Para ello, debe nombrar al productor y al consumidor como usuarios en la política KMS clave. Para obtener más información sobre AWS KMS los permisos, consulte la referencia sobre AWS KMS recursos y operaciones o AWS KMS API permisos en la Guía para AWS Key Management Service desarrolladores.

Como alternativa, puede especificar los permisos necesarios en una IAM política asignada a los responsables que producen y consumen los mensajes cifrados. Para obtener más información, consulte Uso de IAM políticas AWS KMS en la Guía para AWS Key Management Service desarrolladores.

nota

Si bien puedes configurar los permisos globales para enviar y recibir desde AmazonSQS, es AWS KMS necesario mencionar explícitamente la totalidad ARN de KMS las claves en regiones específicas en la Resource sección de una IAM política.

Configura KMS los permisos de AWS los servicios

Varios AWS servicios actúan como fuentes de eventos que pueden enviar eventos a las SQS colas de Amazon. Para permitir que estas fuentes de eventos funcionen con colas cifradas, debe crear una KMS clave gestionada por el cliente y añadir permisos en la política de claves para que el servicio utilice los métodos necesarios AWS KMS API. Realice los siguientes pasos para configurar los permisos.

aviso

Cuando KMS cambies la clave para cifrar tus SQS mensajes de Amazon, ten en cuenta que los mensajes existentes cifrados con la KMS clave anterior permanecerán cifrados con esa clave. Para descifrar estos mensajes, debes conservar la KMS clave anterior y asegurarte de que su política de claves concede a Amazon SQS los permisos para kms:Decrypt ykms:GenerateDataKey. Después de actualizar a una nueva KMS clave para cifrar los mensajes nuevos, asegúrate de que todos los mensajes existentes cifrados con la KMS clave anterior se procesen y eliminen de la cola antes de eliminar o deshabilitar la clave anterior. KMS

  1. Cree una clave gestionada por el cliente. KMS Para obtener más información, consulte Creación de claves en la Guía para desarrolladores de AWS Key Management Service .

  2. Para permitir que la fuente de eventos de AWS servicio utilice los kms:GenerateDataKey API métodos kms:Decrypt y, añada la siguiente declaración a la política KMS clave.

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "service.amazonaws.com" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "*" }] }

    Reemplace "service" (servicio) en el ejemplo anterior por Service name (Nombre del servicio) del origen del evento. Los orígenes de eventos incluyen los siguientes servicios.

    Origen del evento Nombre del servicio
    CloudWatch Eventos de Amazon events.amazonaws.com
    Notificaciones de eventos de Amazon S3 s3.amazonaws.com
    Suscripciones a SNS temas de Amazon sns.amazonaws.com
  3. Configura una SSE cola existente con tu KMS clave. ARN

  4. Proporcione ARN la cola cifrada a la fuente del evento.

Configure AWS KMS los permisos para los productores

Cuando caduca el periodo de reutilización de la clave de datos, la siguiente llamada del productor a SendMessage o SendMessageBatch también desencadena llamadas a kms:Decrypt y kms:GenerateDataKey. La llamada a kms:Decrypt es para verificar la integridad de la nueva clave de datos antes de usarla. Por lo tanto, el productor debe tener los kms:GenerateDataKey permisos kms:Decrypt y permisos para la KMS clave.

Añada la siguiente declaración a la IAM política del productor. Recuerde utilizar los ARN valores correctos para el recurso clave y el recurso de cola.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-east-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, { "Effect": "Allow", "Action": [ "sqs:SendMessage" ], "Resource": "arn:aws:sqs:*:123456789012:MyQueue" }] }

Configure AWS KMS los permisos para los consumidores

Cuando caduca el periodo de reutilización de la clave de datos, la siguiente llamada del cliente a ReceiveMessage también desencadena una llamada a kms:Decrypt, para verificar la integridad de la nueva clave de datos antes de usarla. Por lo tanto, el consumidor debe tener el kms:Decrypt permiso para cualquier KMS clave que se utilice para cifrar los mensajes de la cola especificada. Si la cola actúa como una cola de letra muerta, el consumidor también debe tener el kms:Decrypt permiso para usar cualquier KMS clave que se utilice para cifrar los mensajes de la cola de origen. Añada la siguiente declaración a la política del consumidor. IAM Recuerde usar los ARN valores correctos para el recurso clave y el recurso de cola.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, { "Effect": "Allow", "Action": [ "sqs:ReceiveMessage" ], "Resource": "arn:aws:sqs:*:123456789012:MyQueue" }] }

Configure AWS KMS los permisos con una confusa protección adjunta

Cuando la entidad principal de una instrucción de política de claves es una entidad principal de servicio de AWS, puede utilizar las claves de condición global aws:SourceArn o aws:SourceAccount para protegerse del escenario del suplente confuso. Para usar estas claves de condición, defina el valor en el nombre del recurso de Amazon (ARN) del recurso que se está cifrando. Si no conoce el ARN recurso, utilícelo aws:SourceAccount en su lugar.

En esta política KMS clave, un recurso específico de un servicio que sea propiedad de la cuenta 111122223333 puede KMS solicitar Decrypt y GenerateDataKey realizar acciones durante el SSE uso de AmazonSQS.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "<replaceable>service</replaceable>.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "ArnEquals": { "aws:SourceArn": [ "arn:aws:service::111122223333:resource" ] } } }] }

Cuando se utilizan las SQS colas de Amazon SSE habilitadas, se admiten aws:SourceArn los siguientes servicios:

  • Amazon SNS

  • Amazon S3

  • CloudWatch Eventos

  • AWS Lambda

  • CodeBuild

  • Perfiles de clientes de Amazon Connect

  • AWS Auto Scaling

  • Amazon Chime

Descripción del período de reutilización de la clave de datos

El período de reutilización de la clave de datos define la duración máxima para SQS que Amazon vuelva a utilizar la misma clave de datos. Cuando finaliza el período de reutilización de la clave de datos, Amazon SQS genera una nueva clave de datos. Tenga en cuenta las siguientes directrices sobre el periodo de reutilización.

  • Un período de reutilización más corto proporciona una mayor seguridad, pero se traduce en más llamadas AWS KMS, lo que puede conllevar gastos superiores a la capa gratuita.

  • Aunque la clave de datos se almacena en caché de forma independiente para el cifrado y el descifrado, el periodo de reutilización se aplica a ambas copias de la clave de datos.

  • Cuando finaliza el período de reutilización de la clave de datos, se realiza la siguiente llamada al método SendMessage o SendMessageBatch normalmente se activa una llamada al AWS KMS GenerateDataKey método para obtener una nueva clave de datos. Además, las siguientes llamadas a, SendMessage y cada una de ellas ReceiveMessage activará una llamada AWS KMS Decrypt a, para comprobar la integridad de la clave de datos antes de utilizarla.

  • Los directores (Cuentas de AWS o los usuarios) no comparten claves de datos (los mensajes enviados por directores únicos siempre reciben claves de datos únicas). Por lo tanto, el volumen de llamadas a AWS KMS es un múltiplo del número de principales únicos que se utilizan durante el período de reutilización de la clave de datos.

Estimación de costes AWS KMS

Para predecir los costes y entender mejor tu AWS factura, quizá te interese saber con qué frecuencia Amazon SQS utiliza tu KMS clave.

nota

Si bien la siguiente fórmula puede darte una idea muy clara de los costes esperados, los costes reales pueden ser más altos debido a la naturaleza distribuida de AmazonSQS.

Para calcular el número de API solicitudes (R) por cola, usa la siguiente fórmula:

R = (B / D) * (2 * P + C)

B es el período de facturación (en segundos).

D es el período de reutilización de claves de datos (en segundos).

Pes el número de directores productores que envían a la SQS cola de Amazon.

Ces el número de clientes principales que reciben de la SQS cola de Amazon.

importante

En general, las entidades principales de producción generan el doble del costo que las de consumo. Para obtener más información, consulte Descripción del período de reutilización de la clave de datos.

Si el productor y el consumidor tienen diferentes usuarios de , el costo aumenta.

A continuación se muestran algunos cálculos de ejemplo. Para obtener información exacta sobre precios, consulte Precios de AWS Key Management Service.

Ejemplo 1: Calcular el número de AWS KMS API llamadas para 2 directores y 1 cola

Este ejemplo presupone lo siguiente:

  • El período de facturación va del 1 al 31 de enero (2 678 400 segundos).

  • El periodo de reutilización de la clave de datos está establecido en 5 minutos (300 segundos).

  • Hay una cola.

  • Hay una entidad principal de producción y una entidad principal de consumo.

(2,678,400 / 300) * (2 * 1 + 1) = 26,784

Ejemplo 2: Calcular el número de AWS KMS API llamadas para varios productores y consumidores y 2 colas

Este ejemplo presupone lo siguiente:

  • El período de facturación va del 1 al 28 de febrero (2 419 200 segundos).

  • El periodo de reutilización de la clave de datos está establecido en 24 horas (86 400 segundos).

  • Hay 2 colas.

  • La primera cola tiene 3 entidades principales productoras y una entidad principal consumidora.

  • La segunda cola tiene 5 entidades principales productoras y 2 entidades principales consumidoras.

(2,419,200 / 86,400 * (2 * 3 + 1)) + (2,419,200 / 86,400 * (2 * 5 + 2)) = 532

AWS KMS errores

Cuando trabajas con Amazon SQS AWS KMS, es posible que encuentres errores. Las siguientes referencias describen los errores y sus posibles soluciones.