Administración de las claves de cifrado y los costos de Amazon SNS - Amazon Simple Notification 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 las claves de cifrado y los costos de Amazon SNS

En las siguientes secciones se proporciona información sobre cómo trabajar con claves administradas en AWS Key Management Service (AWS KMS).

nota

Amazon SNS solo admite claves de KMS de cifrado simétricas. No puede utilizar ningún otro tipo de clave de KMS para cifrar los recursos del servicio. Para obtener ayuda para determinar si una clave de KMS es una clave de cifrado simétrica, consulte Identificar claves de KMS asimétricas.

Estimación de costos AWS KMS

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

nota

Si bien la siguiente fórmula puede brindarle una muy buena idea de los costos esperados, los costos reales podrían ser más elevados debido a la naturaleza distribuida de Amazon SNS.

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

R = B / D * (2 * P)

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

D es el período de reutilización de claves de datos (en segundos, Amazon SNS reutiliza una clave de datos durante un máximo de 5 minutos).

P es el número de entidades principales de publicación que realizan envíos al tema de Amazon SNS.

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 llamadas a la AWS KMS API para un editor y un tema

En este ejemplo se 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 es de 5 minutos (300 segundos).

  • Hay 1 tema.

  • Hay una 1 entidad principal de publicación.

2,678,400 / 300 * (2 * 1) = 17,856

Ejemplo 2: Cálculo del número de llamadas a la API de AWS KMS con varios publicadores y 2 temas

En este ejemplo se 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 es de 5 minutos (300 segundos).

  • Hay 2 temas.

  • El primer tema tiene 3 entidades principales de publicación.

  • El segundo tema tiene 5 entidades principales de publicación.

(2,419,200 / 300 * (2 * 3)) + (2,419,200 / 300 * (2 * 5)) = 129,024

Configuración de AWS KMS permisos

Antes de poder utilizar SSE, debe configurar AWS KMS key políticas que permitan el cifrado de temas y el cifrado y descifrado de mensajes. Para obtener ejemplos y más información sobre los permisos de AWS KMS , consulte Permisos de API de AWS KMS : Referencia de recursos y acciones en la Guía para desarrolladores de AWS Key Management Service . Para obtener más información sobre cómo configurar un tema de Amazon SNS con cifrado del servidor, consulte Información adicional.

nota

También puede administrar los permisos para las claves de KMS de cifrado simétrico mediante políticas de IAM. Para obtener más información, consulte Uso de políticas de IAM con. AWS KMS

Si bien puede configurar los permisos globales para enviar y recibir desde Amazon SNS, es AWS KMS necesario mencionar explícitamente el ARN completo de regiones específicas KMSs en la Resource sección de una política de IAM.

También debe asegurarse de que las políticas clave del AWS KMS key permiten los permisos necesarios. Para ello, asigne un nombre a las principales que producen y consumen mensajes cifrados en Amazon SNS como usuarios de la política de claves de KMS.

Como alternativa, puede especificar AWS KMS las acciones necesarias y el ARN de KMS en una política de IAM asignada a las entidades principales que publican y se suscriben para recibir mensajes cifrados en Amazon SNS. Para obtener más información, consulte Administración del acceso a AWS KMS en la Guía para desarrolladores de AWS Key Management Service .

Si selecciona una clave administrada por el cliente para el tema de Amazon SNS y utiliza alias para controlar el acceso a las claves KMS mediante políticas de IAM o políticas de claves de KMS con la clave de condición kms:ResourceAliases, asegúrese de que la clave administrada por el cliente seleccionada también tenga un alias asociado. Para obtener más información sobre el uso de alias para controlar el acceso a las claves KMS, consulte Uso de alias para controlar el acceso a las claves KMS en la Guía para desarrolladores de AWS Key Management Service .

Permitir que un usuario envíe mensajes a un tema con SSE

El publicador debe tener los permisos kms:GenerateDataKey* y kms:Decrypt para AWS KMS key.

{ "Statement": [{ "Effect": "Allow", "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, { "Effect": "Allow", "Action": [ "sns:Publish" ], "Resource": "arn:aws:sns:*:123456789012:MyTopic" }] }

Habilite la compatibilidad entre las fuentes de eventos de AWS los servicios y los temas cifrados

Varios AWS servicios publican eventos sobre temas de Amazon SNS. Para que estos orígenes de eventos funcionen con los temas cifrados, es preciso llevar a cabo los pasos que se describen a continuación:

  1. Utilice una clave administrada por el cliente. 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 el AWS servicio tenga los kms:Decrypt permisos kms:GenerateDataKey* y, añada la siguiente declaración a la política de KMS.

    { "Statement": [{ "Effect": "Allow", "Principal": { "Service": "service.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "*" }] }
    Origen del evento Entidad principal de servicio
    Amazon CloudWatch cloudwatch.amazonaws.com
    CloudWatch Eventos de Amazon events.amazonaws.com
    AWS CodeCommit codecommit.amazonaws.com
    AWS CodeStar codestar-notifications.amazonaws.com
    AWS Database Migration Service dms.amazonaws.com
    AWS Directory Service ds.amazonaws.com
    Amazon DynamoDB dynamodb.amazonaws.com
    Amazon Inspector inspector.amazonaws.com
    Amazon Redshift redshift.amazonaws.com
    Amazon RDS events.rds.amazonaws.com
    Amazon S3 Glacier glacier.amazonaws.com
    Amazon Simple Email Service ses.amazonaws.com
    Amazon Simple Storage Service s3.amazonaws.com
    AWS Snowball importexport.amazonaws.com
    AWS Gestor de Sistemas Gestor de Incidentes

    AWS Systems Manager Incident Manager consta de dos principios de servicio:

    ssm-incidents.amazonaws.com; ssm-contacts.amazonaws.com
    nota

    Algunas fuentes de eventos de Amazon SNS requieren que proporciones un rol de IAM (en lugar del principal del servicio) en la política: AWS KMS key

  3. Agregue las claves de condición aws:SourceAccount y aws:SourceArn a la política de recursos de KMS para proteger aún más la clave de KMS de los ataques de suplente confuso. Consulte la lista de documentación específica del servicio (arriba) para obtener detalles exactos de cada caso.

    importante

    Los EventBridge-to-encrypted temas no admiten la aws:SourceAccount adición de los caracteresaws:SourceArn, y aws:SourceOrgID a una AWS KMS política.

    { "Effect": "Allow", "Principal": { "Service": "service.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "customer-account-id" }, "ArnLike": { "aws:SourceArn": "arn:aws:service:region:customer-account-id:resource-type:customer-resource-id" } } }
  4. Habilite SSE para el tema mediante la KMS.

  5. Proporcione el ARN del tema cifrado al origen de eventos.

AWS KMS errores

Cuando trabaja con Amazon SNS AWS KMS, es posible que se produzcan errores. En la siguiente lista se describen los errores y sus posibles soluciones.

KMSAccessDeniedException

El texto cifrado hace referencia a una clave que no existe o a la que no tiene acceso.

Código de estado HTTP: 400

KMSDisabledExcepción

La solicitud se rechazó porque la KMS especificada no está habilitada.

Código de estado HTTP: 400

KMSInvalidStateException

La solicitud se rechazó porque el estado del recurso especificado no es válido para esta solicitud. Para obtener más información, consulte Estados de clave de AWS KMS keys en la Guía para desarrolladores de AWS Key Management Service .

Código de estado HTTP: 400

KMSNotFoundException

La solicitud se rechazó porque la entidad o el recurso especificado no se encontraron.

Código de estado HTTP: 400

KMSOptInRequired

El identificador de clave de AWS acceso necesita una suscripción al servicio.

Código de estado HTTP: 403

KMSThrottlingExcepción

La solicitud fue denegada debido a una limitación de la solicitud. Para obtener más información sobre la limitación, consulte Cuotas en la Guía para desarrolladores de AWS Key Management Service .

Código de estado HTTP: 400