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á.
nota
Não é possível especificar um contexto de criptografia em uma operação criptográfica com uma chave do KMS assimétrica ou uma chave do KMS de Hash-based message authentication code (HMAC – Código de autenticação de mensagem por hash). Algoritmos assimétricos e algoritmos de Message authentication code (MAC – Código de autenticação de mensagem) não são compatíveis com um contexto de criptografia.
Todas as operações AWS KMS criptográficas com chaves KMS de criptografia simétrica aceitam um contexto de criptografia, um conjunto opcional de pares de chave-valor não secretos que podem conter informações contextuais adicionais sobre os dados. Você pode inserir o contexto de criptografia nas Encrypt
operações AWS KMS para aprimorar a autorização e a auditabilidade de suas chamadas de descriptografia da AWS KMS API. AWS KMS usa o contexto de criptografia como dados autenticados adicionais (AAD) para oferecer suporte à criptografia autenticada. O contexto de criptografia é associado de maneira criptográfica ao texto cifrado, de modo que o mesmo contexto de criptografia é necessário para descriptografar os dados.
O contexto de criptografia não é secreto nem criptografado. Ele é exibido em texto simples em Logs do AWS CloudTrail, para você possa usá-lo para identificar e categorizar suas operações de criptografia. Seu contexto de criptografia não deve incluir informações confidenciais. Recomendamos que o seu contexto de criptografia descreva os dados que estão sendo criptografados ou descriptografados. Por exemplo, quando você criptografar um arquivo, poderá usar parte do caminho do arquivo como contexto de criptografia.
"encryptionContext": { "department": "10103.0" }
Por exemplo, ao criptografar volumes e snapshots criados com a operação Amazon Elastic Block Store (Amazon EBS) CreateSnapshot, o Amazon EBS usa o ID do volume como valor do contexto de criptografia.
"encryptionContext": { "aws:ebs:id": "
vol-abcde12345abc1234
" }
Você também pode usar o contexto de criptografia para refinar ou limitar o acesso à AWS KMS keys sua conta. Você pode usar o contexto de criptografia como uma restrição em concessões e como uma condição nas declarações de política.
Para saber como usar o contexto de criptografia para proteger a integridade dos dados criptografados, consulte a postagem Como proteger a integridade de seus dados criptografados usando AWS Key Management Service e EncryptionContext
Mais informações sobre contexto de criptografia.
Regras de contexto de criptografia
AWS KMS impõe as seguintes regras para chaves e valores de contexto de criptografia.
-
A chave e o valor em um par de contexto de criptografia devem ser strings literais simples. Se você usar um tipo diferente, como um inteiro ou flutuante, o AWS KMS o interpretará como uma string.
-
As chaves e valores em um contexto de criptografia podem incluir caracteres Unicode. Se um contexto de criptografia incluir caracteres que não são permitidos em políticas de chaves ou políticas do IAM, você não poderá especificar o contexto de criptografia em chaves de condição de política, como kms:EncryptionContext:context-key e kms:EncryptionContextKeys. Para obter detalhes sobre as regras de documento de política de chaves, consulte Formato de política de chaves. Para obter detalhes sobre as regras de documento de política do IAM, consulte Requisitos de nome do IAM no Guia do usuário do IAM.
Contexto de criptografia em políticas
O contexto de criptografia é usado principalmente para verificar a integridade e a autenticidade. No entanto, também é possível usar o contexto de criptografia para controlar o acesso a AWS KMS keys de criptografia simétrica em políticas de chave e em políticas do IAM.
As chaves de EncryptionContextKeys condição kmsEncryptionContext:: e kms: permitem (ou negam) uma permissão somente quando a solicitação inclui chaves de contexto de criptografia específicas ou pares de valores-chave.
Por exemplo, a instrução de política de chave a seguir permite que a função RoleForExampleApp
use a chave do KMS em operações Decrypt
. Ela usa a chave da condição kms:EncryptionContext:context-key
para conceder essa permissão somente quando o contexto de criptografia na solicitação inclui um par de contexto de criptografia AppName:ExampleApp
.
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp"
},
"Action": "kms:Decrypt",
"Resource": "*",
"Condition": {
"StringEquals": {
"kms:EncryptionContext:AppName": "ExampleApp"
}
}
}
Para obter mais informações sobre essas chaves de condição de contexto de criptografia, consulte Chaves de condição para AWS KMS.
Contexto de criptografia em concessões
Ao criar uma concessão, você pode incluir restrições de concessão que estabeleçam condições para as permissões de concessão. AWS KMS suporta duas restrições de concessão EncryptionContextEquals
e EncryptionContextSubset
ambas envolvem o contexto de criptografia em uma solicitação de uma operação criptográfica. Quando você usa essas restrições de concessão, as permissões na concessão são efetivas apenas quando o contexto de criptografia na solicitação para a operação criptográfica atende aos requisitos das restrições de concessão.
Por exemplo, você pode adicionar uma restrição de EncryptionContextEquals
concessão a uma concessão que permita a GenerateDataKeyoperação. Com essa restrição, a concessão permite a operação apenas quando o contexto de criptografia na solicitação é uma correspondência com maiúsculas e minúsculas ao contexto de criptografia na restrição de concessão.
$
aws kms create-grant \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --grantee-principal arn:aws:iam::111122223333:user/exampleUser \ --retiring-principal arn:aws:iam::111122223333:role/adminRole \ --operations GenerateDataKey \ --constraints EncryptionContextEquals={Purpose=Test}
Uma solicitação como a seguinte da entidade principal receptora da concessão atenderia à restrição EncryptionContextEquals
.
aws kms generate-data-key \ --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --key-spec AES_256 \ --encryption-context Purpose=Test
$
Para obter detalhes sobre as restrições de concessão, consulte Usar restrições de concessão. Para obter informações detalhadas sobre concessões, consulte Subsídios em AWS KMS.
Registrar em log o contexto de criptografia
AWS KMS usa AWS CloudTrail para registrar o contexto de criptografia para que você possa determinar quais chaves e dados do KMS foram acessados. A entrada de log mostra exatamente quais chaves do KMS foram usada para criptografar ou descriptografar dados específicos referenciados pelo contexto de criptografia na entrada de log.
Importante
Como o contexto de criptografia é registrado em log, ele não deve conter informações confidenciais.
Armazenar o contexto de criptografia
Para simplificar o uso de qualquer contexto de criptografia quando você chama as operações Decrypt
ou ReEncrypt
, é possível armazenar o contexto de criptografia com os dados criptografados. Recomendamos que você armazene apenas o suficiente do contexto de criptografia para ajudar a criar o contexto de criptografia por completo quando você precisar dele para criptografia ou descriptografia.
Por exemplo, se o contexto de criptografia é o caminho para um arquivo, armazene apenas parte desse caminho com o conteúdo do arquivo criptografado. Quando você precisar do contexto de criptografia completo, reconstrua-o do fragmento armazenado. Se alguém tentar violar o arquivo, como renomear ou mover para um local diferente, o valor do contexto de criptografia será alterado e a solicitação de descriptografia falhará.