Gerenciando chaves e custos de SNS criptografia da Amazon - Amazon Simple Notification Service

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

Gerenciando chaves e custos de SNS criptografia da Amazon

As seções a seguir contêm informações sobre como trabalhar com chaves gerenciadas pelo AWS Key Management Service (AWS KMS). Para saber mais sobre

nota

A Amazon SNS só oferece suporte a KMS chaves de criptografia simétricas. Você não pode usar nenhum outro tipo de KMS chave para criptografar seus recursos de serviço. Para obter ajuda para determinar se uma KMS chave é uma chave de criptografia simétrica, consulte Identificação de chaves KMS assimétricas.

Estimando custos AWS KMS

Para prever custos e entender melhor sua AWS fatura, talvez você queira saber com que frequência a Amazon SNS usa sua AWS KMS key.

nota

Embora a fórmula a seguir possa dar uma boa ideia dos custos esperados, os custos reais podem ser maiores devido à natureza distribuída da AmazonSNS.

Para calcular o número de API solicitações (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 — a Amazon SNS reutiliza uma chave de dados por até 5 minutos).

Pé o número de diretores de publicação que enviam para o SNS tópico da Amazon.

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 AWS KMS API chamadas 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 AWS KMS API chamadas 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

Configurando permissões AWS KMS

Antes de poder usarSSE, você deve configurar AWS KMS key políticas para permitir a criptografia de tópicos e criptografia e descriptografia de mensagens. Para obter exemplos e mais informações sobre AWS KMS permissões, consulte AWS KMS APIPermissões: referência de ações e recursos no Guia do AWS Key Management Service desenvolvedor. Para obter detalhes sobre como configurar um SNS tópico da Amazon com criptografia do lado do servidor, consulte. Configure um SNS tópico da Amazon com criptografia do lado do servidor

nota

Você também pode gerenciar permissões para KMS chaves de criptografia simétricas usando IAM políticas. Para obter mais informações, consulte Usando IAM políticas com AWS KMS.

Embora você possa configurar permissões globais para enviar e receber da AmazonSNS, é AWS KMS necessário nomear explicitamente todas ARN as regiões específicas KMSs na Resource seção de uma IAM política.

Você também deve garantir que as principais políticas do AWS KMS key permitam as permissões necessárias. Para fazer isso, nomeie os diretores que produzem e consomem mensagens criptografadas na Amazon SNS como usuários na política de KMS chaves.

Como alternativa, você pode especificar as AWS KMS ações necessárias e KMS ARN em uma IAM política atribuída aos diretores que publicam e se inscrevem para receber mensagens criptografadas na AmazonSNS. 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 SNS tópico da Amazon e estiver usando aliases para controlar o acesso às KMS chaves usando IAM políticas ou políticas de chaves com a KMS chave condicionalkms:ResourceAliases, certifique-se de que a chave gerenciada pelo cliente selecionada também tenha um alias associado. Para obter mais informações sobre como usar alias para controlar o acesso às KMS chaves, consulte Como usar aliases para controlar o acesso às KMS chaves no Guia do AWS Key Management Service desenvolvedor.

Permitir que um usuário envie mensagens para 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 de AWS serviços e tópicos criptografados

Vários AWS serviços publicam eventos SNS sobre tópicos da Amazon. Para permitir que essas fontes de eventos trabalhem com tópicos criptografados, você deve executar as seguintes etapas:

  1. Use uma chave gerenciada pelo cliente. Para obter mais informações, consulte Criação de chaves no Guia do desenvolvedor AWS Key Management Service .

  2. Para permitir que o AWS serviço tenha as kms:Decrypt permissões kms:GenerateDataKey* e, adicione a seguinte declaração à KMS política.

    { "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
    CloudWatch Eventos da 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 Systems Manager 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
    nota

    Algumas fontes de SNS eventos da Amazon exigem que você forneça uma IAM função (em vez do diretor do serviço) na AWS KMS key política:

  3. Adicione as chaves de aws:SourceArn condição aws:SourceAccount e à política de KMS recursos para protegê-la ainda mais contra ataques confusos de delegados. KMS Consulte a lista de documentação específica do serviço (acima) para obter detalhes exatos em cada caso.

    Importante

    Não há suporte aws:SourceArn para adicionar aws:SourceAccount e a uma AWS KMS política para 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" } } }
  4. Ative SSE seu tópico usando seuKMS.

  5. Forneça ARN o tópico criptografado para a fonte do evento.

AWS KMS erros

Quando você trabalha com a 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.

HTTPCódigo de status: 400

KMSDisabledException

A solicitação foi rejeitada porque o especificado KMS não está habilitado.

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

HTTPCódigo de status: 400

KMSNotFoundException

A solicitação foi rejeitada porque a entidade ou o recurso especificado não pôde ser encontrado.

HTTPCódigo de status: 400

KMSOptInRequired

O ID da chave de AWS acesso precisa de uma assinatura para o serviço.

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

HTTPCódigo de status: 400