Administración de claves - 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 claves

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

nota

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

Estimación de costos AWS KMS

Para predecir los costos y comprender mejor tu AWS factura, quizás quieras saber con qué frecuencia Amazon SNS usa tu factura AWS KMS key.

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 AmazonSNS.

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

R = B / D * (2 * P)

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

Des el período de reutilización de la clave de datos (en segundos: Amazon SNS reutiliza una clave de datos durante un máximo de 5 minutos).

Pes el número de directores de publicación que envían al SNS tema de Amazon.

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 1 editorial y 1 tema

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 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: Calcular el número de AWS KMS API llamadas para varios editores y 2 temas

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 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 utilizarlosSSE, debe configurar AWS KMS key políticas que permitan el cifrado de los temas y el cifrado y el descifrado de los mensajes. Para ver ejemplos y más información sobre AWS KMS los permisos, consulte AWS KMS APIPermisos: referencia sobre acciones y recursos en la Guía para AWS Key Management Service desarrolladores. Para obtener más información sobre cómo configurar un SNS tema de Amazon con el cifrado del lado del servidor, consulte. Configurar un SNS tema de Amazon con cifrado del lado del servidor

nota

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

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

También debes asegurarte de que las políticas clave de la ley AWS KMS key permitan los permisos necesarios. Para ello, nombra usuarios en la política de KMS claves a los responsables que producen y consumen mensajes cifrados en AmazonSNS.

Como alternativa, puedes especificar las AWS KMS acciones necesarias y KMS ARN en una IAM política asignada a los responsables que publican y se suscriben para recibir mensajes cifrados en AmazonSNS. 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 seleccionas una clave gestionada por el cliente para tu SNS tema de Amazon y utilizas alias para controlar el acceso a KMS las claves mediante IAM políticas o políticas clave con la KMS clave de condiciónkms:ResourceAliases, asegúrate de que la clave gestionada por el cliente que esté seleccionada también tenga un alias asociado. Para obtener más información sobre el uso de alias para controlar el acceso a KMS las claves, consulte Uso de alias para controlar el acceso a las claves en la Guía para KMS desarrolladores.AWS Key Management Service

Permita 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 SNS sobre temas de Amazon. 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 KMS política.

    { "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 SNS eventos de Amazon requieren que proporciones un IAM rol (en lugar del director del servicio) en la AWS KMS key política:

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

    importante

    No se admite la adición de la «aws:SourceAccountaws:SourceArn a una AWS KMS política para los EventBridge temas cifrados.

    { "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. SSEActívalo para tu tema usando tu. KMS

  5. Proporcione ARN el tema cifrado a la fuente del evento.

AWS KMS errores

Cuando trabajas con Amazon SNS AWS KMS, es posible que encuentres 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.

HTTPCódigo de estado: 400

KMSDisabledException

La solicitud se rechazó porque lo especificado KMS no está activado.

HTTPCódigo de estado: 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 .

HTTPCódigo de estado: 400

KMSNotFoundException

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

HTTPCódigo de estado: 400

KMSOptInRequired

La ID de la clave de AWS acceso necesita una suscripción al servicio.

HTTPCódigo de estado: 403

KMSThrottlingException

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 .

HTTPCódigo de estado: 400