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.
Estimar os custos do AWS KMS
Para prever custos e entender melhor a sua fatura da AWS, talvez seja interessante saber com que frequência o Amazon SNS usa sua chave do 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: Cálculo do número de chamadas à API do AWS KMS 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: Cálculo do número de chamadas à API do AWS KMS para vários editores e 2 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 permissões do AWS KMS
Antes que possa usar a SSE, você deve configurar as políticas de chaves do AWS KMS key para permitir a criptografia de tópicos, bem como a criptografia e a 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 Using IAM Policies with 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.
É necessário garantir também que as políticas de chave do AWS KMS key concedam 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 as ações necessárias do AWS KMS e o ARN do KMS em uma política do IAM atribuída às entidades principais 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ê estiver selecionando uma chave gerenciada pelo cliente para seu tópico do Amazon SNS e estiver usando aliases para controlar o acesso às chaves do KMS usando políticas do IAM ou políticas de chave do KMS com a chave de condição kms:ResourceAliases, a chave gerenciada pelo cliente selecionada também deverá ter 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" }] }
Habilitar a compatibilidade entre as fontes de eventos de tópicos criptografados e de serviços da AWS
Vários serviços da AWS 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 serviço da AWS tenha as permissões
kms:GenerateDataKey*ekms:Decrypt, adicione a seguinte instrução à política do KMS.{ "Statement": [{ "Effect": "Allow", "Principal": { "Service": "service.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "*" }] }Origem do evento Principal do serviço Amazon CloudWatch cloudwatch.amazonaws.com.rproxy.govskope.caAmazon CloudWatch Events events.amazonaws.com.rproxy.govskope.caAWS CodeCommit codecommit.amazonaws.com.rproxy.govskope.caAWS Database Migration Service dms.amazonaws.com.rproxy.govskope.caAWS Directory Service ds.amazonaws.com.rproxy.govskope.caAmazon DynamoDB dynamodb.amazonaws.com.rproxy.govskope.caAmazon Inspector inspector.amazonaws.com.rproxy.govskope.caAmazon Redshift redshift.amazonaws.com.rproxy.govskope.caAmazon RDS events---rds.amazonaws.com.rproxy.govskope.caAmazon Glacier glacier.amazonaws.com.rproxy.govskope.caAmazon Simple Email Service ses.amazonaws.com.rproxy.govskope.caAmazon Simple Storage Service s3.amazonaws.com.rproxy.govskope.caAWS Snowball Edge importexport.amazonaws.com.rproxy.govskope.caAWS Systems Manager Incident Manager O AWS Systems Manager Incident Manager consiste em dois princípios de serviço:
ssm-incidents.amazonaws.com;ssm-contacts.amazonaws.com.rproxy.govskope.canota
Algumas fontes de eventos do Amazon SNS exigem que você forneça um perfil do IAM (em vez da entidade principal do serviço) na política do AWS KMS key:
-
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:SourceAccount,aws:SourceArneaws:SourceOrgIDa uma política do AWS KMS não é compatível com tópicos criptografados do EventBridge-to.{ "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 KMSErros do
Ao trabalhar com o Amazon SNS e o AWS KMS, você poderá 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 acesso da AWS precisa de uma assinatura do 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