Gerenciamento de SQS chaves da Amazon - Amazon Simple Queue 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á.

Gerenciamento de SQS chaves da Amazon

A Amazon SQS se integra com o AWS Key Management Service (KMS) para gerenciar KMSchaves para criptografia do lado do servidor (). SSE Consulte Criptografia em repouso na Amazon SQS para SSE obter informações e as principais definições de gerenciamento. A Amazon SQS usa KMS chaves para validar e proteger as chaves de dados que criptografam e descriptografam as mensagens. As seções a seguir fornecem informações sobre como trabalhar com KMS chaves e chaves de dados no SQS serviço da Amazon.

Configuração AWS KMS permissões

Cada KMS chave deve ter uma política de chaves. Observe que você não pode modificar a política de chaves de um AWS KMSchave gerenciada para a AmazonSQS. A política dessa KMS chave inclui permissões para que todos os diretores da conta (que estão autorizados a usar a AmazonSQS) usem filas criptografadas.

Para uma KMS chave gerenciada pelo cliente, você deve configurar a política de chaves para adicionar permissões para cada produtor e consumidor da fila. Para fazer isso, você nomeia o produtor e o consumidor como usuários na política de KMS chaves. Para obter mais informações sobre AWS KMS permissões, consulte AWS KMS recursos e operações ou AWS KMS APIreferência de permissões no AWS Key Management Service Guia do desenvolvedor.

Como alternativa, você pode especificar as permissões necessárias em uma IAM política atribuída aos diretores que produzem e consomem mensagens criptografadas. Para obter mais informações, consulte Usando IAM políticas com AWS KMS no AWS Key Management Service Guia do desenvolvedor.

nota

Embora você possa configurar permissões globais para enviar e receber da AmazonSQS, AWS KMS exige nomear explicitamente todas ARN as KMS chaves em regiões específicas na Resource seção de uma IAM política.

Configurar KMS permissões para AWS serviços

Vários AWS os serviços atuam como fontes de eventos que podem enviar eventos para SQS as filas da Amazon. Para permitir que essas fontes de eventos funcionem com filas criptografadas, você deve criar uma KMS chave gerenciada pelo cliente e adicionar permissões na política de chaves para que o serviço use o necessário AWS KMS APImétodos. Execute as etapas a seguir para configurar as permissões.

Atenção

Ao alterar a KMS chave para criptografar suas SQS mensagens da Amazon, esteja ciente de que as mensagens existentes criptografadas com a KMS chave antiga permanecerão criptografadas com essa chave. Para descriptografar essas mensagens, você deve reter a KMS chave antiga e garantir que sua política de chaves conceda à Amazon SQS as permissões para. kms:GenerateDataKey Depois de atualizar para uma nova KMS chave para criptografar novas mensagens, certifique-se de que todas as mensagens existentes criptografadas com a KMS chave antiga sejam processadas e removidas da fila antes de excluir ou desativar a chave antiga. KMS

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

  2. Para permitir que o AWS fonte de eventos de serviço para usar o kms:GenerateDataKey API método, adicione a seguinte declaração à política de KMS chaves.

    { "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "service.amazonaws.com" }, "Action": [ "kms:GenerateDataKey" ], "Resource": "*" }] }

    Substitua “service” no exemplo acima pelo nome do serviço da origem de evento. As origens de evento incluem os serviços a seguir.

    Origem do evento. Nome do serviço
    CloudWatch Eventos da Amazon events.amazonaws.com
    Notificações de eventos do Amazon S3 s3.amazonaws.com
    Assinaturas de SNS tópicos da Amazon sns.amazonaws.com
  3. Configure uma SSE fila existente usando a ARN da sua KMS chave.

  4. Forneça ARN a fila criptografada para a origem do evento.

Configurar AWS KMS permissões para produtores

Quando o período de reutilização da chave de dados expira, a próxima chamada do produtor para SendMessage ou SendMessageBatch também aciona as chamadas para. kms:GenerateDataKey O produtor deve ter as kms:GenerateDataKey permissões para a KMS chave.

Adicione a seguinte declaração à IAM política do produtor. Lembre-se de usar os ARN valores corretos para o recurso chave e o recurso de fila.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "kms:GenerateDataKey" ], "Resource": "arn:aws:kms:us-east-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, { "Effect": "Allow", "Action": [ "sqs:SendMessage" ], "Resource": "arn:aws:sqs:*:123456789012:MyQueue" }] }

Configurar AWS KMS permissões para consumidores

Quando o período de reutilização da chave de dados expirar, a próxima chamada do consumidor ReceiveMessage também acionará uma chamada para kms:Decrypt, a fim de verificar a integridade da nova chave de dados antes de usá-la. Portanto, o consumidor deve ter kms:Decrypt permissão para qualquer KMS chave usada para criptografar as mensagens na fila especificada. Se a fila funcionar como uma fila de mensagens sem saída, o consumidor também deverá ter a kms:Decrypt permissão para qualquer KMS chave usada para criptografar as mensagens na fila de origem. Adicione a seguinte declaração à IAM política do consumidor. Lembre-se de usar os ARN valores corretos para o recurso chave e o recurso de fila.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-2:123456789012:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, { "Effect": "Allow", "Action": [ "sqs:ReceiveMessage" ], "Resource": "arn:aws:sqs:*:123456789012:MyQueue" }] }

Configurar AWS KMS permissões com proteção delegada confusa

Quando o principal em uma declaração de política fundamental é um AWS principal de serviço, você pode usar as chaves de condição aws:SourceArnou as chaves de condição aws:SourceAccountglobais para se proteger contra o cenário confuso de deputados. Para usar essas chaves de condição, defina o valor como o Amazon Resource Name (ARN) do recurso que está sendo criptografado. Se você não conhece o ARN recurso, use aws:SourceAccount em vez disso.

Nessa política KMS fundamental, um recurso específico do serviço que pertence à conta 111122223333 pode KMS solicitar Decrypt e GenerateDataKey realizar ações que ocorram durante o SSE uso da AmazonSQS.

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Service": "<replaceable>service</replaceable>.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*", "Condition": { "ArnEquals": { "aws:SourceArn": [ "arn:aws:service::111122223333:resource" ] } } }] }

Ao usar SQS filas SSE habilitadas da Amazon, os seguintes serviços oferecem suporteaws:SourceArn:

  • Amazon SNS

  • Amazon S3

  • CloudWatch Eventos

  • AWS Lambda

  • CodeBuild

  • Amazon Connect Customer Profiles

  • AWS Auto Scaling

  • Amazon Chime

Entender o período de reutilização de chaves de dados

O período de reutilização da chave de dados define a duração máxima para SQS a Amazon reutilizar a mesma chave de dados. Quando o período de reutilização da chave de dados termina, a Amazon SQS gera uma nova chave de dados. Observe as diretrizes a seguir sobre o período de reutilização.

  • Um período de reutilização mais curto oferece melhor segurança, mas resulta em mais chamadas para AWS KMS, o que pode incorrer em cobranças além do nível gratuito.

  • Embora a chave de dados seja armazenada em cache separadamente para a criptografia e a descriptografia, o período de reutilização se aplica a ambas as cópias da chave de dados.

  • Atualmente, somente a KMS:GenerateDataKey permissão é usada durante as SQS:SendMessageBatch operações SQS:SendMessage e. A kms:Decrypt permissão é usada somente durante a SQS:ReceiveMessage operação.

  • Diretores (Contas da AWS ou usuários) não compartilham chaves de dados (mensagens enviadas por diretores exclusivos sempre recebem chaves de dados exclusivas). Portanto, o volume de chamadas para AWS KMS é um múltiplo do número de principais exclusivos em uso durante o período de reutilização da chave de dados.

Estimando AWS KMS custos

Para prever custos e entender melhor sua AWS Bill, talvez você queira saber com que frequência a Amazon SQS usa sua KMS chave.

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

Para calcular o número de API solicitações (R) por fila, use a seguinte fórmula:

R = (B / D) * (2 * P + C)

B é o período de faturamento (em segundos).

D é o período de reutilização da chave de dados (em segundos).

Pé o número de diretores produtores que são enviados para a SQS fila da Amazon.

Cé o número de consumidores principais que recebem da SQS fila da Amazon.

Importante

De modo geral, os principais de produção geram o dobro do custo das entidades principais de consumo. Para obter mais informações, consulte Entender o período de reutilização de chaves de dados.

Se o produtor e o consumidor tiverem usuários diferentes do , o custo aumentará.

Estes são cálculos de exemplo. Para obter informações exatas sobre preços, consulte AWS Key Management Service Preços.

Exemplo 1: Calculando o número de AWS KMS APIchamadas para 2 diretores e 1 fila

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 é definido como 5 minutos (300 segundos).

  • Há 1 fila.

  • Há 1 entidade principal de produção e 1 entidade principal de consumo.

(2,678,400 / 300) * (2 * 1 + 1) = 26,784

Exemplo 2: Calculando o número de AWS KMS APIchamadas para vários produtores e consumidores e 2 filas

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 é definido como 24 horas (86.400 segundos).

  • Há duas filas.

  • A primeira fila tem 3 entidades principais de produção e 1 entidade principal de consumo.

  • A segunda fila tem 5 entidades principais de produção e 2 entidades principais de consumo.

(2,419,200 / 86,400 * (2 * 3 + 1)) + (2,419,200 / 86,400 * (2 * 5 + 2)) = 532

AWS KMS erros

Quando você trabalha com a Amazon SQS e AWS KMS, você pode encontrar erros. As referências a seguir descrevem os erros e possíveis soluções de problemas.