View a markdown version of this page

Criptografia de dados - Decisões do Amazon Connect

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

Criptografia de dados

Este tópico fornece informações específicas às decisões do Amazon Connect sobre criptografia em trânsito e criptografia em repouso.

Criptografia em trânsito

Toda a comunicação entre os clientes e as decisões do Amazon Connect e entre as decisões do Amazon Connect e suas dependências downstream é protegida usando conexões TLS 1.2 ou superiores.

Criptografia em repouso

Todos os dados em repouso são criptografados usando criptografia do lado do servidor. Nenhuma configuração adicional é necessária, pois a criptografia é tratada de forma transparente pelo serviço.

Por padrão, o Amazon Connect Decisions criptografa seus dados usando chaves de criptografia de propriedade da AWS do AWS Key Management Service (AWS KMS). Você não precisa tomar nenhuma ação para proteger as chaves de propriedade da AWS que criptografam seus dados. Para obter mais informações, consulte as chaves de propriedade da AWS no Guia do desenvolvedor do AWS Key Management Service.

Opcionalmente, você pode configurar uma chave KMS gerenciada pelo cliente para ter controle total sobre o ciclo de vida da chave, incluindo criação, rotação, desativação e gerenciamento de políticas de acesso.

Criptografando dados em repouso usando chaves KMS gerenciadas pelo cliente

Como o Amazon Connect Decisions usa uma chave KMS gerenciada pelo cliente

Quando você configura uma chave KMS gerenciada pelo cliente, o Amazon Connect Decisions a usa para criptografar todos os dados em sua instância em repouso. Isso inclui dados armazenados em toda a infraestrutura subjacente do serviço.

O serviço acessa sua chave por meio de três mecanismos:

  • Principal do serviço — O principal do scn.amazonaws.com serviço chama o KMS diretamente para criptografar, descriptografar e GenerateDataKey operar, transmitindo contexto de criptografia e cabeçalhos secundários confusos.

  • Subsídios — O serviço cria concessões em sua chave quando você cria uma instância. Essas concessões permitem que os serviços dependentes da AWS criptografem e descriptografem dados usando sua chave. As concessões são retiradas quando a instância é excluída.

  • Função de instância via FAS — Uma função vinculada ao serviço acessa sua chave por meio da scn.<region>.amazonaws.com ViaService condição quando você interage com o console.

Contexto de criptografia: todas as operações diretas do KMS incluem o seguinte contexto de criptografia:

{"aws:scn:arn": "arn:aws:scn:<region>:<account-id>:instance/<instance-id>"}

Cache de chaves de dados: o Amazon Connect Decisions armazena chaves de dados em cache por até 15 minutos. Isso significa que, após você desativar ou revogar o acesso à sua chave KMS, o serviço poderá continuar usando uma chave de dados em cache por até 15 minutos antes que as operações comecem a falhar.

Configurando uma chave KMS gerenciada pelo cliente

O Amazon Connect Decisions suporta somente chaves KMS de criptografia simétrica. Multi-region as chaves são suportadas.

Configurando permissões para usar uma chave KMS gerenciada pelo cliente

Para usar uma chave KMS gerenciada pelo cliente, configure sua política de chaves seguindo estas três etapas:

  1. Crie uma chave KMS com a política básica abaixo.

  2. Crie uma instância do Amazon Connect Decisions e selecione essa chave.

  3. (Opcional, recomendado) Atualize a política de chaves com restrições no nível da instância.

Etapa 1 — Crie uma chave com a política básica

Abra o console do AWS KMS, escolha Criar chave e substitua a política padrão pela seguinte. <customer-account-id>Substitua pelo ID da sua conta da AWS e <region> pela sua região da AWS.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAccountRootFullAccess", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::<customer-account-id>:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "AllowScnRetrievalOfKeyMetadata", "Effect": "Allow", "Principal": { "Service": "scn.amazonaws.com" }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "<customer-account-id>" } } }, { "Sid": "AllowScnEncryptDecryptWithContext", "Effect": "Allow", "Principal": { "Service": "scn.amazonaws.com" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey", "kms:GenerateDataKeyWithoutPlaintext" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": "<customer-account-id>" } } }, { "Sid": "AllowScnCryptoViaDependencyServices", "Effect": "Allow", "Principal": { "Service": "scn.amazonaws.com" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "redshift-serverless.<region>.amazonaws.com", "aoss.<region>.amazonaws.com", "dynamodb.<region>.amazonaws.com", "s3.<region>.amazonaws.com" ] } } }, { "Sid": "AllowScnCreateGrantForDependencyServices", "Effect": "Allow", "Principal": { "Service": "scn.amazonaws.com" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Encrypt", "Decrypt", "GenerateDataKey", "GenerateDataKeyWithoutPlaintext", "DescribeKey", "RetireGrant", "ReEncryptFrom", "ReEncryptTo", "CreateGrant" ] }, "Bool": { "kms:GrantIsForAWSResource": "true" } } }, { "Sid": "AllowInstanceRoleDescribeKey", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "kms:DescribeKey", "Resource": "*", "Condition": { "ArnLike": { "aws:PrincipalArn": "arn:aws:iam::<customer-account-id>:role/service-role/scn-instance-role-*" }, "StringEquals": { "kms:ViaService": "scn.<region>.amazonaws.com" } } }, { "Sid": "AllowInstanceRoleEncryptDecrypt", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "kms:Decrypt", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "ArnLike": { "aws:PrincipalArn": "arn:aws:iam::<customer-account-id>:role/service-role/scn-instance-role-*" }, "StringEquals": { "kms:ViaService": "scn.<region>.amazonaws.com" } } }, { "Sid": "AllowInstanceRoleCreateGrant", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "ArnLike": { "aws:PrincipalArn": "arn:aws:iam::<customer-account-id>:role/service-role/scn-instance-role-*" }, "StringEquals": { "kms:ViaService": "scn.<region>.amazonaws.com" }, "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Encrypt", "Decrypt", "GenerateDataKey", "GenerateDataKeyWithoutPlaintext", "DescribeKey", "CreateGrant" ] }, "Bool": { "kms:GrantIsForAWSResource": "true" } } } ] }

Explicações da declaração de política:

  • AllowAccountRootFullAccess— Garante que o proprietário da chave mantenha o controle total. Necessário para evitar o bloqueio da chave.

  • AllowScnRetrievalOfKeyMetadata— Permite que o serviço valide a configuração da chave durante a criação da instância. Escopo para sua conta viaaws:SourceAccount.

  • AllowScnEncryptDecryptWithContext— Permite operações criptográficas diretas em seus dados. Após a Etapa 3, esse escopo é ampliado para sua instância específica por meio do contexto de criptografia.

  • AllowScnCryptoViaDependencyServices— Permite operações criptográficas por meio de serviços de dependência que não oferecem suporte ao contexto de criptografia. Com escopo definido por meio kms:ViaService de dois terminais de serviço específicos.

  • AllowScnCreateGrantForDependencyServices— Permite a criação de subsídios para serviços de dependência. Limitado às operações listadas e restrito somente aos recursos da AWS.

  • AllowInstanceRoleDescribeKey— permite que a função vinculada ao serviço da instância descreva a chave por meio do FAS.

  • AllowInstanceRoleEncryptDecrypt— Permite que a função da instância decifre e gere chaves de dados via FAS.

  • AllowInstanceRoleCreateGrant— Permite que a função da instância crie concessões para integrações posteriores.

Etapa 2 — Crie sua instância do Amazon Connect Decisions

Durante a criação da instância, selecione Chave gerenciada pelo cliente nas configurações de criptografia e escolha a chave que você criou na Etapa 1.

Importante

Você não pode alterar essa seleção após a criação da instância. Se você precisar usar uma chave diferente no futuro, deverá criar uma nova instância.

Etapa 3 (opcional) — Adicionar restrições no nível da instância

Depois de criar sua instância, atualize a política de chaves para restringir o acesso somente a essa instância. Isso evita que outras instâncias na mesma conta usem a chave.

Substitua <customer-account-id><region>, e <instance-id> (o UUID visível no console do Amazon Connect Decisions).

As mudanças da política básica são:

  • Adicione aws:SourceArn condições às declarações principais do serviço, restringindo ao ARN da sua instância.

  • Adicione kms:EncryptionContext:aws:scn:arn condições às operações criptográficas, exigindo que o contexto de criptografia corresponda à sua instância.

Política atualizada (mostrando somente as declarações que mudam):

AllowScnRetrievalOfKeyMetadata— adicionar ArnLike condição:

"Condition": { "StringEquals": { "aws:SourceAccount": "<customer-account-id>" }, "ArnLike": { "aws:SourceArn": "arn:aws:scn:<region>:<customer-account-id>:instance/<instance-id>" } }

AllowScnEncryptDecryptWithContext— adição EncryptionContext e SourceArn condições:

"Condition": { "StringEquals": { "aws:SourceAccount": "<customer-account-id>", "kms:EncryptionContext:aws:scn:arn": "arn:aws:scn:<region>:<customer-account-id>:instance/<instance-id>" }, "ArnLike": { "aws:SourceArn": "arn:aws:scn:<region>:<customer-account-id>:instance/<instance-id>" } }

AllowInstanceRoleEncryptDecrypt— adicionar EncryptionContext condição:

"Condition": { "ArnLike": { "aws:PrincipalArn": "arn:aws:iam::<customer-account-id>:role/scn-instance-role-*" }, "StringEquals": { "kms:EncryptionContext:aws:scn:arn": "arn:aws:scn:<region>:<customer-account-id>:instance/<instance-id>", "kms:ViaService": "scn.<region>.amazonaws.com" } }
Criação de uma nova instância com uma chave KMS gerenciada pelo cliente

Você seleciona a chave KMS durante a criação da instância no console do Amazon Connect Decisions. Para obter mais informações sobre a criação de uma instância, consulte Criação de uma instância do Amazon Connect Decisions.

Alterando a configuração de criptografia em uma instância existente

O Amazon Connect Decisions não suporta a alteração da chave KMS em uma instância ativa. Se você precisar usar uma chave diferente, deverá criar uma nova instância configurada com a chave desejada. Os dados criptografados com a chave anterior não são retidos na nova instância.

Definindo o escopo do acesso à chave KMS gerenciada pelo cliente

Você pode restringir o acesso à sua chave usando os seguintes mecanismos:

  • Contexto de criptografia — Use kms:EncryptionContext:aws:scn:arn em sua política de chaves para restringir as operações a uma instância específica (consulte a Etapa 3).

  • Proteção delegada confusa — O serviço passa aws:SourceAccount e aws:SourceArn recebe chamadas KMS. Use essas condições para garantir que somente sua conta e instância possam acessar a chave.

  • kms: ViaService — A função da instância acessa a chave somente por meioscn.<region>.amazonaws.com, impedindo o uso direto fora do serviço.

  • Restrições de concessão — As concessões têm escopo kms:GrantIsForAWSResource e são limitadas às operações listadas explicitamente.

nota

Os serviços de dependência (Redshift Serverless, OpenSearch Serverless, DynamoDB) não suportam contexto de criptografia nem cabeçalhos secundários confusos. O acesso a esses serviços é definido kms:ViaService apenas usando.

Monitoramento da interação das decisões do Amazon Connect com o AWS KMS

Você pode usar CloudTrail a AWS para rastrear solicitações de KMS que o Amazon Connect Decisions faz em seu nome. Procure entradas de registro com os seguintes valores:

Campo Valor esperado

eventName

Decrypt, GenerateDataKey, CreateGrant

usuário Identity.invokedBy

scn.amazonaws.com

solicitação Parameters.encryptionContext

{"aws:scn:arn": "arn:aws:scn:<region>:<account-id>:instance/<instance-id>"}

Você pode filtrar CloudTrail eventos usando esses valores para auditar quando e como o Amazon Connect Decisions acessa sua chave KMS.

Para obter mais informações, consulte Registro de chamadas de API do AWS KMS com a AWS CloudTrail.