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:
-
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 .
-
Para permitir que el AWS servicio tenga los
kms:Decrypt
permisoskms: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
-
Agregue las claves de condición
aws:SourceAccount
yaws: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
, yaws: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
" } } } -
Habilite SSE para el tema mediante la KMS.
-
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