As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Gerenciar chaves e custos de criptografia do Amazon SNS
As seções a seguir contêm informações sobre como trabalhar com chaves gerenciadas pelo AWS Key Management Service (AWS KMS).
nota
O Amazon SNS só é compatível com chaves do KMS de criptografia simétrica. Você não pode usar nenhum outro tipo de chave do KMS para criptografar seus recursos de serviço. Para obter ajuda para determinar se uma chave do KMS é simétrica, consulte Identificar chaves assimétricas do KMS.
Estimando AWS KMS custos
Para prever custos e entender melhor sua AWS fatura, talvez você queira saber com que frequência o Amazon SNS usa sua AWS KMS key.
nota
Embora a fórmula a seguir possa dar a você uma boa ideia sobre os custos esperados, os custos reais poderão ser mais altos por conta da natureza distribuída do Amazon SNS.
Para calcular o número de solicitações de APIs (R) por tópico, use a seguinte fórmula:
R = B / D * (2 * P)
B é o período de faturamento (em segundos).
D é o período de reutilização da chave de dados (em segundos: o Amazon SNS reutiliza uma chave de dados por até cinco minutos).
P é o número de principais de publicação enviados para o tópico do Amazon SNS.
Estes são cálculos de exemplo. Para obter informações sobre a definição de preços, consulte Definição de preços do AWS Key Management Service
Exemplo 1: Calculando o número de AWS KMS Chamadas de API para 1 editor e 1 tópico
Este exemplo supõe o seguinte:
-
O período de faturamento é de 1 a 31 de janeiro (2.678.400 segundos).
-
O período de reutilização de chave de dados é de 5 minutos (300 segundos).
-
Há 1 tópico.
-
Há 1 entidade principal de publicação.
2,678,400 / 300 * (2 * 1) = 17,856
Exemplo 2: Calculando o número de AWS KMS Chamadas de API para vários editores e dois tópicos
Este exemplo supõe o seguinte:
-
O período de faturamento é de 1 a 28 de fevereiro (2.419.200 segundos).
-
O período de reutilização de chave de dados é de 5 minutos (300 segundos).
-
Há 2 tópicos.
-
O primeiro tópico tem 3 entidades principais de publicação.
-
O segundo tópico tem 5 entidades principais de publicação.
(2,419,200 / 300 * (2 * 3)) + (2,419,200 / 300 * (2 * 5)) = 129,024
Configurar AWS KMS permissões
Antes de usar o SSE, você deve configurar AWS KMS key políticas para permitir a criptografia de tópicos e a criptografia e descriptografia de mensagens. Para obter exemplos e mais informações sobre as permissões do AWS KMS , consulte AWS KMS API Permissions: Actions and Resources Reference no Guia do desenvolvedor do AWS Key Management Service . Para obter detalhes sobre como configurar um tópico do Amazon SNS com a criptografia do lado do servidor, consulte Mais informações.
nota
Você também pode gerenciar permissões para criptografia simétrica de chaves do KMS usando políticas do IAM. Para obter mais informações, consulte Como usar políticas do IAM com AWS KMS.
Embora seja possível configurar permissões globais para envio e recebimento do Amazon SNS, o AWS KMS
exige a indicação explícita do ARN completo dos KMSs em regiões específicas na seção Resource de uma política do IAM.
Você também deve garantir que as principais políticas do AWS KMS key permitam as permissões necessárias. Para fazer isso, indique as entidades principais que produzem e consomem mensagens criptografadas no Amazon SNS como usuários na política de chaves do KMS.
Como alternativa, você pode especificar AWS KMS as ações necessárias e o ARN do KMS em uma política do IAM atribuída aos diretores que publicam e se inscrevem para receber mensagens criptografadas no Amazon SNS. Para obter mais informações, consulte Gerenciar o acesso ao AWS KMS no Guia do desenvolvedor do AWS Key Management Service .
Se você selecionar uma chave gerenciada pelo cliente para seu tópico do Amazon SNS e estiver usando aliases para controlar o acesso às chaves KMS usando políticas do IAM ou políticas de chaves do KMS com a chave de condiçãokms:ResourceAliases, certifique-se de que a chave gerenciada pelo cliente selecionada também tenha um alias associado. Para obter mais informações sobre o uso de alias para controlar o acesso às chaves do KMS, consulte Usar aliases para controlar o acesso às chaves do KMS no Guia do desenvolvedor do AWS Key Management Service
.
Permitir que um usuário envie mensagens a um tópico com SSE
O editor deve ter as permissões kms:GenerateDataKey* e kms:Decrypt para o 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 a compatibilidade entre fontes de eventos do AWS serviços e tópicos criptografados
Vários AWS serviços publicam eventos nos tópicos do Amazon SNS. Para permitir que essas fontes de eventos trabalhem com tópicos criptografados, você deve executar as seguintes etapas:
-
Use uma chave gerenciada pelo cliente. Para obter mais informações, consulte Criação de chaves no Guia do desenvolvedor AWS Key Management Service .
-
Para permitir que o AWS serviço tenha as
kms:Decryptpermissõeskms:GenerateDataKey*e, adicione a seguinte declaração à política do KMS.{ "Statement": [{ "Effect": "Allow", "Principal": { "Service": "service.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "*" }] }Origem do evento. Entidade principal do serviço Amazon CloudWatch cloudwatch.amazonaws.com.rproxy.goskope.comCloudWatch Eventos da Amazon events.amazonaws.com.rproxy.goskope.comAWS CodeCommit codecommit.amazonaws.com.rproxy.goskope.comAWS Database Migration Service dms.amazonaws.com.rproxy.goskope.comAWS Directory Service ds.amazonaws.com.rproxy.goskope.comAmazon DynamoDB dynamodb.amazonaws.com.rproxy.goskope.comAmazon Inspector inspector.amazonaws.com.rproxy.goskope.comAmazon Redshift redshift.amazonaws.com.rproxy.goskope.comAmazon RDS events---rds.amazonaws.com.rproxy.goskope.comAmazon Glacier glacier.amazonaws.com.rproxy.goskope.comAmazon Simple Email Service ses.amazonaws.com.rproxy.goskope.comAmazon Simple Storage Service s3.amazonaws.com.rproxy.goskope.comAWS Snowball Edge importexport.amazonaws.com.rproxy.goskope.comAWS Gerente de sistemas Gerenciador de incidentes AWS O Systems Manager Incident Manager consiste em dois princípios de serviço:
ssm-incidents.amazonaws.com;ssm-contacts.amazonaws.com.rproxy.goskope.comnota
Algumas fontes de eventos do Amazon SNS exigem que você forneça uma função do IAM (em vez do principal do serviço) na AWS KMS key política:
-
Adicione as chaves de condição
aws:SourceAccounteaws:SourceArnà política de recursos do KMS para proteger ainda mais a chave do KMS de ataques confused deputy. Consulte a lista de documentação específica do serviço (acima) para obter detalhes exatos em cada caso.Importante
A adição de
aws:SourceAccountaws:SourceArn, eaws:SourceOrgIDa uma AWS KMS política não é compatível com EventBridge-to-encrypted tópicos.{ "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 a SSE para seu tópico usando seu KMS.
-
Forneça o ARN do tópico criptografado para a fonte do evento.
AWS KMS erros
Quando você trabalha com o Amazon SNS e AWS KMS, você pode encontrar erros. A lista a seguir descreve os erros e as possíveis soluções de problemas.
- KMSAccessDeniedException
-
O texto cifrado faz referência a uma chave que não existe ou à qual você não tem acesso.
Código de status HTTP: 400
- KMSDisabledException
-
A solicitação foi recusada porque o KMS especificado não está habilitado.
Código de status HTTP: 400
- KMSInvalidStateException
-
A solicitação foi rejeitada porque o estado do recurso especificado não é válido para essa solicitação. Para obter mais informações, consulte Principais estados do AWS KMS keys no Guia do desenvolvedor do AWS Key Management Service .
Código de status HTTP: 400
- KMSNotFoundException
-
A solicitação foi rejeitada porque a entidade ou o recurso especificado não pôde ser encontrado.
Código de status HTTP: 400
- KMSOptInRequired
-
O ID da chave de AWS acesso precisa de uma assinatura para o serviço.
Código de status HTTP: 403
- KMSThrottlingException
-
A solicitação foi negada devido à limitação da solicitação. Para obter mais informações sobre controle de utilização, consulte Cotas no Guia do desenvolvedor do AWS Key Management Service .
Código de status HTTP: 400