+ All Categories
Home > Documents > AWS Key Management Service · • Ativar e desativar a rotação automática do material...

AWS Key Management Service · • Ativar e desativar a rotação automática do material...

Date post: 12-Dec-2018
Category:
Upload: vuongdan
View: 219 times
Download: 0 times
Share this document with a friend
323
AWS Key Management Service Guia do desenvolvedor
Transcript
Page 1: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management ServiceGuia do desenvolvedor

Page 2: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedor

AWS Key Management Service: Guia do desenvolvedorCopyright © 2019 Amazon Web Services, Inc. and/or its affiliates. All rights reserved.

Amazon's trademarks and trade dress may not be used in connection with any product or service that is not Amazon's, in any mannerthat is likely to cause confusion among customers, or in any manner that disparages or discredits Amazon. All other trademarks notowned by Amazon are the property of their respective owners, who may or may not be affiliated with, connected to, or sponsored byAmazon.

Page 3: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedor

Table of ContentsO que é AWS Key Management Service? .............................................................................................. 1

Conceitos .................................................................................................................................. 2Chaves mestre personalizadas (CMKs) .................................................................................. 2Chaves de dados ............................................................................................................... 4Criptografia de envelope ...................................................................................................... 5Contexto de criptografia ....................................................................................................... 6Políticas de chaves ............................................................................................................. 7Concessões ....................................................................................................................... 7Tokens de concessão ......................................................................................................... 7Auditoria de uso da CMK .................................................................................................... 8Infraestrutura de gerenciamento de chaves ............................................................................ 8

Conceitos básicos ............................................................................................................................... 9Criação de chaves ...................................................................................................................... 9

Criando CMKs (Console) ..................................................................................................... 9Criando CMKs (KMS API) .................................................................................................. 12

Como visualizar as chaves ......................................................................................................... 13Visualização de CMKs (Console) ........................................................................................ 13Visualização de CMKs (KMS API) ....................................................................................... 15Como encontrar o ID de chave e o ARN .............................................................................. 18

Edição de chaves ..................................................................................................................... 20Edição de CMKs (Console) ................................................................................................ 20Edição de CMKs (KMS API) ............................................................................................... 26

Chaves de tags ........................................................................................................................ 27Gerenciamento de tags da CMK (Console) ........................................................................... 27Gerenciamento de tags da CMK (KMS API) .......................................................................... 28

Ativação e desativação de chaves ............................................................................................... 30Ativação e desativação de CMKs (Console) .......................................................................... 30Ativação e desativação de CMKs (KMS API) ........................................................................ 31

Autenticação e controle de acesso ...................................................................................................... 32Autenticação ............................................................................................................................ 32Controle de acesso ................................................................................................................... 33Visão geral do gerenciamento de acesso ..................................................................................... 34

Recursos e operações do AWS KMS ................................................................................... 34Gerenciamento do acesso aos CMKs do AWS KMS .............................................................. 35Especificação de permissões em uma política ....................................................................... 35Especificação de condições em uma política ......................................................................... 36

Como usar políticas de chaves ................................................................................................... 36Visão geral de políticas de chaves ...................................................................................... 36Política de chaves padrão .................................................................................................. 37Política de chaves de exemplo ........................................................................................... 43Alterar uma política de chaves ............................................................................................ 47Manter as políticas de chaves atualizadas ............................................................................ 53

Usar políticas do IAM ................................................................................................................ 55Visão geral de políticas do IAM .......................................................................................... 56Permissões necessárias para usar o console do AWS KMS .................................................... 56Políticas gerenciadas (predefinidas) da AWS para AWS KMS .................................................. 57Exemplos de política gerenciada pelo cliente ........................................................................ 57

Referência de permissões da API do AWS KMS ........................................................................... 59Como usar condições de política ................................................................................................ 65

Chaves de condição globais da AWS .................................................................................. 66Chaves de condição do AWS KMS ..................................................................................... 67

Como usar concessões ............................................................................................................. 84Uso de funções vinculadas ao serviço ......................................................................................... 86

iii

Page 4: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedor

Permissões da função vinculada a serviço para armazenamento de chaves personalizado doAWS KMS ....................................................................................................................... 87

Como determinar o acesso ........................................................................................................ 87Como compreender a avaliação de política ........................................................................... 88Como examinar a política de chaves ................................................................................... 88Como examinar as políticas do IAM .................................................................................... 92Como examinar concessões ............................................................................................... 93

Mudança de chaves .......................................................................................................................... 95Como funciona a mudança de chaves automática ......................................................................... 96Como habilitar e desabilitar a mudança de chaves automática ......................................................... 97

Como habilitar e desabilitar a alternância de chaves (Console) ................................................ 97Como habilitar e desabilitar a alternância de chaves (KMS API) ............................................... 98

Mudança de chaves manualmente .............................................................................................. 99Importação do material de chaves ..................................................................................................... 101

Sobre o material de chaves importadas ...................................................................................... 101Como importar o material de chaves .......................................................................................... 102Como importar novamente o material de chaves .......................................................................... 103Como identificar as CMKs com material de chave importada ......................................................... 103

Para identificar o valor da propriedade Origin de CMKs (Console) ........................................ 103Para identificar o valor da propriedade Origin de CMKs (KMS API) ....................................... 104

Etapa 1: criar uma CMK sem material de chaves ......................................................................... 105Como criar uma CMK sem material de chaves (Console) ...................................................... 105Como criar uma CMK sem material de chaves (KMS API) ..................................................... 108

Etapa 2: Fazer download da chave pública e do token de importação .............................................. 108Fazer download da chave pública e do token de importação (Console) .................................... 110Fazer download da chave pública e do token de importação (KMS API) ................................... 112

Etapa 3: Criptografar o material de chaves ................................................................................. 113Exemplo: Criptografar material de chaves com OpenSSL ...................................................... 113

Etapa 4: Importar o material de chaves ...................................................................................... 114Importar material de chaves (Console) ............................................................................... 114Importar material de chaves (KMS API) .............................................................................. 116

Como excluir o material de chaves ............................................................................................ 116Como a exclusão do material de chaves afeta os serviços da AWS integrados ao AWS KMS ....... 117Excluir o material de chaves (Console) ............................................................................... 117Excluir o material de chaves (KMS API) ............................................................................. 118

Exclusão de chaves mestras de cliente .............................................................................................. 119Como funciona a exclusão de CMKs ......................................................................................... 119

Como a exclusão de CMKs afeta os serviços integrados da AWS ........................................... 120Programação e cancelamento de exclusão de chaves .................................................................. 121

Como usar Console de gerenciamento da AWS ................................................................... 121Como usar AWS CLI ....................................................................................................... 122Como usar AWS SDK for Java ......................................................................................... 123

Adição de permissões para programar e cancelar a exclusão de chaves .......................................... 123Como usar Console de gerenciamento da AWS ................................................................... 124Como usar AWS CLI ....................................................................................................... 125

Como criar um alarme do Amazon CloudWatch ........................................................................... 126Requisitos para um alarme do CloudWatch ......................................................................... 127Criar o alarme do CloudWatch .......................................................................................... 127

Como determinar a utilização passada de uma CMK .................................................................... 130Como examinar as permissões da CMK para determinar o escopo de utilização em potencial ...... 130Como examinar os logs do AWS CloudTrail para determinar a utilização real ............................ 130

O uso de um armazenamento de chaves personalizado ........................................................................ 133O que é um Armazenamento de Chave Personalizada? ................................................................ 135

Armazenamento de chaves personalizado do AWS KMS ....................................................... 135Cluster do AWS CloudHSM .............................................................................................. 136kmsuser Usuário de criptografia ....................................................................................... 136CMKs em um armazenamento de chaves personalizado ....................................................... 137

iv

Page 5: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedor

Como controlar o acesso ao seu Armazenamento de chaves personalizado ..................................... 138Autorização de gerentes e usuários do Armazenamento de chaves personalizado ..................... 138Autorizar o AWS KMS a gerenciar recursos do AWS CloudHSM e Amazon EC2 ....................... 139

A criação do armazenamento de chaves personalizado ................................................................ 140Organizar os pré-requisitos ............................................................................................... 141Crie um Armazenamento de Chaves Personalizado (Console) ............................................... 142Criar um armazenamento de chaves personalizado (API) ...................................................... 143

O gerenciamento do armazenamento de chaves personalizado ...................................................... 144A visualização de um armazenamento de chaves personalizado ............................................. 144Editar as configurações do armazenamento de chaves personalizado ..................................... 146Conexão e Desconexão de um armazenamento de chaves personalizado ................................ 148A exclusão do armazenamento de chaves personalizado ...................................................... 153

O gerenciamento de CMKs em um armazenamento de chaves personalizado ................................... 155A criação de CMKs em um armazenamento de chaves personalizado ..................................... 156A visualização de CMKs em um armazenamento de chaves personalizado .............................. 160A utilização de CMKs em um armazenamento de chaves personalizado .................................. 161Como encontrar CMKs e materiais de chave ....................................................................... 162Programação de exclusão de CMKs de um armazenamento de chaves personalizado ................ 166

Solução de problemas do armazenamento de chaves personalizado ............................................... 167Como corrigir CMKs indisponíveis ..................................................................................... 167Como corrigir uma CMK com falha .................................................................................... 168Como corrigir uma falha de conexão .................................................................................. 168Como corrigir credenciais kmsuser inválidas ...................................................................... 169Como excluir material de chaves órfãs ............................................................................... 170Como recuperar materiais de chaves excluídos de uma CMK ................................................ 171Como fazer login como kmsuser ...................................................................................... 172

Como o estado da chave afeta o uso de uma chave mestra de cliente .................................................... 175Como os serviços da AWS, usam o AWS KMS ................................................................................... 179

AWS CloudTrail ...................................................................................................................... 179Compreender quando sua CMK é usada ............................................................................ 180Compreender a frequência com que sua CMK é usada ......................................................... 184

Amazon DynamoDB ................................................................................................................ 184Uso de CMKs e chaves de dados ..................................................................................... 185Autorização de uso da chave de serviço padrão .................................................................. 186Contexto de criptografia do DynamoDB .............................................................................. 188Monitorar interação do DynamoDB com o AWS KMS ........................................................... 189

Amazon Elastic Block Store (Amazon EBS) ................................................................................ 192Criptografia do Amazon EBS ............................................................................................ 192Uso de CMKs e chaves de dados ..................................................................................... 193Contexto de criptografia do Amazon EBS ........................................................................... 193Detecção de falhas do Amazon EBS ................................................................................. 194Uso do AWS CloudFormation para criar volumes criptografados do Amazon EBS ...................... 194

Amazon Elastic Transcoder ...................................................................................................... 194Criptografia do arquivo de entrada ..................................................................................... 195Descriptografia do arquivo de entrada ................................................................................ 195Criptografia do arquivo de saída ........................................................................................ 196Proteção de conteúdo HLS ............................................................................................... 198Contexto de criptografia do Elastic Transcoder .................................................................... 198

Amazon EMR ......................................................................................................................... 199Como criptografar dados no EMR File System (EMRFS) ....................................................... 199Como criptografar dados nos volumes de armazenamento dos nós de cluster ........................... 201Contexto de criptografia ................................................................................................... 202

Amazon Redshift ..................................................................................................................... 203Criptografia do Amazon Redshift ....................................................................................... 203Contexto de criptografia ................................................................................................... 203

Amazon Relational Database Service (Amazon RDS) ................................................................... 204Contexto de criptografia do Amazon RDS ........................................................................... 204

v

Page 6: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedor

AWS Secrets Manager ............................................................................................................. 205Proteção do valor do segredo ........................................................................................... 205Criptografia e descriptografia de segredos .......................................................................... 206Usar a CMK do AWS KMS ............................................................................................... 207Autorização do uso da CMK ............................................................................................. 208Contexto de criptografia do Secrets Manager ...................................................................... 210Monitorar interação do Secrets Manager com o AWS KMS .................................................... 211

Amazon Simple Email Service (Amazon SES) ............................................................................. 213Visão geral da criptografia do Amazon SES usando o AWS KMS ........................................... 213Contexto de criptografia do Amazon SES ........................................................................... 214Concessão de permissão do Amazon SES para usar sua chave mestra de cliente (CMK) doAWS KMS ...................................................................................................................... 214Como recuperar e descriptografar mensagens de e-mail ....................................................... 215

Amazon Simple Storage Service (Amazon S3) ............................................................................ 215Criptografia do servidor: usando SSE-KMS ......................................................................... 216Uso do cliente de criptografia do Amazon S3 ...................................................................... 216Contexto de criptografia ................................................................................................... 217

AWS Systems Manager Parameter Store .................................................................................... 217Criptografar e descriptografar parâmetros Secure String ........................................................ 218Definir permissões para criptografar e descriptografar valores de parâmetro ............................. 219Contexto de criptografia do Parameter Store ....................................................................... 220Solução de problemas de CMKs no Parameter Store ........................................................... 221

Amazon WorkMail ................................................................................................................... 222Visão geral do Amazon WorkMail ...................................................................................... 222Criptografia do Amazon WorkMail ...................................................................................... 222Contexto de criptografia do Amazon WorkMail ..................................................................... 224

Amazon WorkSpaces ............................................................................................................... 224Visão geral da criptografia do Amazon WorkSpaces usando o AWS KMS ................................ 225Contexto de criptografia do Amazon WorkSpaces ................................................................ 226Conceder permissão ao Amazon WorkSpaces para usar uma CMK em seu nome ..................... 226

Como monitorar chaves mestras de cliente ......................................................................................... 229Ferramentas de monitoramento ................................................................................................. 229

Ferramentas automatizadas .............................................................................................. 229Ferramentas manuais ...................................................................................................... 230

Monitorar com o CloudWatch .................................................................................................... 231Métricas e dimensões ...................................................................................................... 231Criação de alarmes ......................................................................................................... 232Eventos AWS KMS ......................................................................................................... 234

Registro em log de chamadas à API do AWS KMS com o AWS CloudTrail .............................................. 236Informações do AWS KMS em CloudTrail ................................................................................... 236Noções básicas das entradas dos arquivos de log do AWS KMS .................................................... 237

CreateAlias ..................................................................................................................... 237CreateGrant .................................................................................................................... 238CreateKey ...................................................................................................................... 239Descriptografar ............................................................................................................... 240DeleteAlias ..................................................................................................................... 240DescribeKey ................................................................................................................... 241DisableKey ..................................................................................................................... 243EnableKey ...................................................................................................................... 243Encrypt .......................................................................................................................... 244GenerateDataKey ............................................................................................................ 245GenerateDataKeyWithoutPlaintext ...................................................................................... 245GenerateRandom ............................................................................................................ 246GetKeyPolicy .................................................................................................................. 247ListAliases ...................................................................................................................... 247ListGrants ...................................................................................................................... 248ReEncrypt ...................................................................................................................... 249

vi

Page 7: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedor

Amazon EC2 Exemplo 1 .................................................................................................. 249Amazon EC2 Exemplo 2 .................................................................................................. 251

Utilização de um VPC Endpoint ........................................................................................................ 256Criar um VPC endpoint ............................................................................................................ 257

Criação de um VPC endpoint (console) ............................................................................. 257Criar um VPC endpoint AWS KMS (AWS CLI) ..................................................................... 258

Conexão a um VPC endpoint ................................................................................................... 259Utilização de um VPC endpoint em uma declaração de política ...................................................... 260Auditoria da utilização da CMK para sua VPC ............................................................................. 262

Programação da API do AWS KMS ................................................................................................... 264Como criar um cliente .............................................................................................................. 264Trabalhar com chaves ............................................................................................................. 265

Criação de chave mestra de cliente ................................................................................... 265Como gerar uma chave de dados ...................................................................................... 267Visualização de uma chave mestra de cliente ...................................................................... 269Obtenção de IDs e ARNs de chave das chaves mestras de cliente ......................................... 270Ativação de chaves mestras de cliente ............................................................................... 272Desativação de chaves mestras de cliente .......................................................................... 273

Criptografia e descriptografia de chaves de dados ....................................................................... 275Criptografia de uma chave de dados .................................................................................. 275Descriptografia de uma chave de dados ............................................................................. 277Nova criptografia de uma chave de dados sob uma chave mestra do cliente diferente ................ 278

Como trabalhar com políticas de chaves .................................................................................... 280Como listar nomes de política de chaves ............................................................................ 281Como obter uma política de chaves ................................................................................... 282Como configurar uma política de chaves ............................................................................ 284

Como trabalhar com concessões ............................................................................................... 287Como criar uma concessão .............................................................................................. 288Visualização de concessões ............................................................................................. 289Como remover uma concessão ......................................................................................... 291Como revogar uma concessão .......................................................................................... 292

Trabalhar com aliases .............................................................................................................. 294Como criar um alias ........................................................................................................ 295Como listar aliases .......................................................................................................... 297Atualização de um alias ................................................................................................... 299Como excluir um alias ..................................................................................................... 301

Conceitos básicos de criptografia ...................................................................................................... 303Como a criptografia de chave simétrica funciona ......................................................................... 303

Criptografia e descriptografia ............................................................................................ 303Criptografia autenticada ............................................................................................................ 304Contexto de criptografia ........................................................................................................... 305

Contexto de criptografia em concessões e políticas de chave ................................................. 305Registrar em log o contexto de criptografia ......................................................................... 305Armazenar o contexto de criptografia ................................................................................. 306

Referência: AWS KMS e terminologia de criptografia .................................................................... 306Limites ........................................................................................................................................... 308

Chaves mestre do cliente (CMKs): 1.000 .................................................................................... 308Aliases: 1.100 ......................................................................................................................... 309Tamanho do documento da política de chaves: 32 KB .................................................................. 309Concessões por CMK: 2.500 .................................................................................................... 309Concessões para um principal específico por CMK: 500 ............................................................... 309Solicitações por segundo: varia ................................................................................................. 310

Histórico da documentação ............................................................................................................... 313Atualizações recentes .............................................................................................................. 313Atualizações anteriores ............................................................................................................ 314

vii

Page 8: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedor

O que é AWS Key ManagementService?

AWS Key Management Service (AWS KMS) é um serviço gerenciado que facilita a criação e o controledas chaves de criptografia usadas para criptografar seus dados. As chaves mestras que você cria no AWSKMS são protegidos por módulos de criptografia validados por FIPS 140-2.

O AWS KMS é integrado à maioria dos outros serviços do AWS que criptografam seus dados com aschaves de criptografia que você gerencia. O AWS KMS também é integrado ao AWS CloudTrail parafornecer logs de utilização das chaves de criptografia para ajudar a cumprir seus requisitos de auditoria,normativos e de conformidade.

Você pode realizar as seguintes ações de gerenciamento em chaves mestras do AWS KMS:

• Criar, descrever e listar chaves mestras• Habilitar e desabilitar chaves mestras• Criar e visualizar políticas de controle de concessões e de acesso para suas chaves mestras• Ativar e desativar a rotação automática do material criptográfico em uma chave mestra• Importar material criptográfico para uma chave mestra do AWS KMS• Marcar suas chaves mestras para facilitar a identificação, categorização e rastreamento• Criar, excluir, listar e atualizar alias, que são nomes amigáveis associados a suas chaves mestras• Excluir chaves mestras para concluir o ciclo de vida da chave

Com o AWS KMS você também pode realizar as seguintes funções criptográficas usando chaves mestras:

• Criptografar, descriptografar e recriptografar os dados• Gerar chaves de criptografia de dados que você possa exportar do serviço de texto simples ou

criptografadas sob uma chave mestra que não deixa o serviço• Gerar números aleatórios adequados para aplicativos de criptografia

Ao usar o AWS KMS, você ganha mais controle sobre o acesso aos dados que você criptografa. Vocêpode usar os recursos de criptografia e gerenciamento de chaves diretamente nos aplicativos ou por meiodos serviços da AWS integrados ao AWS KMS. Se você estiver escrevendo aplicativos para a AWS ouusando serviços da AWS, o AWS KMS permite manter controle sobre quem pode usar as chaves mestrase obter acesso aos dados criptografados.

O AWS KMS é integrado com o AWS CloudTrail, um serviço que fornece os arquivos de log para umbucket do Amazon S3 que você designar. Com o uso do CloudTrail, você pode monitorar e investigar comoe quando suas chaves mestras foram usadas e por quem.

Saiba mais

• Para uma introdução mais detalhada ao AWS KMS, consulte Conceitos do AWS KMS (p. 2).• Para obter informações sobre a API do AWS KMS, consulte o AWS Key Management Service API

Reference.

1

Page 9: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorConceitos

• Para obter informações técnicas detalhadas sobre como o AWS KMS usa criptografia e protege aschaves mestras, consulte o whitepaper Detalhes criptográficos do AWS Key Management Service.

Definição de preço do AWS KMS

Assim como ocorre com outros produtos da AWS, não há contratos ou compromissos mínimos para usodo AWS KMS. Para obter mais informações sobre os preços do AWS KMS, consulte Definição de preço doAWS Key Management Service.

AWS Key Management Service ConceitosAprenda os termos e conceitos básicos do AWS Key Management Service (AWS KMS) e como elestrabalham juntos para ajudar a proteger seus dados.

Tópicos• Chaves mestre personalizadas (CMKs) (p. 2)• Chaves de dados (p. 4)• Criptografia de envelope (p. 5)• Contexto de criptografia (p. 6)• Políticas de chaves (p. 7)• Concessões (p. 7)• Tokens de concessão (p. 7)• Auditoria de uso da CMK (p. 8)• Infraestrutura de gerenciamento de chaves (p. 8)

Chaves mestre personalizadas (CMKs)Os principais recursos do AWS KMS são chaves mestras de cliente (CMKs). Você pode usar uma CMKpara criptografar e descriptografar até 4 KB (4.096 bytes) de dados. Normalmente, você usa CMKs paragerar, criptografar e descriptografar as chaves de dados (p. 4) que você usa fora do AWS KMS paracriptografar seus dados. Essa estratégia é conhecida como criptografia de envelope (p. 5).

As CMKs são criadas em AWS KMS e nunca saem do AWS KMS sem estarem criptografadas. Para usarou gerenciar sua CMK, você pode acessá-los por meio do AWS KMS. Essa estratégia se diferencia daschaves de dados (p. 4). O AWS KMS não armazena, gerencia nem rastreia as chaves de dados. Vocêdeve usá-las fora do AWS KMS.

Existem três tipos de CMKs nas contas da AWS: CMKs gerenciadas pelo cliente, CMKs gerenciadas pelaAWS e CMKs de propriedade da AWS.

Tipo de CMK Pode visualizar Pode gerenciar Usada apenas para aminha conta da AWS

CMK gerenciada pelocliente (p. 3)

Sim Sim Sim

CMK gerenciada pelaAWS (p. 3)

Sim Não Sim

CMK de propriedade daAWS (p. 3)

Não Não Não

2

Page 10: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorChaves mestre personalizadas (CMKs)

Os serviços da AWS que se integram ao AWS KMS (p. 179) são diferentes no que se refere ao suporteàs CMKs. Alguns serviços criptografam os dados por padrão com uma CMK de propriedade da AWS.Alguns criptografam em CMKs gerenciadas pela AWS criadas na sua conta. Outros serviços permitem quevocê especifique uma CMK gerenciada pelo cliente criada por você. E outros oferecem suporte a todos ostipos de CMKs para permitir a facilidade de uma CMK de propriedade da AWS, a visibilidade de uma CMKgerenciada pela AWS ou o controle de uma CMK gerenciada pelo cliente.

CMKs gerenciadas pelo clienteCMKs gerenciadas pelo cliente são CMKs na sua conta da AWS, criadas e gerenciadas por você. Vocêtem controle total sobre essas CMKs, incluindo estabelecer e manter suas políticas de chaves, políticasdo IAM, além da (p. 32), ativação e desativação de concessões (p. 30), alternar seu material decriptografia (p. 95), adicionar tags (p. 27), criar aliases (p. 294) que se referem à CMK e programara exclusão de CMKs (p. 119).

Você pode usar suas CMKs gerenciadas pelo cliente em operações de criptografia e auditar o uso em logsdo AWS CloudTrail. Além disso, muitos serviços da AWS que se integram com o AWS KMS (p. 179)permitem que você especifique uma CMK gerenciada pelo cliente para proteger os dados armazenados egerenciados.

CMKs gerenciadas pelo cliente geram uma taxa mensal e uma taxa para uso que excede o nível gratuito.Elas são contabilizadas com base em limites (p. 308) do AWS KMS para a sua conta. Para obter maisdetalhes, consulte AWS Key Management Service Definição de preço e Limites (p. 308).

CMKs gerenciadas pela AWSAs CMKs gerenciadas pela AWS são as CMKs em sua conta que são criadas, gerenciadas e usadas emseu nome por um serviço da AWS integrado ao AWS KMS. Você pode identificar CMKs gerenciadas pelaAWS por seus aliases, os quais têm o formato aws/service-name, como aws/redshift.

Você pode visualizar as CMKs gerenciadas pela AWS na sua conta, visualizar suas políticas de chavese auditar o uso em logs do AWS CloudTrail. No entanto, não é possível gerenciar essas CMKs nemalterar suas permissões. Além disso, você não pode usar CMKs gerenciadas pela AWS em operaçõesde criptografia de forma direta; o serviço que as cria, usa-as em seu nome. Para visualizar a política dechaves de uma CMK gerenciada pela AWS, use a operação GetKeyPolicy. Você não pode visualizar apolítica de chaves no Console de gerenciamento da AWS, ou alterá-la de modo algum.

Você não paga uma taxa mensal por CMKs gerenciadas pela AWS. Elas podem estar sujeitas a taxas deuso que excede o nível gratuito, mas alguns serviços da AWS abrangem esses custos para você. Paraobter detalhes, consulte a seção de criptografia da documentação do serviço. As CMKs gerenciadas pelaAWS não são contabilizadas com base no limite do número de CMKs em cada região de sua conta, masquando são usadas em nome de um principal na sua conta, elas são contabilizadas com base no limite detaxa de solicitação. Para obter mais detalhes, consulte AWS Key Management Service Definição de preçoe Limites (p. 308).

CMKs de propriedade da AWSAs CMKs de propriedade da AWS não estão na sua conta da AWS. Elas fazem parte de uma coleção deCMKs que a AWS possui e gerencia para uso em várias contas da AWS. Os serviços da AWS podem usarCMKs de propriedade da AWS para proteger seus dados.

Você não pode visualizar, gerenciar ou usar CMKs de propriedade da AWS, tampouco auditar seu uso. Noentanto, você não precisa fazer nenhum trabalho nem alterar nenhum programa para proteger as chavesque criptografam seus dados.

Não é cobrada taxa mensal nem taxa de uso pelo uso de CMKs de propriedade da AWS e elas não sãocontabilizadas com base nos limites do AWS KMS para a sua conta.

3

Page 11: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorChaves de dados

Chaves de dadosAs chaves de dados são as chaves de criptografia que você pode usar para criptografar dados, incluindograndes quantidades de dados e outras chaves de criptografia de dados.

Você pode usar as AWS KMS chaves mestras de cliente (p. 2) (CMKs) para gerar, criptografar edescriptografar chaves de dados. No entanto, o AWS KMS não armazena, gerencia ou monitora as chavesde dados nem executa operações de criptografia com chaves de dados. Você deve usar e gerenciar aschaves de dados fora do AWS KMS.

Criação de uma chave de dados

Para criar uma chave de dados, chame a operação GenerateDataKey. O AWS KMS usa a CMK que vocêespecifica para gerar uma chave de dados. A operação retorna uma cópia de texto simples da chave dedados e uma cópia da chave de dados criptografada na CMK, conforme mostrado na imagem a seguir.

O AWS KMS também suporta a operação GenerateDataKeyWithoutPlaintext, que retorna apenasuma chave de dados criptografada. Quando precisar usar a chave de dados, peça ao AWS KMS paradescriptografá-la.

Criptografia de dados com uma chave de dados

O AWS KMS não pode usar uma chave de dados para criptografar os dados, mas você pode usar a chavede dados fora do KMS, usando, por exemplo, o OpenSSL ou uma biblioteca de criptografia como o SDK decriptografia da AWS.

Depois de usar a chave de dados de texto simples para criptografar dados e, em seguida, remova-a damemória assim que possível. Você pode armazenar seguramente as chaves de dados criptografadas comos dados criptografados para que estejam disponíveis para descriptografar os dados.

4

Page 12: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCriptografia de envelope

Descriptografia de dados com uma chave de dados

Para descriptografar dados, passe a chave de dados criptografada para a operação Decrypt. O AWS KMSusa sua CMK para descriptografar a chave de dados e, em seguida, retorna a chave de dados de textonão criptografado. Use a chave de dados de texto simples para descriptografar seus dados e, em seguida,remove-a da memória assim que possível.

O diagrama a seguir mostra como usar a operação Decrypt para descriptografar uma chave de dadoscriptografada.

Criptografia de envelopeQuando você criptografa seus dados, os dados são protegidos, mas é necessário proteger a chave decriptografia. Uma estratégia é para criptografá-la. Criptografia de envelope é a prática de criptografar dadosde texto simples com uma chave de dados e, em seguida, criptografar a chave de dados em outra chave.

Você pode até mesmo criptografar a chave de criptografia de dados em outra chave de criptografia ecriptografar essa chave de criptografia em outra chave de criptografia. Mas em algum momento deverámanter uma chave em texto simples para que possa descriptografar as chaves e seus dados. Essa chavede criptografia de chave de texto simples de nível superior é conhecida como chave mestra.

5

Page 13: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorContexto de criptografia

O AWS KMS ajuda você a proteger suas chaves mestras armazenando e gerenciando-as com segurança.As chaves mestras armazenadas no AWS KMS, conhecidas como chaves mestras de cliente (p. 2)(CMKs), nunca deixam descriptografados os AWS KMSmódulos de segurança de hardware do validadospelo FIPS. Para usar um AWS KMS CMK, você deve chamar o AWS KMS.

A criptografia de envelope oferece vários benefícios:

• Proteção de chaves de dados

Quando você criptografa uma chave de dados, não precisa se preocupar em armazenar a chave dedados criptografada porque a chave de dados é inerentemente protegida pela criptografia. A chave dedados criptografada pode ser armazenada com segurança junto com os dados criptografados.

• Criptografia dos mesmos dados em várias chaves mestras

As operações de criptografia podem ser demoradas, especialmente quando os dados que estão sendocriptografados são objetos grandes. Em vez de recriptografar dados brutos várias vezes com diferenteschaves, você pode recriptografar somente as chaves de dados que protegem os dados brutos.

• Combinação de pontos fortes de vários algoritmos

Em geral, os algoritmos de chaves simétricas são mais rápidos e produzem textos cifrados menores doque os algoritmos de chave pública. No entanto, os algoritmos de chave pública fornecem separaçãoinerente de funções e gerenciamento de chaves mais fácil. A criptografia de envelope permite associaros pontos fortes de cada estratégia.

Contexto de criptografiaTodas as operações de criptografia do AWS KMS aceitam um contexto de criptografia, um conjuntoopcional de pares de chave–valor que podem conter mais informações contextuais sobre os dados.Quando você fornece um contexto de criptografia para uma operação de criptografia do AWS KMS,deve fornecer o mesmo contexto de criptografia para a operação de descriptografia correspondente. Docontrário, a solicitação para descriptografar falhará.

6

Page 14: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorPolíticas de chaves

O contexto de criptografia não é secreto. Ele aparece em texto comum em Logs do AWSCloudTrail (p. 236), de modo que você possa usá-lo para identificar e categorizar suas operações decriptografia em logs e auditorias.

Por exemplo, o Amazon Simple Storage Service (p. 217) (Amazon S3) usa um contexto de criptografiaem que a chave é aws:s3:arn e o valor é o caminho do bucket do S3 para o arquivo que está sendocriptografado.

"encryptionContext": { "aws:s3:arn": "arn:aws:s3:::bucket_name/file_name"},

Você também pode usar o contexto de criptografia para refinar ou limitar o acesso a chaves mestrasde cliente (CMKs) na sua conta. Você pode usar o contexto de criptografia como uma restrição emconcessões (p. 84) e como uma condição nas declarações de política (p. 65).

Para obter informações detalhadas sobre o contexto de criptografia, consulte Contexto decriptografia (p. 305).

Políticas de chavesAo criar uma CMK, você determina quem pode usar e gerenciar essa CMK. Essas permissões estãocontidas em um documento chamado política de chaves. Você pode usar a política de chaves paraadicionar, remover ou modificar permissões a qualquer momento para uma CMK gerenciada pelo cliente,mas não pode editar a política para uma CMK gerenciada pela AWS. Para obter mais informações,consulte Autenticação e controle de acesso do AWS KMS (p. 32).

ConcessõesUma concessão é um outro mecanismo que fornece permissões, uma alternativa para a política de chaves.Use concessões para permitir acesso de longo prazo para os principais da AWS usarem as suas CMKsgerenciadas pelo cliente. Para obter mais informações, consulte Como usar concessões (p. 84).

Tokens de concessãoQuando você cria uma concessão, as permissões especificadas nela talvez não entrem em vigorimediatamente devido à consistência eventual. Se for necessário minimizar a demora potencial, useo token de concessão fornecido na resposta à sua solicitação da API CreateGrant. Você pode passaro token de concessão com algumas solicitações de API do AWS KMS para fazer as permissões daconcessão entrarem em vigor imediatamente. As seguintes operações da API do AWS KMS aceitamtokens de concessão:

• CreateGrant• Decrypt• DescribeKey• Encrypt• GenerateDataKey• GenerateDataKeyWithoutPlaintext• ReEncrypt• RetireGrant

O token de concessão não é secreto. Um token de concessão contém informações sobre o destinatárioda concessão e, portanto, quem pode usá-lo para fazer com que as permissões da concessão entrem emvigor com mais rapidez.

7

Page 15: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAuditoria de uso da CMK

Auditoria de uso da CMKUse AWS CloudTrail para auditar o uso da chave. O CloudTrail cria arquivos de log que contêm umhistórico de chamadas de API da AWS e eventos relacionados da sua conta. Esses arquivos de logincluem todas as solicitações de API do AWS KMS feitas com o console de gerenciamento da AWS, SDKsda AWS e ferramentas da linha de comando, como também pelos serviços da AWS integrados. Use essesarquivos de log para obter informações sobre quando a CMK foi usada, a operação solicitada, a identidadedo solicitante, o endereço IP de origem da solicitação e assim por diante. Para obter mais informações,consulte Registro em log de chamadas à API do AWS KMS com o AWS CloudTrail (p. 236) e AWSCloudTrail User Guide.

Infraestrutura de gerenciamento de chavesUma prática comum na criptografia é criptografar e descriptografar com um algoritmo revisado em parese publicamente disponível, por exemplo, AES (Advanced Encryption Standard) e uma chave secreta. Umdos principais problemas na criptografia é a grande dificuldade de manter uma chave secreta. Geralmenteesse é o trabalho de uma infraestrutura de gerenciamento de chaves (KMI). O AWS KMS opera a KMIpara você. O AWS KMS cria e armazena com segurança as chaves mestras chamadas CMKs. Paraobter mais informações sobre como o AWS KMS opera, consulte o whitepaper AWS Key ManagementServiceCryptographic Details.

8

Page 16: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCriação de chaves

Conceitos básicosVocê pode usar as operações de API do Console de gerenciamento da AWS e do AWS KMS para criar,visualizar, editar, inserir uma tag, habilitar e desabilitar tópicos.

Tópicos• Criação de chaves (p. 9)• Como visualizar as chaves (p. 13)• Edição de chaves (p. 20)• Chaves de tags (p. 27)• Ativação e desativação de chaves (p. 30)

Criação de chavesVocê pode criar uma chave mestra do cliente (CMK) no Console de gerenciamento da AWS ou usando aoperação CreateKey.

Tópicos• Criando CMKs (Console) (p. 9)• Criando CMKs (KMS API) (p. 12)

Criando CMKs (Console)Você pode usar o Console de gerenciamento da AWS para criar as chaves mestras do cliente (CMKs).

Note

AWS KMS recently introduced a new console that makes it easier for you to organize and manageyour KMS resources. It is available in all AWS Regions that AWS KMS supports except for AWSGovCloud (US-East) and AWS GovCloud (US-West). We encourage you to try the new AWS KMSconsole at https://console.aws.amazon.com/kms.The original console will remain available for a brief period to give you time to familiarize yourselfwith the new one. To use the original console, choose Encryption Keys in the IAM console or goto https://console.aws.amazon.com/iam/home?#/encryptionKeys. Please share your feedback bychoosing Feedback in either console or in the lower-right corner of this page.

Para criar uma nova CMK (new console)

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS Key Management Service(AWS KMS) em https://console.aws.amazon.com/kms.

2. To change the AWS Region, use the Region selector in the upper-right corner of the page.3. In the navigation pane, choose Customer managed keys.4. Escolha Criar chave.5. Digite um alias para a CMK. O nome do alias não pode começar com aws/. O prefixo aws/ é

reservado pela Amazon Web Services para representar as CMKs gerenciadas pela AWS em suaconta.

9

Page 17: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCriando CMKs (Console)

Um alias é um nome de exibição que identifica a CMK. Recomendamos que você escolha um aliasque indique o tipo de dados que pretende proteger ou o aplicativo que pretende usar com a CMK.

Os aliases são necessários ao criar uma CMK no Console de gerenciamento da AWS. Eles sãoopcionais quando você usa a operação CreateKey.

6. (Opcional) Digite uma descrição da CMK.

Recomendamos que você escolha uma descrição que explique o tipo de dados que pretende protegerou o aplicativo que pretende usar com a CMK.

7. Escolha Next.8. (Opcional) Digite uma chave de tag e um valor de tag opcional. Para adicionar mais de uma tag à

CMK, escolha Add tag.

When you add tags to your AWS resources, AWS generates a cost allocation report with usage andcosts aggregated by tags. For information about tagging CMKs, see Chaves de tags (p. 27).

9. Escolha Next.10. Selecione os usuários e as funções do IAM que podem administrar a CMK.

Note

As políticas do IAM podem conceder a outros usuários e funções do IAM permissão paragerenciar a CMK.

11. (Opcional) Para impedir que os usuários e funções selecionados do IAM excluam essa CMK, na seçãoKey deletion (Exclusão de chaves), na parte inferior da página, desmarque a caixa de seleção Allowkey administrators to delete this key (Permitir que administradores de chaves excluam esta chave).

12. Escolha Next.13. Selecione os usuários e funções do IAM que podem usar a CMK para operações de criptografia.

Note

A conta da AWS (usuário raiz) tem permissões completas, por padrão. Como resultado,qualquer política do IAM também pode conceder aos usuários e funções permissão para usara CMK para operações de criptografia.

14. (Opcional) Você pode permitir que outras contas da AWS usem essa CMK para operações decriptografia. Para fazer isso, na seção Other AWS accounts (Outras contas da AWS) na parte inferiorda página, escolha Add another AWS account (Adicionar outra conta da AWS) e insira o número deidentificação da conta da AWS de uma conta externa. Para adicionar várias contas externas, repitaessa etapa.

Note

Para permitir que os principais de contas externas usem a CMK, Administradores da contaexterna devem criar políticas do IAM que fornecem essas permissões. Para obter maisinformações, consulte Permitir que contas externas da AWS acessem uma CMK (p. 51).

15. Escolha Next.16. Analise o documento de política de chaves que foi criado de acordo com as suas opções. Você

também pode editá-lo.17. Escolha Concluir para criar a CMK.

Tip

Para usar a sua nova CMK programaticamente e em operações na interface de linha de comando,é necessário um ID de chave ou um ARN de chave. Para obter instruções detalhadas, consulteComo encontrar o ID de chave e o ARN (p. 18)

10

Page 18: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCriando CMKs (Console)

Para criar uma nova CMK (original console)

1. Sign in to the Console de gerenciamento da AWS and go to https://console.aws.amazon.com/iam/home?#/encryptionKeys.

2. For Region, choose the appropriate AWS Region. Do not use the region selector in the navigation bar(top right corner).

3. Escolha Criar chave.4. Digite um alias para a CMK. O nome do alias não pode começar com aws. O prefixo aws é reservado

pela Amazon Web Services para identificar as CMKs gerenciadas pela AWS (p. 2) em sua conta.

Um alias é um nome de exibição que identifica a CMK. Recomendamos que você escolha um aliasque indique o tipo de dados que pretende proteger ou o aplicativo que pretende usar com a CMK.

Os aliases são necessários ao criar uma CMK no Console de gerenciamento da AWS. Eles sãoopcionais quando você usa a operação CreateKey.

5. (Opcional) Digite uma descrição da CMK.

Recomendamos que você escolha uma descrição que explique o tipo de dados que pretende protegerou o aplicativo que pretende usar com a CMK.

6. Escolha Next Step.7. (Opcional) Digite uma chave de tag (p. 27) e um valor de tag opcional. Para adicionar mais de uma

tag à CMK, escolha Add tag.8. Escolha Next Step.9. Selecione quais usuários e funções do IAM podem administrar a CMK.

Note

A conta da AWS (usuário raiz) tem permissões completas, por padrão. Como resultado,qualquer usuário e função do IAM cujas políticas anexadas concedem as permissõesapropriadas também podem administrar a CMK.

10. (Opcional) Para impedir que os usuários e funções do IAM que você escolheu na etapa anteriorexcluam essa CMK, desmarque a caixa na parte inferior da página, Allow key administrators to deletethis key.

11. Escolha Next Step.12. Selecione os usuários e funções do IAM que poderão usar a CMK para criptografar e descriptografar

dados com a API do AWS KMS.

Note

A conta da AWS (usuário raiz) tem permissões completas, por padrão. Como resultado,qualquer usuário e função do IAM, cujas políticas anexadas concedem as permissõesapropriadas, também poderão usar a CMK.

13. (Opcional) Você pode usar os controles na parte inferior da página para especificar outras contas daAWS que podem usar essa CMK para criptografar e descriptografar dados. Para fazer isso, escolhaAdd an External Account e digite o ID da conta da AWS desejada. Repita conforme necessário paraadicionar mais de uma conta externa.

Note

Os administradores das contas externas também devem permitir o acesso à CMK, criandopolíticas do IAM para seus usuários. Para obter mais informações, consulte Permitir quecontas externas da AWS acessem uma CMK (p. 51).

14. Escolha Next Step.15. Escolha Concluir para criar a CMK.

11

Page 19: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCriando CMKs (KMS API)

Tip

Para usar a sua nova CMK programaticamente e em operações na interface de linha de comando,é necessário um ID de chave ou um ARN de chave. Para obter instruções detalhadas, consulteComo encontrar o ID de chave e o ARN (p. 18)

Criando CMKs (KMS API)A operação CreateKey cria uma chave mestra do cliente (CMK) para o AWS KMS. Estes exemplos usama AWS Command Line Interface (AWS CLI), mas você pode usar qualquer linguagem de programaçãocompatível.

Essa operação não tem os parâmetros obrigatórios. No entanto, se você estiver criando uma chave semmaterial de chaves, o parâmetro Origin será obrigatório. Você também pode usar o parâmetro Policypara especificar uma política de chaves. Você pode alterar a política de chaves (PutKeyPolicy) e adicionarelementos opcionais, como uma descrição e tags a qualquer momento.

Veja a seguir um exemplo de uma chamada para a operação CreateKey sem parâmetros.

$ aws kms create-key{ "KeyMetadata": { "Origin": "AWS_KMS", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Description": "", "KeyManager": "CUSTOMER", "Enabled": true, "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "CreationDate": 1502910355.475, "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333" }}

Se você não especificar uma política de chaves para sua nova CMK, a política de chave padrão (p. 37)aplicada por CreateKey será diferente da política de chaves padrão que o console aplica quando você ousa para criar uma nova CMK.

Por exemplo, essa chamada para a operação GetKeyPolicy retorna a política de chave aplicada porCreateKey. Ele oferece acesso à CMK para o usuário raiz da conta da AWS e permite a criação depolíticas de AWS Identity and Access Management (IAM) para a CMK. Para obter informações detalhadassobre as políticas do IAM e as políticas de chave para CMKs, consulte Autenticação e controle de acessodo AWS KMS (p. 32)

$ aws kms get-key-policy --key-id 1234abcd-12ab-34cd-56ef-1234567890ab --policy-name default --output text{ "Version" : "2012-10-17", "Id" : "key-default-1", "Statement" : [ { "Sid" : "Enable IAM User Permissions", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:root" }, "Action" : "kms:*", "Resource" : "*"

12

Page 20: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo visualizar as chaves

} ]}

Como visualizar as chavesVocê pode usar o Console de gerenciamento da AWS ou a API do AWS Key Management Service (AWSKMS) para visualizar as chaves mestras de cliente (CMKs), incluindo as CMKs gerenciadas por você e asgerenciadas pela AWS.

Tópicos• Visualização de CMKs (Console) (p. 13)• Visualização de CMKs (KMS API) (p. 15)• Como encontrar o ID de chave e o ARN (p. 18)

Visualização de CMKs (Console)Você pode ver uma lista das chaves gerenciadas do seu cliente no Console de gerenciamento da AWS.

Note

AWS KMS recently introduced a new console that makes it easier for you to organize and manageyour KMS resources. It is available in all AWS Regions that AWS KMS supports except for AWSGovCloud (US-East) and AWS GovCloud (US-West). We encourage you to try the new AWS KMSconsole at https://console.aws.amazon.com/kms.The original console will remain available for a brief period to give you time to familiarize yourselfwith the new one. To use the original console, choose Encryption Keys in the IAM console or goto https://console.aws.amazon.com/iam/home?#/encryptionKeys. Please share your feedback bychoosing Feedback in either console or in the lower-right corner of this page.

Para visualizar suas CMKs (new console)

Para navegar pela exibição da CMK

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS Key Management Service(AWS KMS) em https://console.aws.amazon.com/kms.

2. To change the AWS Region, use the Region selector in the upper-right corner of the page.3. To view the keys in your account that you create and manage, in the navigation pane choose

Customer managed keys. To view the keys in your account that AWS creates and manages for you, inthe navigation pane, choose AWS managed keys.

A exibição mostra todas as CMKs de cada tipo em sua conta e região da AWS. Por padrão, a página exibeo alias, o ID de chave, o status e a data de criação de cada CMK, mas você pode personalizá-lo paramostrar as informações que você precisa.

Para personalizar a exibição da CMK

1. Na página AWS managed keys (Chaves gerenciadas pela AWS) ou Customer managed keys (Chaves

gerenciadas pelo cliente), escolha o ícone de configurações ( ) no canto superior direito dapágina.

13

Page 21: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorVisualização de CMKs (Console)

2. Na página Preferences (Preferências), escolha as configurações preferidas e, em seguida, escolhaConfirm (Confirmar).

Para exibir detalhes da CMK

• Na página AWS managed keys (Chaves gerenciadas pela AWS) ou Customer managed keys (Chavesgerenciadas pelo cliente), escolha o alias ou ID de chave da CMK.

Os detalhes incluem o ID da CMK, o nome de recurso da Amazon (ARN), o alias, a descrição, a política dechaves, as tags e as configurações de alternância de chaves de uma CMK.

A seção Alias lista apenas um alias. Para encontrar todos os aliases associados à CMK, use a operaçãoListAliases.

Para encontrar CMKs por ID ou nome de alias

• Na página AWS managed keys (chaves gerenciadas pela AWS) ou Customer managed keys (Chavesgerenciadas pelo cliente), na caixa Filtro, insira todo ou parte do nome do alias ou ID de chave de umaCMK. O filtro procura todas as CMKs de cada tipo, ainda que você tenha muitas para exibir na páginaatual.

Para visualizar suas CMKs (original console)

Para navegar pela exibição da CMK

1. Sign in to the Console de gerenciamento da AWS and go to https://console.aws.amazon.com/iam/home?#/encryptionKeys.

2. For Region, choose the appropriate AWS Region. Do not use the region selector in the navigation bar(top right corner).

A página Encryption Keys (Chaves de criptografia) lista as CMKs gerenciadas pela AWS e pelo cliente nasua conta e região da AWS. Por padrão, a página exibe o alias, o ID de chave, o status e a data de criaçãode cada CMK, mas você pode personalizá-lo para atender às suas necessidades.

Para personalizar a exibição da CMK (opcional)

1.No canto superior direito da página, escolha o botão de configurações ( ).

2. Na página Preferences (Preferências), selecione as opções de sua preferência e, em seguida, escolhaClose (Fechar).

Para exibir informações detalhadas sobre a CMK

Os detalhes incluem o nome de recurso da Amazon (ARN), a descrição, a política de chaves, as tags e asconfigurações de mudança de chaves da CMK.

• Na página Encryption keys (Chaves de criptografia), escolha o alias ou ID de chave da CMK.

Para encontrar CMKs

Você pode usar a caixa Filtro para encontrar CMKs com base em seus aliases.

• Na caixa Filtro, insira todo ou parte do nome do alias de uma CMK. Somente as CMKs com nomes dealias que correspondem ao filtro aparecerão.

14

Page 22: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorVisualização de CMKs (KMS API)

Visualização de CMKs (KMS API)Você pode usar a API do AWS Key Management Service (AWS KMS) para visualizar suas CMKs. Estaseção demonstra várias operações que retornam detalhes sobre as CMKs existentes. Os exemplos usama AWS Command Line Interface (AWS CLI), mas você pode usar qualquer linguagem de programaçãocompatível.

Tópicos• ListKeys: obtém o ID e o ARN de todas as CMKs (p. 15)• DescribeKey: obtenha informações detalhadas sobre uma CMK (p. 16)• GetKeyPolicy: obtém a política de chaves anexada a uma CMK (p. 16)• ListAliases: visualizar CMKs por nome do alias (p. 16)

ListKeys: obtém o ID e o ARN de todas as CMKsA operação ListKeys retorna o ID e o nome de recurso da Amazon (ARN) de todas as CMKs na conta e naregião. Para ver os aliases e os IDs de chaves de suas CMKs que têm aliases, use a operação ListAliases.

Por exemplo, esta chamada para a operação ListKeys retorna o ID e o ARN de cada CMK nesta contafictícia.

$ aws kms list-keys { "Keys": [ { "KeyArn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" }, { "KeyArn": "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321", "KeyId": "0987dcba-09fe-87dc-65ba-ab0987654321" }, { "KeyArn": "arn:aws:kms:us-east-2:111122223333:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d", "KeyId": "1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d" }}

15

Page 23: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorVisualização de CMKs (KMS API)

DescribeKey: obtenha informações detalhadas sobre uma CMKA operação DescribeKey retorna detalhes sobre a CMK especificada. Para identificar a CMK, use seu IDde chave, ARN de chave, nome de alias ou ARN de alias.

Por exemplo, esta chamada para DescribeKey retorna informações sobre uma CMK existente. Oscampos na resposta variam de acordo com o estado da chaves e a origem da chave.

$ aws kms describe-key --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

{ "KeyMetadata": { "Origin": "AWS_KMS", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Description": "", "KeyManager": "CUSTOMER", "Enabled": true, "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "CreationDate": 1499988169.234, "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333" }}

Você pode usar a operação DescribeKey em um alias da AWS predefinido, ou seja, um alias da AWSsem o ID de chave. Quando você fizer isso, o AWS KMS associará o alias a uma CMK gerenciada pelaAWS (p. 2) e gerará seu KeyId e Arn na resposta.

GetKeyPolicy: obtém a política de chaves anexada a uma CMKA operação GetKeyPolicy obtém a política de chaves que está anexada à CMK. Para identificar a CMK,use seu ID ou ARN de chave. Você também deve especificar o nome da política, que é sempre default.(Se sua saída for difícil de ler, adicione a opção --output text ao seu comando.)

$ aws kms get-key-policy --key-id 1234abcd-12ab-34cd-56ef-1234567890ab --policy-name default

{ "Version" : "2012-10-17", "Id" : "key-default-1", "Statement" : [ { "Sid" : "Enable IAM User Permissions", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:root" }, "Action" : "kms:*", "Resource" : "*" } ]}

ListAliases: visualizar CMKs por nome do aliasA operação ListAliases gera os aliases na conta e na região. O TargetKeyId na resposta exibe o ID dechave da CMK a que o alias faz referência, caso exista.

Por padrão, o comando ListAliases gera todos os aliases na conta e na região. Isso inclui os aliases quevocê criou e associou às CMKs gerenciadas pelo cliente (p. 2) e os aliases que a AWS criou e associou às

16

Page 24: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorVisualização de CMKs (KMS API)

suas CMKs gerenciadas pela AWS (p. 2) na sua conta. Você pode reconhecer aliases da AWS porque osnomes têm o formato aws/<service-name>, como aws/dynamodb.

A resposta também pode incluir aliases sem o campo TargetKeyId, como o alias aws/redshift nesteexemplo. São aliases predefinidos criados pela AWS, mas que ainda não estão associados a uma CMK.

$ aws kms list-aliases

{ "Aliases": [ { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/ImportedKey", "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321", "AliasName": "alias/ExampleKey" }, { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/test-key", "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "AliasName": "alias/test-key" }, { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/financeKey", "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "AliasName": "alias/financeKey" }, { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/aws/dynamodb", "TargetKeyId": "1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d", "AliasName": "alias/aws/dynamodb" }, { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/aws/redshift", "AliasName": "alias/aws/redshift" }, { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/aws/s3", "TargetKeyId": "0987ab65-43cd-21ef-09ab-87654321cdef", "AliasName": "alias/aws/s3" } ]}

Para obter os aliases que fazem referência a uma determinada CMK, use o parâmetro KeyId. O valor deparâmetro pode ser o nome de recurso da Amazon (ARN) da CMK ou o ID dela. Você não pode especificarum alias ou ARN de alias.

O comando no exemplo a seguir obtém os aliases que fazem referência a uma CMK gerenciada pelocliente. No entanto, você também pode usar um comando como esse para localizar os aliases que fazemreferência a CMKs gerenciadas pela AWS.

$ aws kms list-aliases --key-id arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

{ "Aliases": [ { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/test-key", "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "AliasName": "alias/test-key" }, { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/financeKey", "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",

17

Page 25: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo encontrar o ID de chave e o ARN

"AliasName": "alias/financeKey" }, ]}

Como encontrar o ID de chave e o ARNPara identificar suas CMKs do AWS KMS nos programas, scripts e comandos de interface de linha decomando (CLI), você pode usar o ID da CMK ou seu Nome de recurso da Amazon (ARN). As operaçõesde criptografia também permitem que você use o alias da CMK.

Note

AWS KMS recently introduced a new console that makes it easier for you to organize and manageyour KMS resources. It is available in all AWS Regions that AWS KMS supports except for AWSGovCloud (US-East) and AWS GovCloud (US-West). We encourage you to try the new AWS KMSconsole at https://console.aws.amazon.com/kms.The original console will remain available for a brief period to give you time to familiarize yourselfwith the new one. To use the original console, choose Encryption Keys in the IAM console or goto https://console.aws.amazon.com/iam/home?#/encryptionKeys. Please share your feedback bychoosing Feedback in either console or in the lower-right corner of this page.

Para encontrar o ID da CMK e o ARN (new console)

1. Abra o console do IAM em https://console.aws.amazon.com/iam/.2. No painel de navegação à esquerda, escolha Encryption keys.3. Na Region, selecione a região da AWS apropriada. Não use o seletor de regiões na barra de

navegação (canto superior direito).4. To view the keys in your account that you create and manage, in the navigation pane choose

Customer managed keys. To view the keys in your account that AWS creates and manages for you, inthe navigation pane, choose AWS managed keys.

5. Para encontrar o ID de chave, consulte a linha que começa com o alias da CMK. Cada linha exibe o IDda chave e o alias, juntamente com o status e a data de criação de cada CMK.

6. Para encontrar o nome de recurso da Amazon (ARN), escolha o alias ou o ID da chave. Isso abre umapágina de detalhes que inclui o ARN.

18

Page 26: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo encontrar o ID de chave e o ARN

Para encontrar o ID da CMK e o ARN (original console)

Para navegar pela exibição da CMK

1. Go to the original AWS KMS console at https://console.aws.amazon.com/iam/home?#/encryptionKeys.2. For Region, choose the appropriate AWS Region. Do not use the region selector in the navigation bar

(top right corner).3. Para encontrar o ID da chave, procure o alias da CMK na linha. Cada linha exibe o ID da chave e o

alias, juntamente com o status e a data de criação de cada CMK.

4. Para encontrar o ARN da CMK (ARN da chave), escolha o nome do alias. Isso abre uma página dedetalhes que inclui o ARN da chave.

19

Page 27: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorEdição de chaves

Para encontrar o ID da CMK e o ARN (KMS API)

Use a operação de API ListKeys.

• Para encontrar o ARN e o ID da CMK, use a operação ListKeys (p. 15).

Edição de chavesVocê pode usar a API do AWS KMS e a página de detalhes das chaves do Console de gerenciamento daAWS para editar algumas das propriedades das chaves mestras de cliente (p. 2) (CMKs) gerenciadas pelocliente. Você pode alterar a descrição, adicionar e remover os administradores e usuários, gerenciar tags eativar e desativar a rotação de chaves.

Você não pode alterar as propriedades das CMKs gerenciadas pela AWS (p. 2).

Tópicos• Edição de CMKs (Console) (p. 20)• Edição de CMKs (KMS API) (p. 26)

Edição de CMKs (Console)Os usuários que têm as permissões necessárias podem alterar as propriedades de uma CMK gerenciadapelo cliente, incluindo a descrição, tags, políticas e concessões, e o status de alternância no Console degerenciamento da AWS.

Você pode visualizar (p. 13), mas não editar, as propriedades das CMKs gerenciadas pela AWS. Paravisualizar a política de chaves de uma CMK gerenciada pela AWS, use a operação GetKeyPolicy.

Note

AWS KMS recently introduced a new console that makes it easier for you to organize and manageyour KMS resources. It is available in all AWS Regions that AWS KMS supports except for AWSGovCloud (US-East) and AWS GovCloud (US-West). We encourage you to try the new AWS KMSconsole at https://console.aws.amazon.com/kms.

20

Page 28: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorEdição de CMKs (Console)

The original console will remain available for a brief period to give you time to familiarize yourselfwith the new one. To use the original console, choose Encryption Keys in the IAM console or goto https://console.aws.amazon.com/iam/home?#/encryptionKeys. Please share your feedback bychoosing Feedback in either console or in the lower-right corner of this page.

Para editar uma CMK gerenciada pelo cliente (new console)

Navegue até o página de detalhes da CMK.

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS Key ManagementService (AWS KMS) em https://console.aws.amazon.com/kms.

2. To change the AWS Region, use the Region selector in the upper-right corner of the page.3. In the navigation pane, choose Customer managed keys. (Você não pode editar as propriedades

das chaves gerenciadas pela AWS.)4. Escolha o alias ou ID de chave da CMK que você deseja editar. Agora, use os controles na

página de detalhes da chave para visualizar e alterar as propriedades da CMK.

Alterar a descrição da CMK

Você pode alterar a descrição da sua CMK, a menos que ela esteja pendente de exclusão. Adescrição é opcional.

1. No canto superior direito, escolha Edit (Editar).2. Em Description (Descrição), digite uma breve descrição da CMK.3. Para salvar suas alterações, escolha Save.

Altere os administradores e usuários da CMK

Você pode alterar a política de chave para uma CMK. As políticas de chave definem os usuários,grupos e funções do IAM que podem gerenciar a CMK e usá-la para operações de criptografia.

A conta da AWS (usuário raiz) tem permissões completas, por padrão. Como resultado, qualquerusuário e função do IAM cujas políticas anexadas concedem as permissões apropriadas tambémpodem administrar a CMK. Para obter informações detalhadas sobre definição de políticas de chave ede políticas do IAM, consulte Autenticação e controle de acesso do AWS KMS (p. 32).

1. Em General configuration (Configurações gerais), escolha a guia Key policy (Política de chaves).

Se a política de chaves para a CMK é uma política padrão, a guia Key policy (Política de chaves)exibe a visualização padrão com as seções Key administrators (Administradores de chaves), Keydeletion (Exclusão de chaves), Key users (Usuários de chaves), e Other AWS accounts (Outrascontas da AWS). Caso contrário, a guia exibirá o documento de política de chaves.

Para editar o documento de política de chaves diretamente, escolha Switch to policy view (Mudarpara visualização da política) (se aplicável), escolha Editar, edite o documento e, em seguida,escolha Save (Salvar).

As etapas restantes neste procedimento explicam como editar a política de chaves usando avisualização padrão.

2. Para alterar os usuários e as funções que podem gerenciar a CMK, use a seção Keyadministrators (Administradores de chaves).• Para adicionar um administrador de chaves, escolha Add (Adicionar), selecione ou digite um

usuário ou função e, em seguida, escolha Add (Adicionar).• Para remover um administrador de chaves, marque a caixa de seleção para o usuário ou a

função e, em seguida, escolha Remove (Remover).

21

Page 29: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorEdição de CMKs (Console)

3. Para evitar que os administradores de chaves programem a exclusão da CMK, na seção Keydeletion (Exclusão de chaves), desmarque a caixa de seleção Allow key administrators to deletethis key (Permitir que administradores de chaves excluam esta chave).

4. Para alterar os usuários e as funções que podem usar a CMK em operações de criptografia, use aseção Key users (Usuários de chaves).• Para adicionar um usuário de chaves, escolha Add (Adicionar), selecione um usuário ou função

e, em seguida, escolha Add (Adicionar).• Para remover um usuário de chaves, marque a caixa de seleção para o usuário ou a função e,

em seguida, escolha Remove (Remover).5. Para alterar as outras contas da AWS que podem usar a CMK nas operações de criptografia, na

seção Other AWS accounts (Outras contas da AWS), escolha Add other AWS accounts (Adicionaroutras contas da AWS).

Note

Adicionar uma conta externa não permite que usuários e funções na conta usem a CMK.Para permitir que os usuários e as funções de uma conta externa usem a CMK, umadministrador da conta externa deve adicionar políticas do IAM que fornecem essaspermissões. Para obter mais informações, consulte Permitir que contas externas da AWSacessem uma CMK (p. 51).

• Para adicionar contas, escolha Add another AWS account (Adicionar outra conta da AWS) edigite o número da conta.

• Para remover contas, na linha com o número da conta, escolha Remove (Remover).

Ao terminar, escolha Save changes (Salvar alterações), em seguida, clique no X para fechar ajanela.

Adicionar, editar e excluir tags

Você pode alterar as tags para uma CMK. Cada tag é um par de nomes–valores. O nome da tag deveser exclusivo na conta e na região.

Você pode usar tags para identificar e categorizar suas CMKs. Ao adicionar tags aos recursos daAWS, a AWS gera um relatório de alocação de custos com utilização e custos agrupados por tags.Para obter mais informações sobre tags de CMK, consulte Chaves de tags (p. 27).

• Em General configuration (Configurações gerais), escolha a guia Tags.• Para criar sua primeira tag, escolha Create tag (Criar tag), digite um nome de tag e um valor de

tag e, em seguida, escolha Save (Salvar).• Para adicionar uma tag, escolha Edit (Editar), Add tag (Adicionar tag), digite um nome de tag e

um valor de tag e, em seguida, escolha Save (Salvar).• Para alterar o nome ou o valor de uma tag, escolha Edit (Editar), faça as alterações e, em

seguida, escolha Save (Salvar).• Para excluir uma tag, selecione Edit (Editar). Na linha da tag, escolha Remove (Remover), em

seguida, Save (Salvar).

Habilitar ou desabilitar a rotação

Você pode habilitar e desabilitar a alternância automática (p. 95) do material de criptografia emuma CMK gerenciada pelo cliente (p. 2). Esse recurso não é compatível com as CMKs com materialde chaves importadas.

As CMKs gerenciadas pela AWS (p. 2) são alternadas automaticamente de três em três anos. Não épossível habilitar ou desabilitar esse recurso.

22

Page 30: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorEdição de CMKs (Console)

1. Em General configuration (Configurações gerais), escolha a guia Key rotation (Alternância dechaves).

2. Para habilitar a alternância automática de chaves, marque a caixa de seleção Automatically rotatethis CMK every year (Alterne esta CMK automaticamente todo ano). Para desabilitar a alternânciaautomática de chaves, desmarque a caixa de seleção.

3. Para salvar suas alterações, escolha Save.

Para editar uma CMK gerenciada pelo cliente (original console)

Navegue até o página de detalhes da CMK.

1. Sign in to the Console de gerenciamento da AWS and go to https://console.aws.amazon.com/iam/home?#/encryptionKeys.

2. For Region, choose the appropriate AWS Region. Do not use the region selector in the navigationbar (top right corner).

3. Escolha o alias da CMK cujos detalhes você quer ver.

Note

Não é possível editar CMKs gerenciadas pela AWS que são indicadas pelo ícone laranjada AWS.

É possível visualizar e editar a CMK na página de detalhes de chaves.

Alterar a descrição

Na seção Resumo, digite uma breve descrição da CMK na caixa Descrição. Para salvar suasalterações, escolha Save Changes (Salvar alterações).

Adicionar e remover administradores de chaves e permitir ou não que administradores de chaves excluama CMK

Use os controles da área Administradores de chaves da seção Política de chaves da página.

23

Page 31: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorEdição de CMKs (Console)

Adicionar e remover usuários de chaves e permitir ou não que contas externas da AWS usem a CMK

Use os controles da área Usuários de chaves da seção Política de chaves da página.

24

Page 32: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorEdição de CMKs (Console)

Adicionar, editar e remover tags

Use os controles da seção Tags da página.

Habilitar ou desabilitar a rotação

Use os controles na seção Rotação de chave da página para ativar e desativar a rotaçãoautomática (p. 95) do material criptográfico em uma CMK gerenciada pelo cliente.

25

Page 33: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorEdição de CMKs (KMS API)

Edição de CMKs (KMS API)Você pode usar a API do AWS Key Management Service (AWS KMS) para editar as propriedades dassuas CMKs gerenciadas pelo cliente (p. 2). Estes exemplos usam a AWS Command Line Interface (AWSCLI), mas você pode usar qualquer linguagem de programação compatível. Esta seção demonstra váriasoperações que retornam detalhes sobre as CMKs existentes.

Você não pode editar as propriedades das CMKs gerenciadas pela AWS (p. 2).

Tópicos• UpdateKeyDescription: alterar a descrição de uma CMK (p. 26)• PutKeyPolicy: alterar uma política de chave para uma CMK (p. 27)• Ativar e desativar a alternância de chaves (p. 27)

Tip

Para obter informações sobre como adicionar, excluir e editar tags, consulte Chaves detags (p. 27).

UpdateKeyDescription: alterar a descrição de uma CMKA operação UpdateKeyDescription adiciona ou muda a descrição de uma CMK. Para ver a descrição, usea operação DescribeKey.

Por exemplo, essa chamada para a operação UpdateKeyDescription muda a descrição da CMKespecificada.

$ aws kms update-key-description --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --description "Example key"

Para obter a descrição de uma chave, use a operação DescribeKey, como mostrado no exemplo aseguir.

$ aws kms describe-key --key-id 1234abcd-12ab-34cd-56ef-1234567890ab { "KeyMetadata": { "Origin": "AWS_KMS", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Description": "Example key", "KeyManager": "CUSTOMER", "Enabled": true, "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Enabled", "CreationDate": 1499988169.234, "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab",

26

Page 34: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorChaves de tags

"AWSAccountId": "111122223333" }}

PutKeyPolicy: alterar uma política de chave para uma CMKA operação PutKeyPolicy muda a política de chave da CMK para a política que você especificar. A políticainclui permissões para administradores, usuários e funções. Para obter um exemplo detalhado, consulteExemplos da PutKeyPolicy.

Ativar e desativar a alternância de chavesA operação EnableKeyRotation permite a rotação automática (p. 95) do material criptográfico em umaCMK. A operação DisableKeyRotation a desativa. A operação GetKeyRotationStatus retorna um valorbooleano que informa se a rotação de chaves automática está ativada (verdadeiro) ou desativada (falso).

Para ver um exemplo, consulte Mudança de chaves mestras de cliente (p. 95).

Chaves de tagsVocê pode adicionar, alterar e excluir tags para CMKs gerenciadas pelo cliente (p. 2). Cada tag consisteem uma chave da tag e um valor de tag, definidos por você. Por exemplo, a chave de tag pode ser "Centrode custo" e o valor da tag pode ser "87654". Não é possível marcar CMKs gerenciadas pela AWS (p. 2).

Ao adicionar tags aos recursos da AWS, a AWS gera um relatório de alocação de custos com utilização ecustos agrupados por tags. Você pode usar esse recurso para monitorar os custos do AWS KMS para umprojeto, aplicativo ou centro de custo.

Para obter mais informações sobre como usar tags de alocação de custos, consulte Usar tags de alocaçãode custos no Guia do usuário do AWS Billing and Cost Management. Para obter informações sobre asregras que se aplicam a chaves e valores de tag, consulte Restrições de tags definidas pelo usuário noGuia do usuário do AWS Billing and Cost Management.

Tópicos• Gerenciamento de tags da CMK (Console) (p. 27)• Gerenciamento de tags da CMK (KMS API) (p. 28)

Gerenciamento de tags da CMK (Console)Você pode adicionar, editar e excluir tags para suas CMKs gerenciadas pelo cliente no Console degerenciamento da AWS. Você pode adicionar tags a uma CMK ao criá-la (p. 9) e editá-la a qualquermomento. Você não pode editar as tags de CMKs com exclusão pendente. Para obter mais informações,consulte Edição de chaves (p. 20).

Note

AWS KMS recently introduced a new console that makes it easier for you to organize and manageyour KMS resources. It is available in all AWS Regions that AWS KMS supports except for AWSGovCloud (US-East) and AWS GovCloud (US-West). We encourage you to try the new AWS KMSconsole at https://console.aws.amazon.com/kms.The original console will remain available for a brief period to give you time to familiarize yourselfwith the new one. To use the original console, choose Encryption Keys in the IAM console or goto https://console.aws.amazon.com/iam/home?#/encryptionKeys. Please share your feedback bychoosing Feedback in either console or in the lower-right corner of this page.

27

Page 35: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorGerenciamento de tags da CMK (KMS API)

Para gerenciar as tags de suas CMKs (new console)

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS Key Management Service(AWS KMS) em https://console.aws.amazon.com/kms.

2. To change the AWS Region, use the Region selector in the upper-right corner of the page.3. In the navigation pane, choose Customer managed keys. (Você não pode gerenciar as tags de uma

CMK gerenciada pela AWS.)4. Marque a caixa de seleção ao lado do alias de uma CMK.5. Escolha Ações de chave, Adicionar ou editar tags.6. Use os controles para adicionar, editar ou excluir tags. O nome da tag deve ser exclusivo na conta e

na região.7. Para salvar suas alterações, escolha Save changes (Salvar alterações).

Para gerenciar as tags de suas CMKs (original console)

1. Sign in to the Console de gerenciamento da AWS and go to https://console.aws.amazon.com/iam/home?#/encryptionKeys.

2. For Region, choose the appropriate AWS Region. Do not use the region selector in the navigation bar(top right corner).

3. Marque a caixa de seleção ao lado do alias das CMKs cujas tags você deseja gerenciar.

Note

Você não pode marcar CMKs gerenciadas pela AWS, indicadas pelo ícone laranja da AWS.4. Escolha Ações de chave, Adicionar ou editar tags.5. Use os controles da janela Adicionar ou editar tags. Para salvar suas alterações, escolha Save

Changes (Salvar alterações).

Gerenciamento de tags da CMK (KMS API)Você pode usar a API doAWS Key Management Service (AWS KMS) para adicionar, excluir e listar tagsdas CMKs gerenciadas. Estes exemplos usam a AWS Command Line Interface (AWS CLI), mas vocêpode usar qualquer linguagem de programação compatível.

Não é possível marcar CMKs gerenciadas pela AWS.

28

Page 36: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorGerenciamento de tags da CMK (KMS API)

Tópicos• TagResource: adicionar ou alterar tags para uma CMK (p. 29)• ListResourceTags: obtenha as tags para uma CMK (p. 29)• UntagResource: excluir tags de uma CMK (p. 29)

TagResource: adicionar ou alterar tags para uma CMKA operação TagResource adiciona uma ou mais tags para uma CMK.

Também é possível usar TagResource para atualizar os valores de uma tag existente. Para substituir osvalores de tag, especifique a mesma chave de tag com valores diferentes. Para adicionar valores a umatag, especifique a chave da tag com valores novos e existentes.

Por exemplo, esta chamada para a operação TagResource adiciona as tags Purpose e Department àCMK especificada. Você pode usar qualquer chave e valor como tags de CMK.

$ aws kms tag-resource --key-id 1234abcd-12ab-34cd-56ef-1234567890ab / --tags TagKey=Purpose,TagValue=Test / TagKey=Department,TagValue=Finance

Quando esse comando for executado com êxito, ele não retornará nenhuma saída. Para visualizar as tagsem uma CMK, use a operação ListResourceTags.

ListResourceTags: obtenha as tags para uma CMKA operação ListResourceTags obtém as tags para uma CMK. O parâmetro key-id é obrigatório.

Por exemplo, o comando a seguir obtém as tags para a CMK especificada.

$ aws kms list-resource-tags --key-id 1234abcd-12ab-34cd-56ef-1234567890ab "Truncated": false, "Tags": [ { "TagKey": "Purpose", "TagValue": "Test" }, { "TagKey": "Department", "TagValue": "Finance" } ]}

UntagResource: excluir tags de uma CMKA operação UntagResource exclui as tags de uma CMK. Os parâmetros key-id e tag-keys sãoobrigatórios.

Por exemplo, este comando exclui a tag Purpose e todos os seus valores da CMK especificada.

$ aws kms untag-resource --tag-keys Purpose --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

Quando esse comando for executado com êxito, ele não retornará nenhuma saída.

29

Page 37: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAtivação e desativação de chaves

Ativação e desativação de chavesVocê pode desativar e reativar as chaves mestras do cliente (CMKs) do AWS Key Management Service(AWS KMS) gerenciadas por você. Você não pode ativar ou desativar CMKs gerenciadas pela AWS.

Quando você cria uma CMK, ela é ativada, por padrão. Se você desabilitar uma CMK, ela não poderáser usada para criptografar ou descriptografar dados até ser reabilitada. As CMKs AWS gerenciadas sãopermanentemente habilitadas para uso pelos serviços que usar AWS KMS (p. 179). Elas não podem serdesativadas.

Você também pode excluir CMKs. Para obter mais informações, consulte Exclusão de chaves mestras decliente (p. 119).

Note

O AWS KMS não alterna as chaves de backup de CMKs gerenciadas pelo cliente enquanto asCMKs estão desabilitadas. Para obter mais informações, consulte Como funciona a mudança dechaves automática (p. 96).

Tópicos• Ativação e desativação de CMKs (Console) (p. 30)• Ativação e desativação de CMKs (KMS API) (p. 31)

Ativação e desativação de CMKs (Console)Você pode habilitar e desabilitar as CMKs gerenciadas pelo cliente pela seção IAM do Console degerenciamento da AWS.

Note

AWS KMS recently introduced a new console that makes it easier for you to organize and manageyour KMS resources. It is available in all AWS Regions that AWS KMS supports except for AWSGovCloud (US-East) and AWS GovCloud (US-West). We encourage you to try the new AWS KMSconsole at https://console.aws.amazon.com/kms.The original console will remain available for a brief period to give you time to familiarize yourselfwith the new one. To use the original console, choose Encryption Keys in the IAM console or goto https://console.aws.amazon.com/iam/home?#/encryptionKeys. Please share your feedback bychoosing Feedback in either console or in the lower-right corner of this page.

Para ativar ou desativar uma CMK (new console)

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS Key Management Service(AWS KMS) em https://console.aws.amazon.com/kms.

2. To change the AWS Region, use the Region selector in the upper-right corner of the page.3. In the navigation pane, choose Customer managed keys.4. Marque a caixa de seleção das CMKs que você deseja ativar ou desativar.5. Para ativar uma CMK, escolha Key actions, Ativar. Para desativar uma CMK, escolha Key actions,

Desativar.

Para ativar uma CMK (original console)

Para ativar uma CMK (console)

1. Sign in to the Console de gerenciamento da AWS and go to https://console.aws.amazon.com/iam/home?#/encryptionKeys.

30

Page 38: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAtivação e desativação de CMKs (KMS API)

2. For Region, choose the appropriate AWS Region. Do not use the region selector in the navigation bar(top right corner).

3. Marque a caixa de seleção ao lado do alias das CMKs que você deseja ativar ou desativar.

Note

Não é possível desabilitar CMKs gerenciadas pela AWS, indicadas pelo ícone laranja daAWS.

4. Para ativar uma CMK, escolha Key actions, Ativar. Para desativar uma CMK, escolha Key actions,Desativar.

Ativação e desativação de CMKs (KMS API)A operação EnableKey habilita uma chave mestra do cliente (CMK) do AWS KMS desabilitada. Estesexemplos usam a AWS Command Line Interface (AWS CLI), mas você pode usar qualquer linguagem deprogramação compatível. O parâmetro key-id é obrigatório.

Esta operação não apresenta nenhuma saída. Para ver o status da chave, use a operação DescribeKey.

$ aws kms enable-key --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

A operação DisableKey desativa uma CMK ativada. O parâmetro key-id é obrigatório.

$ aws kms disable-key --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

Esta operação não apresenta nenhuma saída. Para ver o status da chave, use a operação DescribeKey eveja o campo Enabled.

$ aws kms describe-key --key-id 1234abcd-12ab-34cd-56ef-1234567890ab{ "KeyMetadata": { "Origin": "AWS_KMS", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Description": "", "KeyManager": "CUSTOMER", "Enabled": false, "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "Disabled", "CreationDate": 1502910355.475, "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333" }}

31

Page 39: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAutenticação

Autenticação e controle de acesso doAWS KMS

O acesso ao AWS KMS exige credenciais que a AWS possa usar para autenticar suas solicitações. Ascredenciais devem ter permissões para acessar recursos da AWS como as chaves mestra de cliente(CMKs) do AWS KMS. As seções a seguir fornecem detalhes sobre como é possível usar o AWS Identityand Access Management (IAM) e o AWS KMS para ajudar a proteger seus recursos controlando quempode acessá-los.

Tópicos

• Autenticação (p. 32)• Controle de acesso (p. 33)

AutenticaçãoVocê pode acessar a AWS como alguns dos seguintes tipos de identidade:

• Usuário raiz da conta da AWS – Ao se cadastrar na AWS, você fornece um endereço de e-mail e umasenha para a conta da AWS. Estas são suas credenciais raiz e fornecem acesso total a todos os seusrecursos da AWS.

Important

Por motivos de segurança, recomendamos que você use as credenciais raiz para criar somenteum usuário administrador, que é um IAM usuário com permissões totais à sua conta da AWS.Em seguida, use esse usuário administrador para criar outros usuários e funções do IAM compermissões limitadas. Para obter mais informações, consulte Criar usuários individuais do IAM(Melhores práticas do IAM) e Criar um usuário administrador e grupo no Guia do usuário doIAM.

• Usuário do IAM – Um usuário do IAM é uma identidade em sua conta da AWS que tem permissõesespecíficas (por exemplo, para usar uma CMK do KMS). Você pode usar uma senha e um nome dousuário do IAM para fazer login em páginas da web seguras da AWS como o Console de gerenciamentoda AWS, os Fóruns de discussão da AWS ou o AWS Support Center.

 

Além de um nome de usuário e senha, você também pode criar chaves de acesso para cada usuário,a fim de habilitar o acesso aos serviços da AWS programaticamente, por meio de um dos SDKs daAWS ou as ferramentas da linha de comando. Os SDKs e as ferramentas da linha de comando usamas chaves de acesso para assinar de maneira criptográfica as solicitações de API. Se você não usaras ferramentas da AWS, assine as solicitações de API por conta própria. O AWS KMS oferece suportea Signature Version 4, um protocolo da AWS para autenticação de solicitações de API. Para maisinformações sobre autenticação de solicitações de API, consulte Processo de cadastramento deAssinatura versão 4 na AWS General Reference.

 

32

Page 40: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorControle de acesso

• Função do IAM – Uma função do IAM é outra identidade do IAM que você pode criar na sua conta quetenha permissões específicas. É semelhante a um usuário IAM, mas não está associada a uma pessoaespecífica. Uma função do IAM permite que você obtenha chaves de acesso temporárias para acessaros serviços e os recursos da AWS programaticamente. As funções do IAM são úteis nas seguintessituações:

 • Acesso de usuário federado – Em vez de criar um usuário do IAM, você pode usar identidades já

existente de usuário de AWS Directory Service, o diretório de usuário da sua companhia ou umprovedor de identidades da web. Estes são conhecidos como usuários federados. Usuários federadosusam funções do IAM por meio de um provedor de identidade. Para obter mais informações sobreusuários federados, consulte Usuários federados e funções no Guia do usuário do IAM.

 • Acesso entre contas – Você pode usar uma função do IAM em sua conta da AWS para dar a outra

conta da AWS permissões de acesso aos recursos da sua conta. Para ver um exemplo, consulte oTutorial: delegar acesso em contas da AWS usando funções do IAM no Guia do usuário do IAM.

 • AWS acesso ao serviço – você pode usar uma função do IAM na sua conta para conceder permissões

de serviço da AWS para acessar os recursos da sua conta. Por exemplo, você pode criar umafunção que permita ao Amazon Redshift acessar um bucket do S3 em seu nome e carregar dadosarmazenados nesse bucket em um cluster do Amazon Redshift. Para obter mais informações,consulte Criar uma função para delegar permissões a um serviço da AWS no Guia do usuário do IAM.

 • Aplicativos executados em instâncias do EC2 – Em vez de armazenar chaves de acesso em uma

instância do EC2 para serem usadas em aplicativos que são executados na instância e fazersolicitações de API da AWS, você pode usar uma função do IAM para fornecer chaves de acessotemporárias para esses aplicativos. Para atribuir uma função do IAM a uma instância do EC2, vocêcria um perfil de instância e, em seguida, o anexa ao ativar a instância. Um perfil de instância contéma função e permite que os aplicativos em execução na instância do EC2; obtenham chaves de acessotemporárias. Para obter mais informações, consulte Usar funções para aplicativos no Amazon EC2 noGuia do usuário do IAM.

Controle de acessoVocê pode ter credenciais válidas para autenticar suas solicitações, mas também precisa de permissõespara fazer solicitações de API do AWS KMS para criar, gerenciar ou usar recursos do AWS KMS. Porexemplo, você deve ter permissões para criar uma CMK do KMS, para gerenciar a CMK, usar a CMK paraoperações de criptografia (como criptografia e descriptografia), e assim por diante.

As páginas a seguir descrevem como gerenciar permissões para o AWS KMS. Recomendamos que vocêleia a visão geral primeiro.

• Visão geral do gerenciamento de acesso (p. 34)• Como usar políticas de chaves (p. 36)• Usar políticas do IAM (p. 55)• Referência de permissões da API do AWS KMS (p. 59)• Como usar condições de política (p. 65)• Como usar concessões (p. 84)• Uso de funções vinculadas ao serviço (p. 86)• Como determinar o acesso (p. 87)

33

Page 41: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorVisão geral do gerenciamento de acesso

Visão geral do gerenciamento de acesso para seusrecursos do AWS KMS

Cada recurso da AWS pertence a uma conta da AWS, e as permissões para criar ou acessar os recursossão definidas nas políticas de permissões nessa conta. Um administrador da conta pode anexar políticasde permissões a identidades do IAM (ou seja, usuários, grupos e funções), e alguns serviços (incluindo oAWS KMS) também dão suporte para anexar políticas de permissões a outros tipos de recursos.

Note

Um administrador da conta (ou usuário administrador) é um usuário com permissões deadministrador. Para obter mais informações, consulte Criação de um grupo e usuárioadministrador no Guia do usuário do IAM.

Ao gerenciar permissões, você decide quem recebe as permissões, os recursos para os quais eles obtêmpermissões e as ações específicas permitidas.

Tópicos• Recursos e operações do AWS KMS (p. 34)• Gerenciamento do acesso aos CMKs do AWS KMS (p. 35)• Especificação de permissões em uma política (p. 35)• Especificação de condições em uma política (p. 36)

Recursos e operações do AWS KMSPara gerenciar permissões, é preciso entender algumas informações básicas sobre recursos e operações.No AWS KMS, o principal tipo de recurso é uma Customer Master Key (CMK - Chave mestre do cliente).O AWS KMS também suporta outro tipo de recurso que você pode usar com CMKs: um alias. Um aliasé um nome amigável que aponta para uma CMK. Algumas operações do AWS KMS permitem que vocêespecifique uma CMK por seu alias.

Esses tipos de recurso têm Nomes de recurso da Amazon (ARNs) exclusivos associados a eles, conformemostrado na lista a seguir.

• Chave mestra de cliente (CMK)

Formato ARN:

arn:aws:kms:AWS region:AWS account ID:key/CMK key ID

Exemplo de ARN:

arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

 • Alias

Formato ARN:

arn:aws:kms:AWS region:AWS account ID:alias/alias name

Exemplo de ARN:

arn:aws:kms:us-west-2:111122223333:alias/example-alias

34

Page 42: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorGerenciamento do acesso aos CMKs do AWS KMS

O AWS KMS fornece um conjunto de operações da API para trabalhar com os seus recursos do AWSKMS. Para uma lista de operações disponíveis e os recursos afetados em cada operação, consulteReferência de permissões da API do AWS KMS (p. 59).

Gerenciamento do acesso aos CMKs do AWS KMSA principal maneira de gerenciar o acesso a suas CMKs do AWS KMS é com políticas. As políticas sãodocumentos que descrevem quem tem acesso a quê. As políticas anexadas a uma identidade do IAMsão chamadas políticas baseadas em identidade (ou políticas do IAM), e as políticas anexadas a outrostipos de recurso são conhecidas como políticas baseadas em recursos. No AWS KMS, você deve anexarpolíticas baseadas em recursos a suas chaves mestras de cliente (CMKs). Elas são chamadas políticas dechaves. Todas as CMKs do KMS têm uma política de chaves.

Controle o acesso a suas CMKs do KMS das seguintes maneiras:

• Usar a política de chaves – Use a política de chaves para controlar o acesso a uma CMK. Você podeusar apenas a política de chaves para controlar o acesso, ou seja, o escopo completo de acesso à CMKé definido em um único documento (a política de chaves).

 • Usar políticas de IAM junto com a política de chaves – Use políticas de IAM combinadas com a política

de chaves para controlar o acesso a uma CMK. Com esse controle de acesso, você pode gerenciartodas as permissões para suas identidades do IAM no IAM.

 • Usar concessões junto com a política de chaves – Use concessões combinadas com a política de

chaves para permitir acesso a uma CMK. Com esse controle de acesso, você pode permitir acesso àCMK na política de chaves e permitir que os usuários deleguem seu acesso a outros.

Para a maioria dos serviços da AWS, as políticas de IAM são a única maneira de controlar o acesso aosrecursos do serviço. Alguns serviços oferecem políticas baseadas em recursos ou outros mecanismosde controle de acesso para complementar as políticas de IAM, mas esses são geralmente opcionais evocê pode controlar o acesso aos recursos desses serviços apenas com políticas de IAM. No entanto,esse não é o caso do AWS KMS. Para permitir o acesso a uma CMK do KMS, use a política de chaves,individualmente ou com políticas ou concessões do IAM. As políticas do IAM não são suficientes parapermitir o acesso a uma CMK, embora você possa usá-las junto com uma política de chaves da CMK.

Para mais informações sobre como usar políticas de chaves, consulte Como usar políticas de chaves (p. 36).

Para mais informações sobre como usar políticas de IAM, consulte Usar políticas do IAM (p. 55).

Para mais informações sobre como usar concessões, consulte Como usar concessões (p. 84).

Especificação de permissões em uma políticaO AWS KMS fornece um conjunto de operações da API. Para controlar o acesso a essas operações daAPI, o AWS KMS fornece um conjunto de ações que você pode especificar em uma política. Para obtermais informações, consulte Referência de permissões da API do AWS KMS (p. 59).

Uma política é um documento que descreve um conjunto de permissões. Estes são os elementos básicosde uma política:

• Recurso – Em uma política do IAM, use um Nome de recurso da Amazon (ARN) para especificar orecurso ao qual a política se aplica. Para obter mais informações, consulte Recursos e operações doAWS KMS (p. 34). Em uma política de chaves, use "*" para o recurso, que significa "esta CMK".Uma política de chaves se aplica apenas à CMK à qual ela está anexada.

35

Page 43: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorEspecificação de condições em uma política

 • Ação – Use ações para especificar as operações da API permitidas ou negadas. Por exemplo, a açãokms:Encrypt corresponde à operação de API Encrypt do AWS KMS.

 • Efeito – Use o efeito para especificar se deseja permitir ou negar as permissões. Se você não permitir

explicitamente o acesso a um recurso, o acesso será implicitamente negado. Você também pode negarexplicitamente o acesso a um recurso, para ter certeza de que um usuário não consiga acessá-lo,mesmo que uma outra política conceda acesso.

 • Principal – Em uma política do IAM, você não especifica um principal. Em vez disso, a identidade (o

usuário, grupo ou função do IAM) à qual a política está anexada é o principal implícito. Em uma políticade chaves, você deve especificar o principal (a identidade) ao qual as permissões se aplicam. Vocêpode especificar as contas AWS (raiz), os usuários do IAM, as funções do IAM e alguns serviços doAWS como principais em uma política de chaves. Os grupos do IAM não são principais válidos em umapolítica de chaves.

Para obter mais informações, consulte Como usar políticas de chaves (p. 36) e Usar políticas doIAM (p. 55).

Especificação de condições em uma políticaVocê pode usar um outro elemento de política chamado condição para especificar as circunstâncias emque uma política entra em vigor. Por exemplo, talvez você deseje que uma declaração de política só tenhaefeito após uma data específica. Ou, você pode querer que uma declaração de política controle o acessocom base em se um valor específico existe na solicitação de API.

Para especificar condições, use as chaves de condição predefinidas. Algumas chaves de condição seaplicam geralmente à AWS, e algumas são específicas ao AWS KMS. Para obter mais informações,consulte Como usar condições de política (p. 65).

Como usar políticas de chaves no AWS KMSAs políticas de chaves são as principais maneiras de controlar o acesso às chaves mestras de cliente(CMKs) no AWS KMS. Elas não são a única forma de controlar o acesso, mas você não pode controlar oacesso sem elas. Para obter mais informações, consulte Gerenciamento do acesso aos CMKs do AWSKMS (p. 35).

Tópicos

• Visão geral de políticas de chaves (p. 36)• Política de chaves padrão (p. 37)• Política de chaves de exemplo (p. 43)

Visão geral de políticas de chavesUma política de chaves é um documento que usa JSON (JavaScript Object Notation) para especificarpermissões. Você pode trabalhar com esses documentos JSON diretamente, ou pode usar o Consolede gerenciamento da AWS para trabalhar com eles, usando uma interface gráfica chamada visualização

36

Page 44: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorPolítica de chaves padrão

padrão. Para obter mais informações sobre a visualização padrão do console para políticas de chaves,consulte Política de chaves padrão (p. 37) e Alterar uma política de chaves (p. 47).

Um documento de política de chaves não pode exceder 32 KB (32.768 bytes). Os documentos de políticade chaves usam a mesma sintaxe JSON de outras políticas de permissões na AWS, e têm a seguinteestrutura básica:

{ "Version": "2012-10-17", "Statement": [{ "Sid": "statement identifier", "Effect": "effect", "Principal": "principal", "Action": "action", "Resource": "resource", "Condition": {"condition operator": {"condition context key": "context key value"}} }]}

Um documento de política de chaves deve ter um elemento Version. Recomendamos configurar a versãocomo 2012-10-17 (a versão mais recente). Além disso, um documento de política de chaves deve teruma ou mais declarações, e cada declaração consiste em até seis elementos:

• Sid – (Opcional) O Sid é um identificador de declaração, uma string de caracteres arbitrária que vocêpode usar para identificar a declaração.

• Efeito – (Obrigatório) O efeito especifica entre permitir ou negar as permissões na declaração de política.O Effect deve ser Allow ou Deny. Se você não permitir explicitamente o acesso a uma CMK, o acessoestará implicitamente negado. Você também pode negar explicitamente o acesso a uma CMK. Vocêpoderia fazer isso para garantir que um usuário não possa acessá-la, mesmo quando uma políticadiferente permite o acesso.

• Principal – (Obrigatório) O principal é a identidade à qual as permissões da declaração de política seaplicam. Você pode especificar as contas AWS (raiz), os usuários do IAM, as funções do IAM e algunsserviços do AWS como principais em uma política de chaves. Os grupos do IAM não são principaisválidos.

• Ação – (Obrigatório) Ações especificam as operações de API que são permitidas ou negadas. Porexemplo, a ação kms:Encrypt corresponde à operação de API Encrypt do AWS KMS. Você pode listarmais de uma ação em uma declaração de política. Para obter mais informações, consulte Referência depermissões da API do AWS KMS (p. 59).

• Recurso – (Obrigatório) Em uma política de chaves, você pode usar "*" para o recurso, o que significa"esta CMK". Uma política de chaves se aplica apenas à CMK à qual ela está anexada.

• Condição – (Opcional) Condições especificam os requisitos que devem ser atendidos para que a políticade chaves tenha efeito. Com condições, a AWS pode avaliar o contexto de uma solicitação de API paradeterminar se a declaração de política se aplica ou não. Para obter mais informações, consulte Comousar condições de política (p. 65).

Para obter mais informações sobre a sintaxe de política da AWS, consulte Referência da política do AWSIAM no Guia do usuário do IAM.

Política de chaves padrãoPolítica de chaves padrão ao criar uma CMK programaticamente

Ao criar uma CMK de maneira programática — ou seja, com a API do AWS KMS (inclusive por meio dosSDKs da AWS e das ferramentas da linha de comando) — você tem a opção de fornecer a política dechave para a nova CMK. Se você não fornecer uma, o AWS KMS criará um para você. Esta política de

37

Page 45: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorPolítica de chaves padrão

chaves padrão tem uma declaração de política que fornece à conta da AWS (usuário raiz) proprietáriada CMK acesso total à IAM e habilita políticas de IAM na conta para fornecer acesso à CMK. Para obtermais informações sobre essa declaração de política, consulte Permite acesso à conta da AWS e habilitapolíticas do IAM (p. 38).

Política de chaves padrão ao criar uma CMK com o Console de gerenciamento da AWS

Ao criar uma CMK com o Console de gerenciamento da AWS (p. 9), você pode escolher os usuários doIAM, as funções do IAM e as contas da AWS que recebem acesso à CMK. Os usuários, as funções e ascontas que você escolhe são adicionadas a uma política de chaves padrão que o console cria para você.Com o console, você pode usar a visualização padrão para visualizar ou modificar essa política de chaves,ou pode trabalhar diretamente com o documento da política de chaves. A política de chaves padrão criadapelo console concede as permissões a seguir, cada uma é explicada na seção correspondente.

Permissões• Permite acesso à conta da AWS e habilita políticas do IAM (p. 38)• Permite que os administradores de chaves administrem a CMK (p. 39)• Permite que os usuários de chaves usem a CMK (p. 41)

Permite acesso à conta da AWS e habilita políticas do IAMA política de chaves padrão concede à conta da AWS (usuário raiz) que possui a CMK acesso total àCMK, que realiza as duas ações a seguir.

1. Reduz o risco de a CMK se tornar ingerenciável.

Você não pode excluir o usuário raiz da sua conta da AWS, portanto, conceder acesso a esse usuárioreduz o risco de a CMK se tornar ingerenciável. Considere este cenário:1. Uma política de chaves da CMK permite que apenas um usuário do IAM, Alice, gerencie a CMK.

Esta política de chaves não permite o acesso ao usuário raiz.2. Alguém exclui o usuário do IAM, Alice.

Neste cenário, a CMK agora é ingerenciável, e você deve entrar em contato com o AWS Support paraobter novamente o acesso à CMK. O usuário raiz não tem acesso à CMK, pois ele só pode acessaruma CMK quando a política de chaves o permite explicitamente. Isso é diferente da maioria dos outrosrecursos na AWS, que permitem implicitamente o acesso ao usuário raiz.

2. Habilita as políticas do IAM para permitir o acesso à CMK.

As políticas do IAM em si não são suficientes para permitir o acesso a uma CMK. No entanto, vocêpode usá-las em combinação com uma política de chaves da CMK, se a política de chaves permiti-lo. Conceder à conta da AWS acesso total à CMK faz isso; permite que você use políticas do IAMpara dar acesso à CMK para os usuários e as funções do IAM na conta. Isso por si só não dá acessoà CMK para nenhum usuário ou função do IAM, mas permite que você use políticas do IAM parafazer isso. Para obter mais informações, consulte Gerenciamento do acesso aos CMKs do AWSKMS (p. 35).

O exemplo a seguir mostra a declaração de política que permite acesso à conta da AWS e, portanto,habilita as políticas do IAM.

{ "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:root"}, "Action": "kms:*", "Resource": "*"

38

Page 46: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorPolítica de chaves padrão

}

Permite que os administradores de chaves administrem a CMKA política de chaves padrão criada pelo console permite que você escolha usuários e funções do IAM naconta e os torne administradores de chaves. Os administradores de chaves têm permissões para gerenciara CMK, mas não têm permissões para usar a CMK para criptografar e descriptografar dados.

Warning

Mesmo que os administradores de chaves não tenham permissão para usar a CMK paracriptografar e descriptografar dados, eles têm permissão para modificar a política de chaves. Issosignifica que eles podem conceder essas permissões a si mesmos.

Você pode adicionar usuários e funções do IAM à lista de administradores de chaves ao criar a CMK.Você também pode editar a lista com a visualização padrão do console para políticas de chaves, conformemostrado na imagem a seguir. A visualização padrão para políticas de chaves está disponível na página dedetalhes de chaves de cada CMK.

Quando você usa a visualização padrão do console para modificar a lista de administradores de chaves,o console modifica o elemento Principal em uma declaração específica na política de chaves. Essadeclaração é chamada de declaração de administradores de chaves. O exemplo a seguir mostra adeclaração de administradores de chaves.

{ "Sid": "Allow access for Key Administrators", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:user/KMSAdminUser", "arn:aws:iam::111122223333:role/KMSAdminRole"

39

Page 47: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorPolítica de chaves padrão

]}, "Action": [ "kms:Create*", "kms:Describe*", "kms:Enable*", "kms:List*", "kms:Put*", "kms:Update*", "kms:Revoke*", "kms:Disable*", "kms:Get*", "kms:Delete*", "kms:TagResource", "kms:UntagResource", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource": "*"}

A declaração de administradores de chaves concede as seguintes permissões:

• kms:Create* – Permite que os administradores de chaves criem aliases e concessões (p. 84) paraessa CMK.

• kms:Describe* – Permite que os administradores de chaves recuperem informações sobre essa CMK,incluindo seus identificadores, data de criação, estado, e muito mais. Esta permissão é necessária paravisualizar a página de detalhes de chaves no Console de gerenciamento da AWS.

• kms:Enable* – Permite que os administradores de chaves definam o estado dessa CMK como habilitadoe especifique a rotação anual do material de chaves da CMK (p. 95).

• kms:List* – Permite que os administradores de chaves recuperem listas dos aliases, concessões,políticas de chaves e tags dessa CMK. Esta permissão é necessária para visualizar a lista de CMKs noConsole de gerenciamento da AWS.

• kms:Put* – Permite que os administradores de chaves modifiquem a política de chaves dessa CMK.• kms:Update* – Permite que os administradores de chaves alterem o destino de um alias para essa CMK,

e modifiquem a descrição dessa CMK.• kms:Revoke* – Permite que os administradores de chaves revoguem as permissões dessa CMK que são

permitidas por uma concessão (p. 84).• kms:Disable* – Permite que os administradores de chaves definam o estado dessa CMK como

desabilitado e desabilitem a rotação anual do material de chaves dessa CMK (p. 95).• kms:Get* – Permite que os administradores de chaves recuperem a política de chaves dessa CMK e

determinem se o material de chaves dessa CMK terá rotação anual. Se a origem da CMK for externa,também permite que os administradores de chaves façam download da chave pública e importemo token dessa CMK. Para obter mais informações sobre a origem da CMK, consulte Importação domaterial de chaves (p. 101).

• kms:Delete* – Permite que os administradores de chaves excluam um alias que aponta para essaCMK e, se a origem dessa CMK for externa, excluam o material de chaves importadas. Para obtermais informações sobre o material de chaves importadas, consulte Importação do material dechaves (p. 101). Observe que essa permissão não permite que os administradores de chaves excluama CMK (p. 119).

• kms:ImportKeyMaterial – Permite que os administradores de chaves importem o material de chaves paraa CMK.

Note

Esta permissão não é mostrada na declaração de política de exemplo anterior. Esta permissãoé aplicável apenas às CMKs cuja origem é externa. Ela é automaticamente incluída nadeclaração de administradores de chaves quando você usa o console para criar uma CMK sem

40

Page 48: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorPolítica de chaves padrão

material de chaves (p. 105). Para obter mais informações, consulte Importação do material dechaves (p. 101).

• kms:TagResource – Permite que os administradores de chaves adicionem e atualizem as tags dessaCMK.

• kms:UntagResource – Permite que os administradores de chaves removam as tags dessa CMK.• kms:ScheduleKeyDeletion – Permite que os administradores de chaves excluam essa CMK (p. 119).• kms:CancelKeyDeletion – Permite que os administradores de chaves cancelem a exclusão pendente

dessa CMK.

As duas permissões finais na lista precedente, kms:ScheduleKeyDeletion ekms:CancelKeyDeletion, são incluídas por padrão quando você crie uma CMK (p. 9). No entanto, vocêpode removê-las opcionalmente da política de chaves ao criar uma CMK, desmarcando a caixa Permitirque os administradores de chaves excluam esta chave. Da mesma forma, você pode usar a página dedetalhes de chaves para removê-las da política de chaves padrão para CMKs existentes. Para obter maisinformações, consulte Edição de chaves (p. 20).

Muitas dessas permissões contêm o caractere curinga (*). Isso significa que se o AWS KMS adicionarnovas operações de API no futuro, os administradores de chaves serão automaticamente permitidos arealizar todas as novas operações de API que comecem com Create, Describe, Enable, List, Put, Update,Revoke, Disable, Get ou Delete.

Note

A declaração de administradores de chaves descrita na seção precedente na versão anteriorda política de chaves padrão. Para obter informações sobre as versões anteriores da política dechaves padrão, consulte Manter as políticas de chaves atualizadas (p. 53).

Permite que os usuários de chaves usem a CMKA política de chaves padrão criada pelo console permite que você escolha usuários e funções doIAM na conta, e contas externas da AWS, e os torne usuários de chaves. Os usuários de chaves têmpermissões para usar a CMK diretamente para criptografia e descriptografia. Eles também têm permissõespara delegar um subconjunto de suas próprias permissões para alguns dos serviços da AWS que sãointegrados ao AWS KMS (p. 179). Os usuários de chaves podem conceder permissões implicitamentea esses serviços para usar a CMK de formas específicas e limitadas. Essa delegação implícita é feita pormeio de concessões (p. 84). Por exemplo, os usuários de chaves podem fazer o seguinte:

• Usar essa CMK com o Amazon Elastic Block Store (Amazon EBS) e o Amazon Elastic Compute Cloud(Amazon EC2) para anexar um volume criptografado do EBS a uma instância do EC2. O usuário dechaves concede implicitamente permissão ao Amazon EC2 para usar a CMK para anexar o volumecriptografado à instância. Para obter mais informações, consulte Como o Amazon Elastic Block Store(Amazon EBS) usa o AWS KMS (p. 192).

• Use esta CMK com o Amazon Redshift para ativar um cluster criptografado. O usuário de chavesconcede implicitamente permissão ao Amazon Redshift para usar a CMK para ativar o clustercriptografado e criar snapshots criptografados. Para obter mais informações, consulte Como o AmazonRedshift usa o AWS KMS (p. 203).

• Use essa CMK com outros serviços da AWS integrados ao AWS KMS (p. 179), especialmente osserviços que usam concessões, para criar, gerenciar ou usar recursos criptografados com essesserviços.

A política de chaves padrão concede permissões aos usuários de chaves para permitir que essesserviços integrados usem a CMK, mas os usuários também precisam de permissão para usar os serviçosintegrados. Para obter detalhes sobre como conceder acesso aos usuários para um serviço da AWSintegrado com o AWS KMS, consulte a documentação do serviço integrado.

41

Page 49: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorPolítica de chaves padrão

A política de chaves padrão oferece aos usuários permissões para usar uma chave CMK com todos osserviços integrados que usam concessões, ou nenhum deles. Você não pode usar a política de chavespadrão para permitir que os usuários usem uma chave CMK com alguns dos serviços integrados, mas nãooutros. No entanto, você pode criar uma política de chaves personalizada para fazer isso. Para obter maisinformações, consulte kms:ViaService (p. 81) chave de condição.

Você pode adicionar usuários do IAM, funções do IAM e contas externas da AWS à lista de usuáriosde chaves ao criar a CMK. Você também pode editar a lista com a visualização padrão do console parapolíticas de chaves, conforme mostrado na imagem a seguir. A visualização padrão para políticas dechaves está na página de detalhes de chaves.

Quando você usa a visualização padrão do console para modificar a lista de usuários de chaves, oconsole modifica o elemento Principal em duas declarações específicas na política de chaves. Essasdeclarações são chamadas de declarações de usuários de chaves. Os exemplos a seguir mostram asdeclarações de usuários de chaves.

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:user/KMSUser", "arn:aws:iam::111122223333:role/KMSRole", "arn:aws:iam::444455556666:root" ]}, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*",

42

Page 50: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorPolítica de chaves de exemplo

"kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*"}

{ "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:user/KMSUser", "arn:aws:iam::111122223333:role/KMSRole", "arn:aws:iam::444455556666:root" ]}, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}}}

A primeira dessas duas declarações permite que os usuários de chaves usem a CMK diretamente, e incluias seguintes permissões:

• kms:Encrypt – Permite que os usuários de chaves solicitem com êxito que o AWS KMS criptografedados com esta CMK.

• kms:Decrypt – Permite que os usuários de chaves solicitem com êxito que o AWS KMS descriptografedados com esta CMK.

• kms:ReEncrypt* – Permite que os usuários de chaves solicitem com êxito que o AWS KMS recriptografedados que foram originalmente criptografados com esta CMK, ou use esta CMK para recriptografardados criptografados anteriormente. A operação de API ReEncrypt exige acesso a duas CMKs, aoriginal para descriptografia e uma diferente para a criptografia subsequente. Para fazer isso, você podeconceder a permissão kms:ReEncrypt* para ambas as CMKs (observe o caractere curinga "*" napermissão). Ou você pode conceder a permissão kms:ReEncryptFrom na CMK para descriptografia ea permissão kms:ReEncryptTo na CMK para criptografia.

• kms:GenerateDataKey* – Permite que os usuários de chaves solicitem com êxito chaves de criptografiade dados (chaves de dados) a serem usadas para criptografia do lado do cliente. Os usuários de chavespodem optar por receber duas cópias da chave de dados—uma em formato de texto simples e uma queé criptografada com esta CMK—ou receber apenas o formato criptografado da chave de dados.

• kms:DescribeKey – Permite que os usuários de chaves recuperem informações sobre essa CMK,incluindo seus identificadores, data de criação, estado, e muito mais.

A segunda dessas duas declarações permite que os usuários de chaves usem concessões para delegarum subconjunto de suas próprias permissões para alguns dos serviços do AWS que são integrados como AWS KMS (p. 179), especificamente os serviços que usam concessões. Esta declaração de políticausa um elemento de condição para conceder essas permissões apenas quando o usuário de chaves estádelegando permissões para um serviço integrado da AWS. Para obter mais informações sobre o uso decondições em uma chave de políticas, consulte Como usar condições de política (p. 65).

Política de chaves de exemploO exemplo a seguir mostra uma política de chaves completa. Esta política de chaves combina asdeclarações da política de exemplo da seção de política de chaves padrão (p. 37) anterior em umapolítica de chaves única que realiza o seguinte:

43

Page 51: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorPolítica de chaves de exemplo

• Concede à conta da AWS (usuário raiz) 111122223333 acesso total à CMK e, portanto, habilita aspolíticas do IAM na conta para conceder acesso à CMK.

• Permite que o usuário do IAM KMSAdminUser e a função do IAM KMSAdminRole administrem a CMK.• Permite que o usuário do IAM KMSUser, a função do IAM KMSRole e a conta da AWS 444455556666

usem a CMK.

{ "Version": "2012-10-17", "Id": "key-consolepolicy-2", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:root"}, "Action": "kms:*", "Resource": "*" }, { "Sid": "Allow access for Key Administrators", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:user/KMSAdminUser", "arn:aws:iam::111122223333:role/KMSAdminRole" ]}, "Action": [ "kms:Create*", "kms:Describe*", "kms:Enable*", "kms:List*", "kms:Put*", "kms:Update*", "kms:Revoke*", "kms:Disable*", "kms:Get*", "kms:Delete*", "kms:TagResource", "kms:UntagResource", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource": "*" }, { "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::111122223333:user/KMSUser", "arn:aws:iam::111122223333:role/KMSRole", "arn:aws:iam::444455556666:root" ]}, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*" }, { "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": {"AWS": [

44

Page 52: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorPolítica de chaves de exemplo

"arn:aws:iam::111122223333:user/KMSUser", "arn:aws:iam::111122223333:role/KMSRole", "arn:aws:iam::444455556666:root" ]}, "Action": [ "kms:CreateGrant", "kms:ListGrants", "kms:RevokeGrant" ], "Resource": "*", "Condition": {"Bool": {"kms:GrantIsForAWSResource": "true"}} } ]}

A imagem a seguir mostra um exemplo da aparência desta política de chaves quando visualizada com avisualização padrão do console para políticas de chaves.

45

Page 53: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorPolítica de chaves de exemplo

46

Page 54: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAlterar uma política de chaves

Alterar uma política de chavesPara alterar as permissões de uma chave mestra do cliente (CMK) no AWS KMS, altere a política dechaves (p. 36) da CMK.

Ao alterar a política de chaves, tenha em mente as seguintes regras:

• Você pode adicionar ou remover usuários do IAM funções do IAM e contas da AWS (usuários root) napolítica de chaves e alterar as ações permitidas ou negadas para os principais. Para mais informaçõessobre as maneiras de especificar principais e permissões em uma política de chaves, consulte Comousar políticas de chaves (p. 36).

 • Você não pode adicionar grupos do IAM a uma política de chaves, mas pode adicionar vários usuários

do IAM. Para obter mais informações, consulte Permitir que vários usuários do IAM acessem umaCMK (p. 51).

 • Se você adicionar contas externas da AWS a uma política de chaves, será necessário também usar

políticas do IAM nas contas externas para conceder permissões a usuários, grupos ou funções do IAMnessas contas. Para obter mais informações, consulte Permitir que contas externas da AWS acessemuma CMK (p. 51).

 • O documento de política de chaves resultante não pode exceder 32 KB (32.768 bytes).

Tópicos• Como alterar uma política de chaves (p. 47)• Permitir que vários usuários do IAM acessem uma CMK (p. 51)• Permitir que contas externas da AWS acessem uma CMK (p. 51)

Como alterar uma política de chavesVocê pode alterar uma política de chaves de três maneiras diferentes. Veja a explicação sobre cada umadelas nas seções a seguir.

Tópicos• Usar a visualização padrão do Console de gerenciamento da AWS (p. 47)• Usar a visualização de política do Console de gerenciamento da AWS (p. 49)• Uso da API AWS KMS (p. 50)

Usar a visualização padrão do Console de gerenciamento da AWS

Você pode usar o console para alterar uma política de chaves com uma interface gráfica chamadavisualização padrão.

Se as seguintes etapas não correspondem à exibição no console, significa que essa política de chavesnão foi criada pelo console. Ou significa que a política de chaves foi modificada e é incompatível com avisualização padrão do console. Neste caso, siga as etapas em Usar a visualização de política do Consolede gerenciamento da AWS (p. 49) ou Uso da API AWS KMS (p. 50).

47

Page 55: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAlterar uma política de chaves

Note

AWS KMS recently introduced a new console that makes it easier for you to organize and manageyour KMS resources. It is available in all AWS Regions that AWS KMS supports except for AWSGovCloud (US-East) and AWS GovCloud (US-West). We encourage you to try the new AWS KMSconsole at https://console.aws.amazon.com/kms.The original console will remain available for a brief period to give you time to familiarize yourselfwith the new one. To use the original console, choose Encryption Keys in the IAM console or goto https://console.aws.amazon.com/iam/home?#/encryptionKeys. Please share your feedback bychoosing Feedback in either console or in the lower-right corner of this page.

Para alterar uma política de chaves usando a visualização padrão do console (new console)

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS Key Management Service(AWS KMS) em https://console.aws.amazon.com/kms.

2. To change the AWS Region, use the Region selector in the upper-right corner of the page.3. In the navigation pane, choose Customer managed keys. (Você não pode alterar as políticas de

chaves das chaves gerenciadas pela AWS.)4. Selecione o alias ou ID de chave da CMK cuja política de chaves você quer alterar.5. Role para baixo até a guia Key policy (Política de chaves).6. Defina o que alterar.

• Para adicionar ou remover administradores de chaves (p. 39), e permitir ou evitar queadministradores de chaves excluam a CMK (p. 119), use os controles na seção Key administrators(Administradores de chaves) da página. Os administradores de chaves gerenciam a CMK, incluindoa habilitação e desabilitação, a configuração da política de chaves e a habilitação da alternância dechaves (p. 95).

• Para adicionar ou remover usuários de chaves (p. 41) e permitir ou cancelar a permissão dascontas da AWS para usar a CMK, use os controles na seção Política de chaves da página. Usuáriosde chaves podem usar a CMK em operações de criptografia, tais como criptografar, descriptografar,recriptografar e gerar chaves de dados.

Para alterar uma política de chaves usando a visualização padrão do console (original console)

1. Sign in to the Console de gerenciamento da AWS and go to https://console.aws.amazon.com/iam/home?#/encryptionKeys.

2. For Region, choose the appropriate AWS Region. Do not use the region selector in the navigation bar(top right corner).

3. Selecione o alias da CMK cuja política de chaves você quer alterar.4. Defina o que alterar.

• Para adicionar ou remover administradores de chaves (p. 39)e permitir ou cancelar apermissão dos administradores de chaves para excluir a CMK (p. 119), use os controles da áreaAdministradores de chaves na seção Política de chaves da página.

48

Page 56: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAlterar uma política de chaves

• Para adicionar ou remover usuários de chaves (p. 41) e permitir ou cancelar a permissão dascontas da AWS de usar a CMK, use os controles da área Usuários de chaves na seção Política dechaves da página.

Usar a visualização de política do Console de gerenciamento da AWSVocê pode usar o console para alterar um documento de política de chaves com a visualização de políticado console.

Note

AWS KMS recently introduced a new console that makes it easier for you to organize and manageyour KMS resources. It is available in all AWS Regions that AWS KMS supports except for AWSGovCloud (US-East) and AWS GovCloud (US-West). We encourage you to try the new AWS KMSconsole at https://console.aws.amazon.com/kms.

49

Page 57: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAlterar uma política de chaves

The original console will remain available for a brief period to give you time to familiarize yourselfwith the new one. To use the original console, choose Encryption Keys in the IAM console or goto https://console.aws.amazon.com/iam/home?#/encryptionKeys. Please share your feedback bychoosing Feedback in either console or in the lower-right corner of this page.

Para alterar um documento de política de chaves usando a visualização da política do console(new console)

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS Key Management Service(AWS KMS) em https://console.aws.amazon.com/kms.

2. To change the AWS Region, use the Region selector in the upper-right corner of the page.3. In the navigation pane, choose Customer managed keys. (Você não pode alterar a política de chaves

de uma CMK gerenciada pela AWS.)4. Escolha o alias ou ID de chave da CMK que você deseja alterar.5. Role para baixo até a guia Key policy (Política de chaves).6. Na seção Key Policy (Política de chaves), escolha Switch to policy view (Mudar para visualização de

política).7. Edite o documento de política de chaves e escolha Save changes (Salvar alterações).

Para alterar um documento de política de chaves usando a visualização da política do console(original console)

1. Sign in to the Console de gerenciamento da AWS and go to https://console.aws.amazon.com/iam/home?#/encryptionKeys.

2. For Region, choose the appropriate AWS Region. Do not use the region selector in the navigation bar(top right corner).

3. Escolha o alias da CMK cujo documento de política de chaves você quer editar.4. Na linha Política de chaves, escolha Alternar para visualização de políticas.

5. Edite o documento de política de chaves e escolha Save Changes (Salvar alterações).

Uso da API AWS KMS

Use a API do AWS KMS para alterar um documento de política de chaves. Nas etapas a seguir é usadaa API HTTP do AWS KMS. Você pode realizar as mesmas operações com os SDKs da AWS ou as

50

Page 58: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAlterar uma política de chaves

ferramentas da linha de comando da AWS, que geralmente são mais fáceis do que usar a API HTTP. Emrelação às operações e sintaxe a serem usados em outros SDKs e ferramentas, consulte a documentaçãode referência do respectivo SDK ou ferramenta. Quanto ao código de exemplo que usa o AWS SDK forJava, consulte Como trabalhar com políticas de chaves (p. 280).

Para alterar um documento de política de chaves (KMS API)

1. Use GetKeyPolicy para recuperar o documento de política de chaves existente e salve o documentoem um arquivo.

2. Abra o documento de política de chaves no editor de texto de sua preferência, edite-o e salve oarquivo.

3. Use PutKeyPolicy para aplicar o documento de política de chaves atualizado à CMK.

Permitir que vários usuários do IAM acessem uma CMKOs grupos de IAM não são principais válidos em uma política de chaves. Para permitir que vários usuáriosdo IAM acessem uma CMK, siga um destes procedimentos:

• Adicione cada usuário do IAM à política de chaves. Essa abordagem requer que você atualize a políticade chaves toda vez que a lista de usuários autorizados for alterada.

• Certifique-se de que a política de chaves inclua a instrução que permite que as políticas do IAMconcedam acesso à CMK (p. 38). Em seguida, crie uma política do IAM que permita acesso à CMKe anexe essa política a um grupo do IAM que contém os usuários autorizados do IAM. Com essaabordagem, você não precisará alterar nenhuma política quando a lista de usuários autorizados foralterada. Bastará adicionar ou remover esses usuários do grupo do IAM apropriado.

Para mais informações sobre como as políticas de chaves do AWS KMS e as políticas do IAM trabalhamjuntas, consulte Como compreender a avaliação de política (p. 88).

Permitir que contas externas da AWS acessem uma CMKVocê pode permitir que os usuários ou funções do IAM de uma conta da AWS acesse uma CMK em outraconta. Por exemplo, suponha que os usuários ou funções na conta 111122223333 precisem usar umaCMK na conta 444455556666. Para permitir isso, faça duas coisas:

1. Altere a política de chaves da CMK na conta 444455556666.2. Adicione uma política do IAM (ou altere uma já existente) para os usuários ou funções da conta

111122223333.

Nenhuma das etapas, sozinha, é suficiente para conceder acesso a uma CMK entre contas—é precisoexecutar as duas.

Alterar a política de chaves da CMK para permitir contas externas

Para permitir que os usuários ou funções do IAM de uma conta da AWS usem uma CMK em uma outraconta, adicione primeiro a conta externa (usuário root) à política de chaves da CMK. Observe que você nãoadiciona os usuários ou funções individuais do IAM à política de chaves, somente a conta externa que ospossui.

Defina as permissões que serão concedidas à conta externa:

• Para adicionar a conta externa a uma política de chaves como um usuário de chaves, use a visualizaçãopadrão da política de chaves do Console de gerenciamento da AWS. Para obter mais informações,consulte Usar a visualização padrão do Console de gerenciamento da AWS (p. 47).

51

Page 59: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAlterar uma política de chaves

Você também pode alterar o documento de política de chaves diretamente usando a visualização depolítica do console ou a API do AWS KMS, como descrito em Usar a visualização de política do Consolede gerenciamento da AWS (p. 49) e Uso da API AWS KMS (p. 50).

• Para adicionar a conta externa a uma política de chaves como um administrador de chaves ou concederpermissões personalizadas, você deve alterar o documento de política de chaves diretamente usandoa visualização de política do console ou a API do AWS KMS. Para obter mais informações, consulteUsar a visualização de política do Console de gerenciamento da AWS (p. 49) ou Uso da API AWSKMS (p. 50).

Para um exemplo de sintaxe JSON que adiciona uma conta externa ao elemento Principal de umdocumento de política de chaves, consulte a declaração de política na política de chaves do consolepadrão (p. 41) que permite que os usuários de chaves usem a CMK.

Adicionar ou modificar uma política do IAM para conceder acesso a uma CMK emoutra conta da AWS

Depois de adicionar a conta externa à política de chaves da CMK, adicione uma política do IAM (ou altereuma já existente) para os usuários ou funções na conta externa. Nesse cenário, os usuários ou funçõesna conta 111122223333 precisam usar uma CMK que está na conta 444455556666. Para permitir isso,crie uma política do IAM na conta 111122223333 que permita o acesso à CMK da conta 444455556666 eanexe a política aos usuários ou funções da conta 111122223333. O exemplo a seguir mostra uma políticaque permite acesso a uma CMK na conta 444455556666.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowUseOfCMKInAccount444455556666", "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-west-2:444455556666:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d" }, { "Sid": "AllowUseofCMKToCreateEncryptedResourcesInAccount444455556666", "Effect": "Allow", "Action": "kms:CreateGrant", "Resource": "arn:aws:kms:us-west-2:444455556666:key/1a2b3c4d-5e6f-1a2b-3c4d-5e6f1a2b3c4d", "Condition": { "Bool": { "kms:GrantIsForAWSResource": true } } } ]}

Essa política permite que usuários e funções da conta 111122223333 usem a CMK da conta444455556666 diretamente para criptografia e descriptografia e deleguem um subconjunto de suaspróprias permissões a alguns serviços da AWS integrados ao AWS KMS (p. 179), especificamente osserviços que usam concessões. Observe os seguintes detalhes sobre essa política:

52

Page 60: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorManter as políticas de chaves atualizadas

• A política permite o uso de uma determinada CMK na conta 444455556666, identificada pelo Nomede recurso da Amazon (ARN) da CMK (p. 34) no elemento Resource das declarações depolítica. Quando você conceder acesso às CMKs com uma política de IAM sempre liste os ARNsespecíficos da CMK no elemento Resource da política. Caso contrário, o acesso poderá ser concedidoinadvertidamente para mais CMKs do que o pretendido.

• As políticas de IAM não contêm o elemento Principal, que difere das políticas de chaves do KMS.Nas políticas de IAM, o principal fica implícito na identidade à qual a política está anexada.

• A política concede aos usuários de chaves permissões para permitir que serviços integrados usema CMK, mas esses usuários precisam de permissão também para usar os serviços integrados. Paraobter detalhes sobre como conceder acesso aos usuários para um serviço da AWS integrado com oAWS KMS, consulte a documentação do serviço integrado. Além disso, observe que para os usuáriosou funções da conta 111122223333, a CMK da conta 444455556666 não aparecerá no Console degerenciamento da AWS para seleção na criação de recursos criptografados, mesmo quando os usuáriosou funções tiverem uma política como essa anexada. O console não mostra CMKs de outras contas.

Para mais informações sobre como trabalhar com políticas de IAM, consulte Usar políticas doIAM (p. 55).

Manter as políticas de chaves atualizadasQuando você usa o Console de gerenciamento da AWS para criar uma chave mestra de cliente(CMK) (p. 9), pode escolher os usuários e funções do IAM, as contas da IAM e as contas da AWSque terão acesso à CMK. Esses usuários, funções e contas são adicionados a uma política de chavespadrão (p. 37) que controla o acesso à CMK. Ocasionalmente, a política de chaves padrão das novasCMKs é atualizada. Em geral, essas atualizações correspondem aos novos recursos do AWS KMS.

Quando você cria uma nova CMK, a versão mais recente da política de chaves padrão é adicionada a ela.No entanto, as CMKs existentes continuam usando a política de chaves atual — ou seja, as novas versõesda política de chaves padrão não são automaticamente aplicadas às CMKs existentes. Em vez disso, oconsole alerta que uma versão mais recente está disponível e solicita que você faça a atualização.

Note

O console alertará somente quando você estiver usando a política de chaves padrão que foiaplicada na criação da CMK. Se você tiver modificado manualmente o documento de políticade chaves usando a visualização de política do console ou a operação da API PutKeyPolicy, oconsole não alertará quando novas permissões estiverem disponíveis.

Para obter informações sobre as permissões que são adicionadas a uma política de chaves naatualização, consulte Alterações na política de chaves padrão (p. 55). A atualização para a versão maisrecente da política de chaves não deve causar problemas, porque isso apenas adiciona permissões, nãoas remove. Recomendamos que você mantenha as políticas de chaves atualizadas, a menos que tenhaum motivo específico para não fazê-lo.

Como determinar se uma versão mais recente da política dechaves padrão está disponívelVocê pode usar o Console de gerenciamento da AWS para saber se uma versão mais recente da políticade chaves padrão está disponível.

Note

AWS KMS recently introduced a new console that makes it easier for you to organize and manageyour KMS resources. It is available in all AWS Regions that AWS KMS supports except for AWSGovCloud (US-East) and AWS GovCloud (US-West). We encourage you to try the new AWS KMSconsole at https://console.aws.amazon.com/kms.

53

Page 61: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorManter as políticas de chaves atualizadas

The original console will remain available for a brief period to give you time to familiarize yourselfwith the new one. To use the original console, choose Encryption Keys in the IAM console or goto https://console.aws.amazon.com/iam/home?#/encryptionKeys. Please share your feedback bychoosing Feedback in either console or in the lower-right corner of this page.

Para localizar uma versão mais recente da política de chaves padrão (new console)

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS Key Management Service(AWS KMS) em https://console.aws.amazon.com/kms.

2. To change the AWS Region, use the Region selector in the upper-right corner of the page.3. In the navigation pane, choose Customer managed keys.4. Escolha o alias ou um ID de chave de uma CMK que usa a política de chaves padrão.5. Role para baixo até a seção Key policy (Política de chaves) da página.

Quando uma versão mais recente da política de chaves padrão está disponível, o console exibe oseguinte alerta:

A newer version of the default key policy is available. (Uma versão mais recente da política de chavespadrão está disponível.) Preview and upgrade to the new key policy. (Visualizar e atualizar para a novapolítica de chaves.)

Para localizar uma versão mais recente da política de chaves padrão (original console)

1. Sign in to the Console de gerenciamento da AWS and go to https://console.aws.amazon.com/iam/home?#/encryptionKeys.

2. For Region, choose the appropriate AWS Region. Do not use the region selector in the navigation bar(top right corner).

3. Escolha o alias da CMK cuja política de chaves você deseja ver. Quando uma versão mais recente dapolítica de chaves padrão está disponível, o console exibe o seguinte alerta:

Atualização para a versão mais recente da política de chavespadrãoQuando uma nova política de chaves padrão está disponível, o seguinte alerta é exibido na seção Políticade chaves da página do console.

A newer version of the default key policy is available. (Uma versão mais recente da política de chavespadrão está disponível.) Preview and upgrade to the new key policy. (Visualizar e atualizar para a novapolítica de chaves.)

Para atualizar para a versão mais recente da política de chaves padrão

1. Se você vir um alerta anunciando uma versão mais recente da política de chaves padrão, escolhaPreview and upgrade to the new key policy (Visualizar e atualizar para a nova política de chaves).

2. Examine o documento de política de chaves da versão mais recente da política de chaves padrão.Para obter mais informações sobre a diferença entre a versão mais recente e as versões anteriores,

54

Page 62: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorUsar políticas do IAM

consulte Alterações na política de chaves padrão (p. 55). Depois de examinar a política de chaves,escolha Upgrade key policy.

Alterações na política de chaves padrãoNa versão atual da política de chaves padrão (p. 37), a declaração de administradores de chavescontém mais permissões do que as versões anteriores. Essas permissões adicionais correspondem aosnovos recursos do AWS KMS.

As CMKs que usam uma versão mais recente da política de chaves padrão podem não ter as permissõesa seguir. Quando você atualiza para a versão mais recente da política de chaves padrão, elas sãoadicionadas à declaração de administradores de chaves.

kms:TagResource e kms:UntagResource

Essas permissões permitem aos administradores de chaves adicionar, atualizar e remover tags daCMK. Elas foram adicionadas à política de chaves padrão quando o AWS KMS lançou o recurso demarcação (p. 27).

kms:ScheduleKeyDeletion e kms:CancelKeyDeletion

Essas permissões permitem aos administradores de chaves programar e cancelar a exclusão daCMK. Elas foram adicionadas à política de chaves padrão quando o AWS KMS lançou o recurso deexclusão da CMK (p. 119).

Note

As permissões kms:ScheduleKeyDeletion e kms:CancelKeyDeletion são incluídas,por padrão, quando você cria uma CMK (p. 9) e quando atualiza para a versão mais recenteda política de chaves padrão. No entanto, é possível removê-las da política de chaves padrãoao criar uma CMK, desmarcando a caixa Allow key administrators to delete this key. Damesma forma, você pode usar a página de detalhes de chaves para removê-las da política dechaves padrão para CMKs existentes. Isso inclui CMKs cuja política de chaves você atualizoupara a versão mais recente.

Usar políticas do IAM com o AWS KMSVocê pode usar políticas de IAM em combinação com políticas de chaves (p. 36) para controlar oacesso às suas chaves mestras de cliente (CMKs) no AWS KMS.

Note

Esta seção discute como usar o IAM no contexto do AWS KMS. Não são fornecidas informaçõesdetalhadas sobre o serviço do IAM. Para obter a documentação completa do IAM, consulte o Guiado usuário do IAM.

s políticas anexadas a identidades do IAM (ou seja, usuários, grupos e funções) são chamadas políticasbaseadas em identidade (ou políticas do IAM), e as políticas anexadas a recursos fora do IAM sãochamadas de políticas baseadas em recursos. No AWS KMS, anexe políticas baseadas em recursos àsCMKs. Elas são chamadas políticas de chaves. Todas as CMKs do KMS têm uma política de chaves evocê deve usá-la para controlar o acesso a uma CMK. As políticas do IAM sozinhas não são suficientespara permitir acesso a uma CMK, embora você possa usá-las junto com uma política de chaves da CMK.Para fazer isso, certifique-se de que a política de chaves da CMK inclua a declaração de política quepermite políticas do IAM (p. 38).

Tópicos• Visão geral de políticas do IAM (p. 56)

55

Page 63: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorVisão geral de políticas do IAM

• Permissões necessárias para usar o console do AWS KMS (p. 56)• Políticas gerenciadas (predefinidas) da AWS para AWS KMS (p. 57)• Exemplos de política gerenciada pelo cliente (p. 57)

Visão geral de políticas do IAMUse as políticas do IAM das seguintes maneiras:

• Anexar uma política de permissões a um usuário ou grupo – Você pode anexar uma política que permite,por exemplo, que um usuário ou grupo de usuários do IAM crie novas CMKs.

• Anexar uma política de permissões a uma função de federação ou a permissões entre contas – Vocêpode anexar uma política do IAM a uma função do IAM para permitir a federação de identidades,conceder permissões entre contas ou a aplicativos em execução nas instâncias do EC2. Para obter maisinformações sobre os vários casos de uso das funções do IAM, consulte Funções do IAM no Guia dousuário do IAM.

O exemplo a seguir mostra uma política do IAM com permissões do AWS KMS. Essa política permite queas identidades do IAM às quais está anexada recuperem uma lista de todas as CMKs e aliases.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:ListKeys", "kms:ListAliases" ], "Resource": "*" }}

Essa política não especifica o elemento Principal, pois nas políticas do IAM você não especifica oprincipal que recebe as permissões. Ao anexar essa política a um usuário do IAM, esse usuário será oprincipal implícito. Ao anexar essa política a uma função do IAM, o usuário de função assumida receberáas permissões.

Para obter uma tabela que mostre todas as ações da API do AWS KMS e os recursos a que elas seaplicam, consulte Referência de permissões da API do AWS KMS (p. 59).

Permissões necessárias para usar o console do AWSKMSPara trabalharem com o console do AWS KMS, os usuários precisam ter um conjunto mínimo depermissões que os permitam trabalhar com os recursos do AWS KMS em sua conta da AWS. Além dessaspermissões do AWS KMS, os usuários precisam ter também permissões para listar usuários e funções doIAM. Se você criar uma política do IAM que seja mais restritiva que as permissões mínimas necessárias, oconsole do AWS KMS não funcionará como pretendido para os usuários com essa política do IAM.

Para as permissões mínimas necessárias para conceder ao usuário acesso somente leitura ao console doAWS KMS, consulte Permitir que o usuário tenha acesso somente leitura a todas as CMKs no console doAWS KMS (p. 57).

Para permitir que os usuários trabalhem com o console do AWS KMS para criar e gerenciar CMKs, anexea política gerenciada AWSKeyManagementServicePowerUser ao usuário, como descrito na seção aseguir.

56

Page 64: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorPolíticas gerenciadas (predefinidas)

da AWS para AWS KMS

Não é necessário conceder o mínimo de permissões do console para os usuários que estão trabalhandocom a API do AWS KMS por meio dos SDKs da AWS ou ferramentas da linha de comando, embora sejapreciso conceder a esses usuários permissão para usar a API. Para obter mais informações, consulteReferência de permissões da API do AWS KMS (p. 59).

Políticas gerenciadas (predefinidas) da AWS paraAWS KMSA AWS resolve muitos casos de uso comuns ao fornecer políticas do IAM autônomas, criadas egerenciadas pela AWS. Elas são chamadas políticas gerenciadas do AWS. As políticas gerenciadas doAWS fornecem as permissões necessárias para casos de uso comuns, por isso, não é preciso investigaras permissões necessárias. Para obter mais informações, consulte Políticas gerenciadas pela AWS noGuia do usuário do IAM.

A AWS fornece uma política gerenciada pela AWS para o AWS KMS chamadaAWSKeyManagementServicePowerUser. Essa política concede as seguintes permissões:

• Permite que os usuários listem todas as CMKs e aliases.• Permite que os usuários recuperem informações sobre cada CMK, inclusive seus identificadores, data

de criação, status da rotação, política de chaves e muito mais.• Permite que os usuários criem CMKs que eles podem administrar ou usar. Quando os usuários criam

uma CMK, eles podem definir permissões na política de chaves (p. 36) da CMK. Isso significa queos usuários podem criar CMKs com quaisquer permissões desejadas, inclusive para eles mesmosadministrarem ou usarem a CMK. A política AWSKeyManagementServicePowerUser não permite que osusuários administrem ou usem quaisquer outras CMKs que não sejam aquelas que eles criam.

Exemplos de política gerenciada pelo clienteNesta seção, você pode encontrar exemplos de políticas do IAM que concedem permissões para váriasações do AWS KMS.

Important

Algumas das permissões das políticas a seguir são concedidas somente quando a política dechaves da CMK também as concede. Para obter mais informações, consulte Referência depermissões da API do AWS KMS (p. 59).

Exemplos• Permitir que o usuário tenha acesso somente leitura a todas as CMKs no console do AWS

KMS (p. 57)• Permitir que o usuário criptografe e descriptografe com qualquer CMK em uma conta específica da

AWS (p. 58)• Permitir que o usuário criptografe e descriptografe com qualquer CMK em uma conta e região

específicas da AWS (p. 58)• Permitir que o usuário criptografe e descriptografe com CMKs específicas (p. 59)• Impedir que o usuário desabilite ou exclua CMKs (p. 59)

Permitir que o usuário tenha acesso somente leitura a todas asCMKs no console do AWS KMSA política a seguir permite que os usuários tenham acesso somente leitura no console do AWS KMS. Ouseja, os usuários podem usar o console para visualizar todas as CMKs, mas não podem fazer alteraçõesnelas nem criar novas.

57

Page 65: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorExemplos de política gerenciada pelo cliente

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:ListKeys", "kms:ListAliases", "kms:DescribeKey", "kms:ListKeyPolicies", "kms:GetKeyPolicy", "kms:GetKeyRotationStatus", "iam:ListUsers", "iam:ListRoles" ], "Resource": "*" }}

Permitir que o usuário criptografe e descriptografe com qualquerCMK em uma conta específica da AWSA política a seguir permite que um usuário solicite com êxito que o AWS KMS criptografe e descriptografedados com qualquer CMK na conta da AWS 111122223333.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:*:111122223333:key/*" ] }}

Permitir que o usuário criptografe e descriptografe com qualquerCMK em uma conta e região específicas da AWSA política a seguir permite que um usuário solicite com êxito que o AWS KMS criptografe e descriptografedados com qualquer CMK na conta da na região Oeste dos EUA (Oregon).

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-west-2:111122223333:key/*" ] }}

58

Page 66: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorReferência de permissões da API do AWS KMS

Permitir que o usuário criptografe e descriptografe com CMKsespecíficasA política a seguir permite que um usuário solicite com êxito que o AWS KMS criptografe e descriptografedados com as duas CMKs especificadas no elemento Resource da política.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": [ "kms:Encrypt", "kms:Decrypt" ], "Resource": [ "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321" ] }}

Impedir que o usuário desabilite ou exclua CMKsA política a seguir impede que um usuário desabilite ou exclua CMKs, mesmo quando uma outra políticado IAM ou uma política de chaves concede essas permissões. Uma política que nega explicitamentepermissões substitui todas as outras políticas, mesmo aquelas que concedem explicitamente as mesmaspermissões. Para obter mais informações, consulte Como determinar se uma solicitação é permitida ounegada no Guia do usuário do IAM.

{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": [ "kms:DisableKey", "kms:ScheduleKeyDeletion" ], "Resource": "*" }}

Permissões da API do AWS KMS: referência deações e recursos

A tabela de ações e recursos foi projetada para ajudá-lo a definir o controle de acesso (p. 33) empolíticas de chaves (p. 36) e políticas do IAM (p. 55). As colunas fornecem as seguintes informações:

• Operações e ações da API (permissões) lista cada operação da API do AWS KMS e a açãocorrespondente (permissão) que permite a operação. Você especifica as ações em um elementoAction de política.

• Tipo de política indica se a permissão pode ser usada em uma política de chaves ou política do IAM.Quando o tipo é política de chaves, você pode especificar a permissão explicitamente na políticade chaves. Ou, se a política de chaves contiver a declaração de política que permite políticas do

59

Page 67: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorReferência de permissões da API do AWS KMS

IAM (p. 38), você pode especificar as permissões em uma política do IAM. Quando o tipo é política doIAM, você pode especificar a permissão somente na política do IAM.

• Recursos e ARNs lista os recursos para os quais você pode permitir a operação. Para especificar umrecurso em uma política do IAM, digite o nome de recurso da Amazon (ARN) no elemento Resource.Como uma política de chaves se aplica somente à CMK à qual está anexada, o valor de seu elementoResource é sempre "*".

• Chaves de condição do AWS KMS lista as chaves de condição do AWS KMS que você pode usar paracontrolar o acesso à operação. Especifique as condições no elemento Condition de uma política. Paraobter mais informações, consulte Chaves de condição do AWS KMS (p. 67). Essa coluna tambéminclui chaves de condição global da AWS que têm suporte do AWS KMS, mas não por todos os serviçosda AWS.

Permissões e operações da API do AWS KMS

Operações da API eações (permissões)

Tipo de política Recursos e ARNs (parapolíticas do IAM)

Chaves de condição doAWS KMS

CancelKeyDeletion

kms:CancelKeyDeletion

Política de chaves CMK

arn:aws:kms:AWS_region:AWS_account_ID:key/CMK_key_ID

kms:CallerAccount

kms:ViaService

ConnectCustomKeyStore

kms:ConnectCustomKeyStore

Política do IAM * kms:CallerAccount

Política do IAM (para oalias)

Alias

arn:aws:kms:AWS_region:AWS_account_ID:alias/alias_name

Nenhum (quandocontrolar o acesso aoalias)

CreateAlias

kms:CreateAlias

Para usar essaoperação, o chamadorprecisa da permissãokms:CreateAlias emdois recursos:

• O alias (em umapolítica do IAM)

• A CMK (em umapolítica de chaves)

Política de chaves (paraa CMK)

CMK

arn:aws:kms:AWS_region:AWS_account_ID:key/CMK_key_ID

kms:CallerAccount

kms:ViaService

CreateCustomKeyStore

kms:CreateCustomKeyStore

Política do IAM * kms:CallerAccount

CreateGrant

kms:CreateGrant

Política de chaves CMK

arn:aws:kms:AWS_region:AWS_account_ID:key/CMK_key_ID

kms:CallerAccount

kms:EncryptionContext:

kms:EncryptionContextKeys

kms:GrantConstraintType

kms:GranteePrincipal

kms:GrantIsForAWSResource

kms:GrantOperations

60

Page 68: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorReferência de permissões da API do AWS KMS

Operações da API eações (permissões)

Tipo de política Recursos e ARNs (parapolíticas do IAM)

Chaves de condição doAWS KMSkms:RetiringPrincipal

kms:ViaService

CreateKey

kms:CreateKey

Política do IAM * kms:BypassPolicyLockoutSafetyCheck

kms:KeyOrigin

Decrypt

kms:Decrypt

Política de chaves CMK

arn:aws:kms:AWS_region:AWS_account_ID:key/CMK_key_ID

kms:CallerAccount

kms:EncryptionContext:

kms:EncryptionContextKeys

kms:ViaService

Política do IAM (para oalias)

Alias

arn:aws:kms:AWS_region:AWS_account_ID:alias/alias_name

Nenhum (quandocontrolar o acesso aoalias)

DeleteAlias

kms:DeleteAlias

Para usar essaoperação, o chamadorprecisa da permissãokms:DeleteAlias emdois recursos:

• O alias (em umapolítica do IAM)

• A CMK (em umapolítica de chaves)

Política de chaves (paraa CMK)

CMK

arn:aws:kms:AWS_region:AWS_account_ID:key/CMK_key_ID

kms:CallerAccount

kms:ViaService

DeleteCustomKeyStore

kms:DeleteCustomKeyStore

Política do IAM * kms:CallerAccount

DeleteImportedKeyMaterial

kms:DeleteImportedKeyMaterial

Política de chaves CMK

arn:aws:kms:AWS_region:AWS_account_ID:key/CMK_key_ID

kms:CallerAccount

kms:ViaService

DescribeCustomKeyStores

kms:DescribeCustomKeyStores

Política do IAM * kms:CallerAccount

DescribeKey

kms:DescribeKey

Política de chaves CMK

arn:aws:kms:AWS_region:AWS_account_ID:key/CMK_key_ID

kms:CallerAccount

kms:ViaService

DisableKey

kms:DisableKey

Política de chaves CMK

arn:aws:kms:AWS_region:AWS_account_ID:key/CMK_key_ID

kms:CallerAccount

kms:ViaService

DisableKeyRotation

kms:DisableKeyRotation

Política de chaves CMK

arn:aws:kms:AWS_region:AWS_account_ID:key/CMK_key_ID

kms:CallerAccount

kms:ViaService

61

Page 69: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorReferência de permissões da API do AWS KMS

Operações da API eações (permissões)

Tipo de política Recursos e ARNs (parapolíticas do IAM)

Chaves de condição doAWS KMS

DisconnectCustomKeyStore

kms:DisconnectCustomKeyStore

Política do IAM * kms:CallerAccount

EnableKey

kms:EnableKey

Política de chaves CMK

arn:aws:kms:AWS_region:AWS_account_ID:key/CMK_key_ID

kms:CallerAccount

kms:ViaService

EnableKeyRotation

kms:EnableKeyRotation

Política de chaves CMK

arn:aws:kms:AWS_region:AWS_account_ID:key/CMK_key_ID

kms:CallerAccount

kms:ViaService

Encrypt

kms:Encrypt

Política de chaves CMK

arn:aws:kms:AWS_region:AWS_account_ID:key/CMK_key_ID

kms:CallerAccount

kms:EncryptionContext:

kms:EncryptionContextKeys

kms:ViaService

GenerateDataKey

kms:GenerateDataKey

Política de chaves CMK

arn:aws:kms:AWS_region:AWS_account_ID:key/CMK_key_ID

kms:CallerAccount

kms:EncryptionContext:

kms:EncryptionContextKeys

kms:ViaService

GenerateDataKeyWithoutPlaintext

kms:GenerateDataKeyWithoutPlaintext

Política de chaves CMK

arn:aws:kms:AWS_region:AWS_account_ID:key/CMK_key_ID

kms:CallerAccount

kms:EncryptionContext:

kms:EncryptionContextKeys

kms:ViaService

GenerateRandom

kms:GenerateRandom

Política do IAM * Nenhum

GetKeyPolicy

kms:GetKeyPolicy

Política de chaves CMK

arn:aws:kms:AWS_region:AWS_account_ID:key/CMK_key_ID

kms:CallerAccount

kms:ViaService

GetKeyRotationStatus

kms:GetKeyRotationStatus

Política de chaves CMK

arn:aws:kms:AWS_region:AWS_account_ID:key/CMK_key_ID

kms:CallerAccount

kms:ViaService

62

Page 70: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorReferência de permissões da API do AWS KMS

Operações da API eações (permissões)

Tipo de política Recursos e ARNs (parapolíticas do IAM)

Chaves de condição doAWS KMS

GetParametersForImport

kms:GetParametersForImport

Política de chaves CMK

arn:aws:kms:AWS_region:AWS_account_ID:key/CMK_key_ID

kms:CallerAccount

kms:ViaService

kms:WrappingAlgorithm

kms:WrappingKeySpec

ImportKeyMaterial

kms:ImportKeyMaterial

Política de chaves CMK

arn:aws:kms:AWS_region:AWS_account_ID:key/CMK_key_ID

kms:CallerAccount

kms:ExpirationModel

kms:ValidTo

kms:ViaService

ListAliases

kms:ListAliases

Política do IAM * Nenhum

ListGrants

kms:ListGrants

Política de chaves CMK

arn:aws:kms:AWS_region:AWS_account_ID:key/CMK_key_ID

kms:CallerAccount

kms:ViaService

ListKeyPolicies

kms:ListKeyPolicies

Política de chaves CMK

arn:aws:kms:AWS_region:AWS_account_ID:key/CMK_key_ID

kms:CallerAccount

kms:ViaService

ListKeys

kms:ListKeys

Política do IAM * Nenhum

ListResourceTags

kms:ListResourceTags

Política de chaves CMK

arn:aws:kms:AWS_region:AWS_account_ID:key/CMK_key_ID

kms:CallerAccount

kms:ViaService

ListRetirableGrants

kms:ListRetirableGrants

Política do IAM * Nenhum

PutKeyPolicy

kms:PutKeyPolicy

Política de chaves CMK

arn:aws:kms:AWS_region:AWS_account_ID:key/CMK_key_ID

kms:BypassPolicyLockoutSafetyCheck

kms:CallerAccount

kms:ViaService

63

Page 71: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorReferência de permissões da API do AWS KMS

Operações da API eações (permissões)

Tipo de política Recursos e ARNs (parapolíticas do IAM)

Chaves de condição doAWS KMS

ReEncrypt

kms:ReEncryptFrom

kms:ReEncryptTo

Para usar essaoperação, o chamadorprecisa da permissãoem duas CMKs:

• kms:ReEncryptFromna CMK usada paradescriptografar

• kms:ReEncryptTona CMK usada paracriptografar

Política de chaves CMK

arn:aws:kms:AWS_region:AWS_account_ID:key/CMK_key_ID

kms:CallerAccount

kms:EncryptionContext:

kms:EncryptionContextKeys

kms:ReEncryptOnSameKey

kms:ViaService

RetireGrant

A permissão pararetirar uma concessãoé especificada naconcessão. Não épossível controlar oacesso a essa operaçãoem uma política. Paraobter mais informações,consulte RetireGrant noAWS Key ManagementService API Reference.

Não aplicável Não aplicável Não aplicável

RevokeGrant

kms:RevokeGrant

Política de chaves CMK

arn:aws:kms:AWS_region:AWS_account_ID:key/CMK_key_ID

kms:CallerAccount

kms:ViaService

ScheduleKeyDeletion

kms:ScheduleKeyDeletion

Política de chaves CMK

arn:aws:kms:AWS_region:AWS_account_ID:key/CMK_key_ID

kms:CallerAccount

kms:ViaService

TagResource

kms:TagResource

Política de chaves CMK

arn:aws:kms:AWS_region:AWS_account_ID:key/CMK_key_ID

kms:CallerAccount

kms:ViaService

aws:RequestTag(Chave de condiçãoglobal da AWS)

aws:TagKeys (Chavede condição global daAWS)

64

Page 72: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo usar condições de política

Operações da API eações (permissões)

Tipo de política Recursos e ARNs (parapolíticas do IAM)

Chaves de condição doAWS KMS

UntagResource

kms:UntagResource

Política de chaves CMK

arn:aws:kms:AWS_region:AWS_account_ID:key/CMK_key_ID

kms:CallerAccount

kms:ViaService

aws:RequestTag(Chave de condiçãoglobal da AWS)

aws:TagKeys (Chavede condição global daAWS)

Política do IAM (para oalias)

Alias

arn:aws:kms:AWS_region:AWS_account_ID:alias/alias_name

Nenhum (quandocontrolar o acesso aoalias)

UpdateAlias

kms:UpdateAlias

Para usar essaoperação, o chamadorprecisa da permissãokms:UpdateAlias emtrês recursos:

• O alias• A CMK para a qual

o alias aponta nomomento

• A CMK especificadana solicitaçãoUpdateAlias

Política de chaves (paraas CMKs)

CMK

arn:aws:kms:AWS_region:AWS_account_ID:key/CMK_key_ID

kms:CallerAccount

kms:ViaService

UpdateCustomKeyStore

kms:UpdateCustomKeyStore

Política do IAM * kms:CallerAccount

UpdateKeyDescription

kms:UpdateKeyDescription

Política de chaves CMK

arn:aws:kms:AWS_region:AWS_account_ID:key/CMK_key_ID

kms:CallerAccount

kms:ViaService

Como usar condições de política com o AWS KMSVocê pode especificar as condições nas principais políticas (p. 36) e nas políticas do IAM (p. 55)que controlam o acesso aos recursos do AWS KMS. A declaração de política é efetiva apenas quando ascondições forem verdadeiras. Por exemplo, talvez você deseje que uma declaração de política só tenhaefeito após uma data específica. Ou, você pode querer que uma declaração de política controle o acessoapenas quando um valor específico existe em uma solicitação de API.

Para especificar as condições, use chaves de condição predefinidas no elemento Condition de umainstrução de política com operadores de política de condição do IAM. Algumas chaves de condiçãogeralmente se aplicam à AWS, outras são específicas do AWS KMS.

Tópicos• Chaves de condição globais da AWS (p. 66)

65

Page 73: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorChaves de condição globais da AWS

• Chaves de condição do AWS KMS (p. 67)

Chaves de condição globais da AWSA AWS fornece chaves de condição globais, um conjunto predefinido de chaves de condição para todosos serviços da AWS que usam o IAM para controle de acesso. Por exemplo, você pode usar a chavede condição aws:PrincipalType para permitir o acesso somente quando a entidade principal nasolicitação for o tipo especificado.

O AWS KMS oferece suporte a todas as chaves de condição globais, inclusive as chaves de condiçãoaws:TagKeys e aws:RequestTag que controlam o acesso com base na tag de recurso na solicitação.Essa chave de condição tem o suporte de apenas alguns serviços da AWS.

Tópicos• Como usar a condição de endereço IP em políticas com permissões do AWS KMS (p. 66)• Utilização das condições do VPC endpoint em políticas com permissões do AWS KMS (p. 66)

Como usar a condição de endereço IP em políticas compermissões do AWS KMSVocê pode usar AWS KMS para proteger seus dados em um serviço integrado da AWS (p. 179). Noentanto, tome cuidado ao especificar os operadores de condição do endereço IP ou aaws:SourceIpchave de condição na mesma instrução de política que permite ou nega o acesso ao AWS KMS. Porexemplo, a política em AWS: nega acesso à AWS com base no IP de origem restringe as ações da AWSpara solicitações do intervalo IP especificado.

Considere este cenário:

1. Anexe uma política como a mostrada em AWS: nega acesso à AWS com base no IP de origem para umusuário do IAM. Defina o valor da aws:SourceIp chave de condição para o intervalo de endereços IPpara a empresa do usuário. Este usuário do IAM possui outras políticas anexadas que permitem que eleuse o Amazon EBS, Amazon EC2 e AWS KMS.

2. O usuário tenta anexar um volume do EBS criptografado a uma instância do EC2. Esta ação falha comum erro de autorização, embora o usuário tenha permissão para usar todos os serviços relevantes.

A etapa 2 falha porque a solicitação ao AWS KMS para descriptografar a chave de dados criptografadado volume vem de um endereço IP que está associado com a infraestrutura do Amazon EC2. Para quea solicitação seja bem-sucedida, ela deve ter o endereço IP do usuário de origem. Como a política naetapa 1 nega explicitamente todas as solicitações de endereços IP que não sejam aqueles especificados,o Amazon EC2 não recebe permissão para descriptografar a chave de dados criptografada do volume doEBS.

Além disso, a chave de condição aws:sourceIP não será efetiva se a solicitação vier de um endpointda Amazon VPC. Para restringir solicitações a um VPC endpoint, incluindo um VPC endpoint do AWSKMS (p. 256), use as chaves de condições aws:sourceVpce ou aws:sourceVpc. Para obter maisinformações, consulte VPC endpoints – controle do uso de endpoints no Guia do usuário do Amazon VPC.

Utilização das condições do VPC endpoint em políticas compermissões do AWS KMSO AWS KMS oferece suporte a Amazon Virtual Private Cloud (Amazon VPC) endpoints (p. 256) quesão desenvolvidos pelo PrivateLink da AWS. Você pode usar as chaves de condição globais a seguir empolíticas do IAM para conceder ou negar acesso a uma determinada VPC ou VPC endpoint. Você também

66

Page 74: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorChaves de condição do AWS KMS

pode usar essas chaves de condição global em políticas de chaves do AWS KMS (p. 260) para restringiro acesso de solicitações da VPC ou VPC endpoint às CMKs do AWS KMS.

• aws:SourceVpc limita o acesso a solicitações da VPC especificado.• aws:SourceVpce limita o acesso a solicitações do VPC endpoint especificado.

Se você usar essas chaves de condições em uma declaração de política de chaves que permite ou negao acesso a CMKs do AWS KMS, você pode negar acesso inadvertidamente a serviços que usam o AWSKMS em seu nome.

Tome cuidado para evitar uma situação como o exemplo de chaves de condições de endereçoIP (p. 66). Se você restringir as solicitações de um VPC ou VPC endpoint por uma CMK, as chamadaspara o AWS KMS de um serviço integrado, como, por exemplo, Amazon S3 ou Amazon EBS podem falhar.Isso pode acontecer mesmo se a solicitação de origem for originada, em última análise, na VPC ou noVPC endpoint.

Chaves de condição do AWS KMSO AWS KMS fornece um conjunto adicional de chaves de condição predefinidas que você pode usar empolíticas de chaves e políticas do IAM. Essas chaves de condição são específicas do AWS KMS. Porexemplo, você pode usar a chave de condição kms:EncryptionContext para exigir um contexto decriptografia (p. 305) específico ao controlar o acesso a uma chave mestra de cliente (CMK) do KMS.

Os tópicos a seguir descrevem cada chave de condição do AWS KMS e incluem declarações de política deexemplo que demonstram a sintaxe da política.

Tópicos• kms:BypassPolicyLockoutSafetyCheck (p. 67)• kms:CallerAccount (p. 69)• kms:EncryptionContext: (p. 70)• kms:EncryptionContextKeys (p. 72)• kms:ExpirationModel (p. 74)• kms:GrantConstraintType (p. 75)• kms:GrantIsForAWSResource (p. 76)• kms:GrantOperations (p. 77)• kms:GranteePrincipal (p. 78)• kms:KeyOrigin (p. 78)• kms:ReEncryptOnSameKey (p. 79)• kms:RetiringPrincipal (p. 80)• kms:ValidTo (p. 80)• kms:ViaService (p. 81)• kms:WrappingAlgorithm (p. 83)• kms:WrappingKeySpec (p. 84)

kms:BypassPolicyLockoutSafetyCheck

Chaves de condição doAWS KMS

Tipo de condição Operações de API Tipo de política

kms:BypassPolicyLockoutSafetyCheckBooleano CreateKey CreateKey: somentepolíticas do IAM

67

Page 75: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorChaves de condição do AWS KMS

Chaves de condição doAWS KMS

Tipo de condição Operações de API Tipo de política

PutKeyPolicy PutKeyPolicy: políticasdo IAM e de chave

A kms:BypassPolicyLockoutSafetyCheckchave de condição controla o acesso às operaçõesCreateKey e PutKeyPolicy com base no valor do parâmetro BypassPolicyLockoutSafetyCheck nasolicitação.

A declaração de política do IAM de exemplo a seguir impede que os usuários ignorem a verificaçãode segurança de bloqueio da política ao negar a eles a permissão para criar CMKs quando o valor doparâmetro BypassPolicyLockoutSafetyCheck na solicitação CreateKey é true.

{ "Version": "2012-10-17", "Statement": { "Effect": "Deny", "Action": "kms:CreateKey", "Resource": "*", "Condition": { "Bool": { "kms:BypassPolicyLockoutSafetyCheck": true } } }}

Você também pode usar a chave de condição kms:BypassPolicyLockoutSafetyCheck em umapolítica do IAM ou política de chaves para controlar o acesso à operação PutKeyPolicy. A declaração depolítica de exemplo a seguir de uma política de chaves impede que os usuários ignorem a verificação desegurança de bloqueio da política ao alterar a política de uma CMK.

Em vez de usar Deny de forma explícita, essa declaração de política usa Allow com o Nullcondition operator para permitir acesso somente quando a solicitação não incluir o parâmetroBypassPolicyLockoutSafetyCheck. Quando o parâmetro não for usado, o valor padrão será false.Esta declaração de política um pouco mais fraca pode ser substituída no caso raro em que uma derivaçãoé necessária.

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "kms:PutKeyPolicy", "Resource": "*", "Condition": { "Null": { "kms:BypassPolicyLockoutSafetyCheck": true } } }}

Consulte também

• kms:KeyOrigin (p. 78)

68

Page 76: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorChaves de condição do AWS KMS

kms:CallerAccount

Chaves de condição doAWS KMS

Tipo de condição Operações de API Tipo de política

kms:CallerAccount String A chave de condiçãokms:CallerAccountexiste para todasas operaçõesdo AWS KMS,exceto: CreateKey,GenerateRandom,ListAliases,ListKeys,ListRetirableGrants,RetireGrant.

Somente políticas dechave

Você pode usar essa chave de condição para permitir ou negar o acesso a todas as identidades(usuários e funções do IAM) em uma conta da AWS. Em políticas de chaves, você pode usar o elementoPrincipal para especificar as identidades às quais a declaração de política se aplica. A sintaxe doelemento Principal não fornece uma forma de especificar todas as identidades em uma conta do AWS.Mas você pode obter esse efeito ao combinar essa chave de condição com um elemento Principal queespecifica todas as identidades do AWS.

Por exemplo, a declaração de política a seguir demonstra como usar a chave de condiçãokms:CallerAccount. Esta declaração de política está na política de chaves da CMK gerenciada pelaAWS para Amazon EBS. Ela combina um elemento Principal que especifica todas as identidades daAWS com a chave de condição kms:CallerAccount para permitir efetivamente o acesso a todas asidentidades na conta da AWS 111122223333. Ela contém uma chave de condição do AWS KMS adicional(kms:ViaService) para limitar ainda mais as permissões, ao autorizar somente as solicitações quechegam por meio do Amazon EBS. Para obter mais informações, consulte kms:ViaService (p. 81).

{ "Sid": "Allow access through EBS for all principals in the account that are authorized to use EBS", "Effect": "Allow", "Principal": {"AWS": "*"}, "Condition": { "StringEquals": { "kms:CallerAccount": "111122223333", "kms:ViaService": "ec2.us-west-2.amazonaws.com" } }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey" ], "Resource": "*"}

69

Page 77: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorChaves de condição do AWS KMS

kms:EncryptionContext:

Chaves de condição doAWS KMS

Tipo de condição Operações de API Tipo de política

kms:EncryptionContext:String CreateGrant

Encrypt

Decrypt

GenerateDataKey

GenerateDataKeyWithoutPlaintext

ReEncrypt

Políticas do IAM e dechave

Você pode usar o prefixo de chave de condição kms:EncryptionContext: para controlar oacesso a uma CMK com base no contexto de criptografia em uma solicitação de uma operação decriptografia. Use este prefixo de chave de condição para avaliar a chave e o valor no par de contextode criptografia. Para avaliar apenas as chaves de contexto de criptografia, use a chave de condiçãokms:EncryptionContextKeys (p. 72).

Um contexto de criptografia (p. 305) é um conjunto de pares de chave–valor não secreto que vocêpode incluir em uma solicitação para qualquer operação de criptografia da AWS KMS (Encrypt, Decrypt,GenerateDataKey, GenerateDataKeyWithoutPlaintext, e ReEncrypt) e a operação CreateGrant. Quandovocê especifica um contexto de criptografia em uma operação de criptografia, deve especificar o mesmocontexto de criptografia na operação de descriptografia correspondente. Do contrário, a solicitação paradescriptografar falhará.

Para usar o prefixo de chave de condição kms:EncryptionContext:, substitua o espaço reservadoencryption_context_key com a chave de contexto de criptografia. Substitua o espaço reservadoencryption_context_value pelo valor de contexto de criptografia.

"kms:EncryptionContext:encryption_context_key": "encryption_context_value"

Por exemplo, a chave de condição a seguir especifica um contexto de criptografia, no qual a chave éAppName e o valor é ExampleApp.

"kms:EncryptionContext:AppName": "ExampleApp"

O exemplo a seguir de declaração de política de chaves usa essa chave de condição. Essa políticapermite que o principal use o CMK em uma solicitação GenerateDataKey apenas quando o contexto decriptografia na solicitação é "AppName": "ExampleApp".

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:AppName": "ExampleApp" } }}

70

Page 78: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorChaves de condição do AWS KMS

Para exigir mais de um par de contexto de criptografia, você pode incluir várias instâncias da condiçãokms:EncryptionContext:. Por exemplo, a declaração de política de exemplo a seguir requer estesdois pares de contexto de criptografia. A ordem em que os pares são especificados não importa.

• "AppName": "ExampleApp"

• "FilePath": "/var/opt/secrets/"

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:AppName": "ExampleApp", "kms:EncryptionContext:FilePath": "/var/opt/secrets/" } }}

O contexto de criptografia especificado em uma operação de criptografia deve ser uma correspondênciaexata, que diferencia maiúsculas de minúsculas para o contexto de criptografia especificado na operaçãode criptografia. Somente a ordem dos pares em um contexto de criptografia com vários pares pode variar.

No entanto, em condições de política, a chave de condição não diferencia maiúsculas de minúsculas. Adiferenciação de maiúsculas e minúsculas do valor da condição é determinada pelo operador de condiçãode política que você usa, como StringEquals ou StringEqualsIgnoreCase.

Dessa forma, a chave de condição, que consiste do prefixo kms:EncryptionContext: e da substituiçãoencryption_context_key, não diferencia maiúsculas de minúsculas. Uma política que usa essacondição não verifica a capitalização dos elementos da chave de condição. A diferenciação de maiúsculase minúsculas do valor, ou seja, a substituição encryption_context_value, é determinada pelooperador de condição de política.

Por exemplo, a declaração de política a seguir permite a operação quando o contexto de criptografia incluiuma chave Appname, independentemente da sua capitalização. A condição StringEquals exige queExampleApp seja capitalizado da maneira como foi especificado.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:Decrypt", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContext:Appname": "ExampleApp" } }}

Para exigir uma chave de contexto de criptografia com distinção entre letras maiúsculas e minúsculas, usea política de condição kms: EncryptionContextKeys (p. 72) com um operador de condição que diferenciamaiúsculas de minúsculas, como StringEquals. Nesta condição de política, como a chave de contextode criptografia é o valor da condição de política, o recurso é determinado pelo operador da condição.

71

Page 79: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorChaves de condição do AWS KMS

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContextKey": "AppName" } }}

Para solicitar uma avaliação com distinção entre letras maiúsculas e minúsculas da chave e dovalor do contexto de criptografia, use as condições de política kms:EncryptionContextKey ekms:EncryptionContext: juntas na mesma declaração de política. Por exemplo, na declaração depolítica de exemplo a seguir, como o operador StringEquals diferencia maiúsculas de minúsculas,a chave de contexto de criptografia e o valor de contexto de criptografia diferenciam maiúsculas deminúsculas.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": "kms:GenerateDataKey", "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContextKey": "AppName", "kms:EncryptionContext:AppName": "ExampleApp" } }}

Consulte também

• the section called “kms:EncryptionContextKeys” (p. 72)• the section called “kms:GrantConstraintType” (p. 75)

kms:EncryptionContextKeys

Chaves de condição doAWS KMS

Tipo de condição Operações de API Tipo de política

kms:EncryptionContextKeysString (lista) CreateGrant

Encrypt

Decrypt

GenerateDataKey

GenerateDataKeyWithoutPlaintext

ReEncrypt

Políticas do IAM e dechave

72

Page 80: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorChaves de condição do AWS KMS

Você pode usar a chave de condição kms:EncryptionContextKeys para controlar o acesso a umaCMK com base no contexto de criptografia em uma solicitação de uma operação de criptografia. Use esteprefixo de chave de condição para avaliar apenas a chave em cada par de contexto de criptografia. Paraavaliar a chave e o valor, use o prefixo de chave de condição kms:EncryptionContext: (p. 70).

Você pode usar esta chave de condição para controlar o acesso com base no contexto decriptografia (p. 305) na solicitação da API do AWS KMS. O contexto de criptografia é um conjunto depares de chave–valor que você pode incluir nas operações de criptografia do AWS KMS (Encrypt, Decrypt,GenerateDataKey, GenerateDataKeyWithoutPlaintext e ReEncrypt) e a operação CreateGrant.

A declaração de política de exemplo a seguir usa a chave de condição kms:EncryptionContextKeyspara permitir o uso de uma CMK para as operações especificadas somente quando o contexto decriptografia na solicitação incluir a chave AppName qualquer que seja o seu valor.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": [ "kms:Encrypt", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContextKeys": "AppName" } }}

Como a operação da condição StringEquals diferencia maiúsculas de minúsculas, a declaração de políticaanterior requer a ortografia e capitalização da chave de contexto de criptografia. No entanto, você podeusar um operador de condição que ignora a capitalização da chave, como StringEqualsIgnoreCase.

Você pode especificar várias chaves de contexto de criptografia em cada condição. Por exemplo, adeclaração de política a seguir permite as operações especificadas apenas quando o contexto decriptografia na solicitação inclui as chaves AppName e FilePath, independentemente dos seus valores. Aordem das chaves no contexto de criptografia não importa.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": [ "kms:Encrypt", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "StringEquals": { "kms:EncryptionContextKeys": [ "AppName", "FilePath" ] } }}

Você também pode usar a chave de condição kms:EncryptionContextKeys para exigir um contextode criptografia em operações de criptografia que usam a CMK.

73

Page 81: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorChaves de condição do AWS KMS

A declaração de política de chave do exemplo a seguir usa a chave de condiçãokms:EncryptionContextKeys com o Null condition operator para permitir acesso à CMK somentequando a chave de condição kms:EncryptionContextKeys existir (não for nula) na solicitação da API.Ela não verifica as chaves ou os valores do contexto de criptografia, somente se o contexto de criptografiaexiste.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:role/RoleForExampleApp" }, "Action": [ "kms:Encrypt", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "Null": { "kms:EncryptionContextKeys": false } }}

Consulte também

• kms:EncryptionContext: (p. 70)• kms:GrantConstraintType (p. 75)

kms:ExpirationModel

Chaves de condição doAWS KMS

Tipo de condição Operações de API Tipo de política

kms:ExpirationModel String ImportKeyMaterial Políticas do IAM e dechave

A kms:ExpirationModelchave de condição controla o acesso à operação ImportKeyMaterial com baseno valor do parâmetro ExpirationModel na solicitação.

ExpirationModel é um parâmetro opcional que determina se o material de chave importadaexpira. Os valores válidos são KEY_MATERIAL_EXPIRES e KEY_MATERIAL_DOES_NOT_EXPIRE.KEY_MATERIAL_EXPIRES é o valor padrão.

A data e a hora de expiração são determinadas pelo valor do parâmetro ValidTo. Oparâmetro ValidTo só não será necessário se o valor do parâmetro ExpirationModelfor KEY_MATERIAL_DOES_NOT_EXPIRE. Você também pode usar a chave de condiçãokms:ValidTo (p. 80) para exigir uma determinada data de expiração como uma condição para acessar.

A declaração de política de exemplo a seguir usa a chave de condição kms:ExpirationModel parapermitir que um usuário importe o material de chave para uma CMK apenas quando a solicitação incluir oparâmetro ExpirationModel e seu valor for KEY_MATERIAL_DOES_NOT_EXPIRE.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser"

74

Page 82: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorChaves de condição do AWS KMS

}, "Action": "kms:ImportKeyMaterial", "Resource": "*", "Condition": { "StringEquals": { "kms:ExpirationModel": "KEY_MATERIAL_DOES_NOT_EXPIRE" } }}

Você também pode usar a chave de condição kms:ExpirationModel para permitir que um usuárioimporte o material de chave somente quando o material de chave expirar, sem especificar uma data deexpiração (p. 80) na condição. A declaração de política do exemplo a seguir usa a chave de condiçãokms:ExpirationModel com o Null condition operator para permitir que um usuário importe o material dechave somente quando a solicitação não tiver um parâmetro ExpirationModel.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": "kms:ImportKeyMaterial", "Resource": "*", "Condition": { "Null": { "kms:ExpirationModel": true } }}

Consulte também

• kms:ValidTo (p. 80)• kms:WrappingAlgorithm (p. 83)• kms:WrappingKeySpec (p. 84)

kms:GrantConstraintType

Chaves de condição doAWS KMS

Tipo de condição Operações de API Tipo de política

kms:GrantConstraintTypeString CreateGrant Políticas do IAM e dechave

Você pode usar a chave de condição para controlar o acesso à operação CreateGrant com base no tipo derestrição de concessão na solicitação.

Ao criar uma concessão, você pode opcionalmente especificar uma restrição de concessão parapermitir as operações permitidas pela concessão apenas quando um contexto de criptografiaespecífico existir. A restrição de concessão pode ser de dois tipos: EncryptionContextEquals ouEncryptionContextSubset. Você pode usar esta chave de condição para verificar se a solicitaçãocontém um tipo ou outro.

A declaração de política de exemplo a seguir usa a chave de condição kms:GrantConstraintType parapermitir que um usuário crie concessões apenas quando a solicitação inclui uma restrição de concessãoEncryptionContextEquals. O exemplo mostra uma declaração de política em uma política de chaves.

75

Page 83: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorChaves de condição do AWS KMS

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:GrantConstraintType": "EncryptionContextEquals" } }}

Consulte também

• kms:EncryptionContext: (p. 70)• kms:EncryptionContextKeys (p. 72)• kms:GrantIsForAWSResource (p. 76)• kms:GrantOperations (p. 77)• kms:GranteePrincipal (p. 78)• kms:RetiringPrincipal (p. 80)

kms:GrantIsForAWSResource

Chaves de condição doAWS KMS

Tipo de condição Operações de API Tipo de política

kms:GrantIsForAWSResourceBooleano CreateGrant Políticas do IAM e dechave

Você pode usar esta chave de condição para controlar o acesso à operação CreateGrant com base emse a concessão é criada no contexto de um serviço integrado da AWS com o AWS KMS (p. 179). Estachave de condição é definida como true quando um dos seguintes serviços integrados é usado para criara concessão:

• Amazon Elastic Block Store (Amazon EBS) – Para obter mais informações, consulte Como o AmazonElastic Block Store (Amazon EBS) usa o AWS KMS (p. 192).

• Amazon Relational Database Service (Amazon RDS) – Para obter mais informações, consulte Como oAmazon Relational Database Service (Amazon RDS) usa o AWS KMS (p. 204).

• Amazon Redshift – Para obter mais informações, consulte Como o Amazon Redshift usa o AWSKMS (p. 203).

• AWS Certificate Manager (ACM) – Para obter mais informações, consulte Segurança da chave privadado ACM no Guia do usuário do AWS Certificate Manager.

Por exemplo, a declaração de política a seguir usa a chave de condição kms:GrantIsForAWSResourcepara permitir que um usuário crie concessões apenas por meio de um dos serviços integrados nalista precedente. Ela não permite que o usuário crie concessões diretamente. O exemplo mostra umadeclaração de política em uma política de chaves.

{ "Effect": "Allow", "Principal": {

76

Page 84: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorChaves de condição do AWS KMS

"AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "Bool": { "kms:GrantIsForAWSResource": true } }}

Consulte também

• kms:GrantConstraintType (p. 75)• kms:GrantOperations (p. 77)• kms:GranteePrincipal (p. 78)• kms:RetiringPrincipal (p. 80)

kms:GrantOperations

Chaves de condição doAWS KMS

Tipo de condição Operações de API Tipo de política

kms:GrantOperations String CreateGrant Políticas do IAM e dechave

Você pode usar a chave de condição para controlar o acesso à operação CreateGrant com base nasoperações de concessão na solicitação. Por exemplo, você pode permitir que um usuário crie concessõesque deleguem permissão para criptografar, mas não descriptografar.

A declaração de política de exemplo a seguir usa a chave de condição kms:GrantOperations parapermitir que um usuário crie concessões que deleguem permissão para criptografar e recriptografarquando essa CMK for a CMK de destino. O exemplo mostra uma declaração de política em uma política dechaves.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "ForAllValues:StringEquals": { "kms:GrantOperations": [ "Encrypt", "ReEncryptTo" ] } }}

Consulte também

• kms:GrantConstraintType (p. 75)• kms:GrantIsForAWSResource (p. 76)

77

Page 85: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorChaves de condição do AWS KMS

• kms:GranteePrincipal (p. 78)• kms:RetiringPrincipal (p. 80)

kms:GranteePrincipal

Chaves de condição doAWS KMS

Tipo de condição Operações de API Tipo de política

kms:GranteePrincipalString CreateGrant Políticas do IAM e dechave

Você pode usar esta chave de condição para controlar o acesso à operação CreateGrant com base novalor do parâmetro GranteePrincipal na solicitação. Por exemplo, você pode permitir que um usuário crieconcessões para usar uma CMK apenas quando o principal favorecido na solicitação CreateGrantcorresponder à entidade principal especificada na declaração de condição.

A declaração de política de exemplo a seguir usa a chave de condição kms:GranteePrincipalpara permitir que um usuário crie concessões para uma CMK apenas quando o principal favorecido naconcessão for LimitedAdminRole.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "StringEquals": { "kms:GranteePrincipal": "arn:aws:iam::111122223333:role/LimitedAdminRole" } }}

Consulte também

• kms:GrantConstraintType (p. 75)• kms:GrantIsForAWSResource (p. 76)• kms:GrantOperations (p. 77)• kms:RetiringPrincipal (p. 80)

kms:KeyOrigin

Chaves de condição doAWS KMS

Tipo de condição Operações de API Tipo de política

kms:KeyOrigin String CreateKey Políticas do IAM

Você pode usar esta chave de condição para controlar o acesso à operação CreateKey com base no valordo parâmetro Origin na solicitação. Os valores válidos para Origin são AWS_KMS, AWS_CLOUDHSM eEXTERNAL.

78

Page 86: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorChaves de condição do AWS KMS

Por exemplo, você pode permitir que um usuário crie uma CMK apenas quando o material de chavesé gerado no KMS (AWS_KMS), apenas quando o material de chaves é gerado em um cluster do AWSCloudHSM associado a um armazenamento de chaves personalizado (p. 133) (AWS_CLOUDHSM), ouapenas quando o material de chaves é importado (p. 101) de uma fonte externa (EXTERNAL).

A declaração de política de exemplo a seguir usa a chave de condição kms:KeyOrigin para permitir queum usuário crie uma CMK apenas quando a origem da chave for EXTERNAL, isto é, o material de chavefor importado.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": "kms:CreateKey", "Resource": "*", "Condition": { "StringEquals": { "kms:KeyOrigin": "EXTERNAL" } }}

Consulte também

• kms:BypassPolicyLockoutSafetyCheck (p. 67)

kms:ReEncryptOnSameKey

Chaves de condição doAWS KMS

Tipo de condição Operações de API Tipo de política

kms:ReEncryptOnSameKeyBooleano ReEncrypt Políticas do IAM e dechave

Você pode usar a chave de condição para controlar o acesso à operação ReEncrypt com base emse a solicitação especifica uma CMK de destino que é a mesma utilizada para a criptografia original.Por exemplo, a declaração de política a seguir usa a chave de condição kms:ReEncryptOnSameKeypara permitir que um usuário recriptografe apenas quando a CMK de destino é a mesma usada para acriptografia original. O exemplo mostra uma declaração de política em uma política de chaves.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": "kms:ReEncrypt*", "Resource": "*", "Condition": { "Bool": { "kms:ReEncryptOnSameKey": true } }}

79

Page 87: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorChaves de condição do AWS KMS

kms:RetiringPrincipal

Chaves de condição doAWS KMS

Tipo de condição Operações de API Tipo de política

kms:RetiringPrincipalString (lista) CreateGrant Políticas do IAM e dechave

Você pode usar esta chave de condição para controlar o acesso à operação CreateGrant com base novalor do parâmetro RetiringPrincipal na solicitação. Por exemplo, você pode permitir que um usuário crieconcessões para usar uma CMK apenas quando RetiringPrincipal na solicitação CreateGrantcorresponder a RetiringPrincipal na declaração de condição.

A seguinte declaração de política de exemplo permite a um usuário criar permissões para a CMK. A chavede condição kms:RetiringPrincipal restringe a permissão a solicitações CreateGrant em que oprincipal a ser desativado na concessão é o usuário LimitedAdminRole ou o OpsAdmin.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": "kms:CreateGrant", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "kms:RetiringPrincipal": [ "arn:aws:iam::111122223333:role/LimitedAdminRole", "arn:aws:iam::111122223333:user/OpsAdmin" ] } }}

Consulte também

• kms:GrantConstraintType (p. 75)• kms:GrantIsForAWSResource (p. 76)• kms:GrantOperations (p. 77)• kms:GranteePrincipal (p. 78)

kms:ValidTo

Chaves de condição doAWS KMS

Tipo de condição Operações de API Tipo de política

kms:ValidTo Time stamp ImportKeyMaterial Políticas do IAM e dechave

A kms:ValidTochave de condição controla o acesso à operação ImportKeyMaterial com base no valor doparâmetro ValidTo na solicitação, o que determina quando o material de chave importada expira. O valor éexpresso no horário do Unix.

80

Page 88: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorChaves de condição do AWS KMS

Por padrão, o parâmetro ValidTo é obrigatório em uma solicitação ImportKeyMaterial. No entanto,se o valor do parâmetro ExpirationModel for KEY_MATERIAL_DOES_NOT_EXPIRE, o parâmetro ValidToserá inválido. Você também pode usar a chave de condição kms: ExpirationModel (p. 74) para exigir oparâmetro ExpirationModel ou um valor de parâmetro específico.

A seguinte declaração de política de exemplo permite a um usuário importar material-chave em uma CMK.A chave de condição kms:ValidTo limita a permissão para solicitações ImportKeyMaterial em que ovalor ValidTo é menor que ou igual a 1546257599.0 (31 de dezembro de 2018 23:59:59).

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": "kms:ImportKeyMaterial", "Resource": "*", "Condition": { "NumericLessThanEquals": { "kms:ValidTo": "1546257599.0" } }}

Consulte também

• kms:ExpirationModel (p. 74)• kms:WrappingAlgorithm (p. 83)• kms:WrappingKeySpec (p. 84)

kms:ViaService

Chaves de condição doAWS KMS

Tipo de condição Operações de API Tipo de política

kms:ViaService String A chave de condiçãokms:ViaServiceé válida para todasas operaçõesdo AWS KMS,exceto: CreateKey,GenerateRandom,ListAliases,ListKeys,ListRetirableGrants,RetireGrant.

Políticas do IAM e dechave

A chave de condição kms:ViaService limita o uso de uma CMK gerenciada pelo cliente (p. 2) asolicitações de determinados serviços do AWS (as CMKs gerenciadas do AWS na sua conta, como aws/s3, são sempre restritas ao serviço da AWS que as criou).

Por exemplo, você pode usar kms:ViaService para permitir que um usuário use uma CMK gerenciadapelo cliente apenas para solicitações que o Amazon S3 faz em seu nome. Ou você pode usá-la para negarao usuário a permissão para uma CMK quando uma solicitação em seu nome é recebida do AWS Lambda.

A chave de condição kms:ViaService é válida no IAM e em declarações de políticas de chaves.Os serviços que você especifica devem estar integrados ao AWS KMS, oferecer suporte às CMKs

81

Page 89: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorChaves de condição do AWS KMS

gerenciadas pelo cliente e ser compatíveis com a chave de condição kms:ViaService. Você podeespecificar um ou mais serviços em cada chave de condição kms:ViaService.

Important

Quando você usar a chave de condição kms:ViaService, verifique se as entidades principaistêm as permissões a seguir:

• Permissão para usar a CMK. A entidade principal precisa conceder essas permissões aoserviço integrado, de forma que o serviço possa usar a CMK gerenciada pelo cliente em nomeda entidade principal. Para obter mais informações, consulte Como os serviços da AWS, usamo AWS KMS (p. 179).

• Permissão para usar o serviço integrado. Para obter detalhes sobre como conceder acesso aosusuários para um serviço da AWS integrado com o AWS KMS, consulte a documentação doserviço integrado.

A tabela a seguir mostra o nome ViaService do KMS para cada serviço que oferece suporte às CMKsgerenciadas pelo cliente e à chave de condição kms:ViaService. Os serviços nesta tabela podem nãoestar disponíveis em todas as regiões.

Serviços que oferecem suporte à chave de condição kms:ViaService

Nome do serviço Nome KMS ViaService

Amazon Connect connect.AWS_region.amazonaws.com

AWS Database Migration Service (AWS DMS) dms.AWS_region.amazonaws.com

Amazon EC2 Systems Manager ssm.AWS_region.amazonaws.com

Amazon Elastic Block Store (Amazon EBS) ec2.AWS_region.amazonaws.com (somente EBS)

Amazon Elastic File System elasticfilesystem.AWS_region.amazonaws.com

Amazon Elasticsearch Service es.AWS_region.amazonaws.com

Amazon Kinesis kinesis.AWS_region.amazonaws.com

Amazon Streams de vídeo do Kinesis kinesisvideo.AWS_region.amazonaws.com

AWS Lambda lambda.AWS_region.amazonaws.com

Amazon Lex lex.AWS_region.amazonaws.com

Amazon Redshift redshift.AWS_region.amazonaws.com

Amazon Relational Database Service (AmazonRDS)

rds.AWS_region.amazonaws.com

AWS Secrets Manager (Secrets Manager) secretsmanager.AWS_region.amazonaws.com

Amazon Simple Email Service (Amazon SES) ses.AWS_region.amazonaws.com

Amazon Simple Storage Service (Amazon S3) s3.AWS_region.amazonaws.com

AWS Snowball importexport.AWS_region.amazonaws.com

Amazon SQS sqs.AWS_region.amazonaws.com

Amazon WorkMail workmail.AWS_region.amazonaws.com

Amazon WorkSpaces workspaces.AWS_region.amazonaws.com

82

Page 90: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorChaves de condição do AWS KMS

O exemplo a seguir mostra uma declaração de política de uma política de chave para uma CMKgerenciada pela AWS. A declaração de política usa a chave de condição kms:ViaService para permitirque a CMK seja usada para as ações especificadas somente quando a solicitação vier de Amazon EBS oude Amazon RDS na região Oeste dos EUA (Oregon).

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:ListGrants", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "ec2.us-west-2.amazonaws.com", "rds.us-west-2.amazonaws.com" ] } }}

kms:WrappingAlgorithm

Chaves de condição doAWS KMS

Tipo de condição Operações de API Tipo de política

kms:WrappingAlgorithmString GetParametersForImportPolíticas do IAM e dechave

Esta chave de condição controla o acesso à operação GetParametersForImport com base no valor doparâmetro WrappingAlgorithm na solicitação. Você pode usar essa condição para exigir que as entidadesprincipais usem determinado algoritmo para criptografar o material de chave durante o processo deimportação Solicitações para a chave pública e o token de importação necessários falham quandoespecificarem um algoritmo de empacotamento diferente.

A declaração de política de exemplo a seguir usa a chave de condição kms:WrappingAlgorithm parafalha se o WrappingAlgorithm na solicitação for RSAES_OAEP_SHA_1. A operação é bem-sucedida eretorna uma chave pública e um token de importação para qualquer outro valor de WrappingAlgorithm.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": "kms:GetParametersForImport", "Resource": "*", "Condition": { "StringNotEquals": { "kms:WrappingAlgorithm": "RSAES_OAEP_SHA_1" }

83

Page 91: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo usar concessões

}}

Consulte também

• kms:ExpirationModel (p. 74)• kms:ValidTo (p. 80)• kms:WrappingKeySpec (p. 84)

kms:WrappingKeySpec

Chaves de condição doAWS KMS

Tipo de condição Operações de API Tipo de política

kms:WrappingKeySpec String GetParametersForImportPolíticas do IAM e dechave

Esta chave de condição controla o acesso à operação GetParametersForImport com base no valor doparâmetro WrappingKeySpec na solicitação. Você pode usar essa condição para exigir que as entidadesprincipais usem determinado tipo de chave pública durante o processo de importação. Se a solicitaçãoespecifica um tipo de chave diferente, ela falha.

Como o único valor válido para o valor do parâmetro WrappingKeySpec é RSA_2048, impedir que osusuários usem esse valor efetivamente os impede de usar a operação GetParametersForImport.

A declaração de política de exemplo a seguir usa a chave de condição kms:WrappingAlgorithm paraexigir que WrappingKeySpec na solicitação seja RSA_2048.

{ "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": "kms:GetParametersForImport", "Resource": "*", "Condition": { "StringNotEquals": { "kms:WrappingKeySpec": "RSA_2048" } }}

Consulte também

• kms:ExpirationModel (p. 74)• kms:ValidTo (p. 80)• kms:WrappingAlgorithm (p. 83)

Como usar concessõesO AWS KMS dá suporte a dois mecanismos de controle de acesso baseados em recursos: políticas dechaves (p. 36) e concessões. Com as concessões, você pode delegar programaticamente o uso de

84

Page 92: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo usar concessões

chaves mestras de cliente (CMKs) do KMS a outras entidades principais da AWS. Você pode usá-laspara permitir o acesso, mas não para negá-lo. As concessões são normalmente usadas para fornecerpermissões temporárias ou permissões mais granulares.

Você também pode usar políticas de chaves para permitir que outras entidades principais acessem umaCMK, mas as políticas de chaves funcionam melhor para atribuições de permissões estáticas. Além disso,as políticas usam o modelo de permissões padrão para as políticas da AWS nas quais os usuários têmou não permissão para realizar uma ação com um recurso. Por exemplo, os usuários com a permissãokms:PutKeyPolicy para uma CMK podem substituir completamente a política de chaves de uma CMKpor outra política de chaves da escolha deles. Para habilitar o gerenciamento de permissões mais granular,use concessões.

Para obter exemplos de código Java que demonstram como trabalhar com concessões, consulte Comotrabalhar com concessões (p. 287).

Criar uma concessão

Para criar uma concessão, chame a operação de API CreateGrant. Especifique uma CMK, o principalfavorecido que a concessão permite usar a CMK e uma lista de operações permitidas. A operaçãoCreateGrant retorna um ID de concessão que você pode usar para identificar a concessão emoperações subsequentes. Para personalizar a concessão, use parâmetros Constraints opcionais paradefinir as restrições de concessão

As concessões podem ser revogadas (canceladas) por qualquer usuário que tenha a permissão kms:RevokeGrant na CMK. As concessões podem ser removidas por qualquer um dos seguintes:

• A conta da AWS (usuário raiz) na qual a concessão foi criada• A entidade principal a ser desativada na concessão, se houver alguma• O principal favorecido, se a concessão inclui a permissão kms:RetireGrant

Restrições de concessão

Restrições de concessão definem as condições sobre as permissões que o principal favorecido poderealizar. Concessões têm duas restrições compatíveis, que envolvem o contexto de criptografia (p. 6) deuma solicitação para uma operação de criptografia:

• EncryptionContextEquals especifica que a concessão aplica-se apenas quando os pares decontexto de criptografia na solicitação são uma correspondência exata, com distinção entre maiúsculas eminúsculas, aos pares de contexto de criptografia na restrição de concessão. Os pares podem aparecerem qualquer ordem, mas as chaves e os valores em cada par não podem variar.

• EncryptionContextSubset especifica que a concessão aplica-se apenas quando o contexto decriptografia na solicitação inclui o contexto de criptografia especificado na restrição de concessão.O contexto de criptografia na solicitação deve ser uma correspondência exata, com distinção entremaiúsculas e minúsculas, ao contexto de criptografia na restrição, mas pode incluir pares de contexto decriptografia adicionais. Os pares podem aparecer em qualquer ordem, mas as chaves e os valores emcada par incluído não podem variar.

Por exemplo, considere uma concessão que permita operações GenerateDataKey e Decrypt. Ela incluiuma restrição EncryptionContextSubset com os seguintes valores.

{"Department":"Finance","Classification":"Public"}

Neste exemplo, qualquer um dos seguintes valores de contexto de criptografia satisfazem a restriçãoEncryptionContextSubset.

• {"Department":"Finance","Classification":"Public"}

85

Page 93: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorUso de funções vinculadas ao serviço

• {"Classification":"Public","Department":"Finance"}

• {"Customer":"12345","Department":"Finance","Classification":"Public","Purpose":"Test"}

No entanto, os seguintes valores de contexto de criptografia não satisfazem a restrição, pois estãoincompletos ou não incluem uma correspondência exata, com distinção entre maiúsculas e minúsculas,dos pares especificados.

• {"Department":"Finance"}

• {"department":"finance","classification":"public"}

• {"Classification":"Public","Customer":"12345"}

Autorização de CreateGrant em uma política de chaves

Quando você cria uma política de chaves para controlar o acesso à operação da API CreateGrant, vocêpode usar uma ou mais condições de política para limitar a permissão. O AWS KMS é compatível comtodas as seguintes chaves de condição relacionados à concessão. Para obter informações detalhadassobre essas chaves de condição, consulte Chaves de condição do AWS KMS (p. 67).

• kms:GrantConstraintType (p. 75)• kms:GrantIsForAWSResource (p. 76)• kms:GrantOperations (p. 77)• kms:GranteePrincipal (p. 78)• kms:RetiringPrincipal (p. 80)

Conceder a permissão CreateGrant

Quando uma concessão inclui permissão para chamar a operação CreateGrant, a concessão só permiteque o principal favorecido crie concessões igualmente ou mais restritivas.

Por exemplo, considere uma concessão que permite que o principal favorecido chame as operaçõesGenerateDataKey, Decrypt e CreateGrant. O principal favorecido pode usar essa permissãopara criar uma concessão que inclui qualquer subconjunto das operações especificadas na concessãopai, como GenerateDataKey e Decrypt. No entanto, ele não pode incluir outras operações, comoScheduleKeyDeletion ou ReEncrypt.

Além disso, as restrições de concessão nas concessões filho devem ser igualmente ou mais restritivasdo que as da concessão pai. Por exemplo, a concessão filho pode adicionar pares a uma restriçãoEncryptionContextSubset na concessão pai, mas não pode removê-los. A concessão filho podealterar uma restrição EncryptionContextSubset para uma restrição EncryptionContextEquals,mas não o contrário.

Usar funções vinculadas ao serviço do AWS KMSAWS Key Management Service usa AWS Identity and Access Management (IAM) funções vinculadas aoserviço. A função vinculada ao serviço é um tipo exclusivo de função do IAM vinculada diretamente aoAWS KMS. As funções vinculadas a serviços são definidas pelo AWS KMS e incluem todas as permissõesque o serviço requer para chamar outros serviços da AWS em seu nome.

Uma função vinculada ao serviço facilita a configuração do AWS KMS porque você não precisa adicionaras permissões necessárias manualmente. AWS KMS define as permissões de suas funções vinculadasao serviço e, a menos que definido em contrário, somente AWS KMS pode assumir suas funções. Aspermissões definidas incluem a política de confiança e a política de permissões, e essa política não podeser anexada a nenhuma outra entidade do IAM.

86

Page 94: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorPermissões da função vinculada a serviço para

armazenamento de chaves personalizado do AWS KMS

Você pode excluir uma função vinculada ao serviço somente depois de excluir os recursos relacionadosda Isso protege seus recursos do AWS KMS, pois você não pode remover por engano as permissões paraacessar os recursos.

Para obter informações sobre outros serviços que oferecem suporte às funções vinculadas a serviço,consulte Serviços da AWS compatíveis com o IAM e procure os serviços que apresentam Sim na colunaFunção vinculada a serviços. Escolha um Sim com um link para exibir a documentação da funçãovinculada a serviço desse serviço.

Permissões da função vinculada a serviço paraarmazenamento de chaves personalizado do AWSKMSO AWS KMS usa uma função vinculada a serviço chamadaAWSServiceRoleForKeyManagementServiceCustomKeyStores para oferecer suporte a armazenamentosde chaves personalizados (p. 133). O AWS KMS da This service-linked role gives AWS KMS permissionto view your AWS CloudHSM clusters and create the network infrastructure to support a connectionbetween your custom key store and its AWS CloudHSM cluster. cria essa função somente quando vocêcria um armazenamento de chaves personalizado (p. 133). Não é possível criar diretamente essa funçãovinculada a serviço.

A função vinculada a serviço AWSServiceRoleForKeyManagementServiceCustomKeyStores confia emcks.kms.amazonaws.com para assumir a função. Como resultado, somente o AWS KMS pode assumiressa função vinculada a serviço.

As permissões na função são limitadas às ações que o AWS KMS executa para se conectar a umarmazenamento de chaves personalizado para um cluster do AWS CloudHSM. Ele não concedepermissões adicionais ao AWS KMS. Por exemplo, o AWS KMS não tem permissão para criar, gerenciarou excluir clusters, HSMs ou backups do AWS CloudHSM.

Para obter mais informações sobre a funçãoAWSServiceRoleForKeyManagementServiceCustomKeyStores, incluindo uma lista de permissões einstruções sobre como visualizar a função, editar a descrição da função, excluir a função, e fazer com queo AWS KMS seja recriado, consulte Autorizar o AWS KMS a gerenciar recursos do AWS CloudHSM eAmazon EC2 (p. 139).

Como determinar o acesso a uma chave mestra decliente do AWS KMS

Para determinar a extensão completa de quem ou o quê atualmente tem acesso a uma chavemestra de cliente (CMK) no AWS KMS, você deve examinar a política de chaves da CMK, todas asconcessões (p. 84) que se aplicam à CMK e, potencialmente, todas as políticas do AWS Identity andAccess Management (IAM). Você pode fazer isso para determinar o escopo do uso potencial de umaCMK ou para ajudá-lo a cumprir os requisitos de conformidade ou de auditoria. Os tópicos a seguir podemajudá-lo a gerar uma lista completa dos principais da AWS (identidades) que no momento têm acesso auma CMK.

Tópicos• Como compreender a avaliação de política (p. 88)• Como examinar a política de chaves (p. 88)• Como examinar as políticas do IAM (p. 92)• Como examinar concessões (p. 93)

87

Page 95: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo compreender a avaliação de política

Como compreender a avaliação de políticaAo autorizar o acesso a uma CMK, o AWS KMS avalia o seguinte:

• A política de chaves que é anexada à CMK• Todas as concessões que se aplicam à CMK• Todas as políticas do IAM que são anexadas ao usuário ou à função do IAM que está fazendo a

solicitação

Em muitos casos, o AWS KMS deve avaliar a política de chaves da CMK e as políticas do IAM emconjunto para determinar se o acesso à CMK é permitido ou negado. Para fazer isso, o AWS KMS usaum processo semelhante ao descrito em Como determinar se uma solicitação é permitida ou negada noGuia do usuário do IAM. No entanto, lembre-se de que as políticas do IAM em si não são suficientes parapermitir o acesso a uma CMK do KMS. A política de chaves da CMK também permitem o acesso.

Por exemplo, suponha que você tenha duas CMKs e três usuários, todos na mesma conta da AWS. AsCMKs e os usuários têm as políticas a seguir:

• A política de chaves da CMK1 permite o acesso à conta da AWS (usuário raiz) e, portanto, habilita aspolíticas do IAM para permitir o acesso à CMK1 (p. 38).

• A política de chaves da CMK2 permite o acesso para Alice e Charlie.• Alice não tem política do IAM.• A política do IAM de Bob permite todas as ações do AWS KMS para todas as CMKs.• A política do IAM de Charlie nega todas as ações do AWS KMS para todas as CMKs.

Alice não pode acessar a CMK1 porque a política de chaves da CMK1 não permite explicitamente oacesso dela, e ela não tem política do IAM que permita o acesso. Alice pode acessar a CMK2 porque apolítica de chaves da CMK permite explicitamente o acesso dela.

Bob pode acessar a CMK1 porque a política de chaves CMK1 habilita políticas do IAM para permitir oacesso, e Bob tem uma política do IAM que permite o acesso. Bob não pode acessar a CMK2 porque apolítica de chaves da CMK2 não permite o acesso à conta, portanto, a política do IAM de Bob não permitepor si o acesso à CMK2.

Charlie não pode acessar a CMK1 ou a CMK2 porque todas as ações da AWS KMS são negadas napolítica do IAM. A negação explícita na política do IAM de Charlie substitui a permissão explícita na políticade chaves da CMK2.

Como examinar a política de chavesVocê pode examinar a política de chaves de duas maneiras:

• Se a CMK foi criada no Console de gerenciamento da AWS, você pode usar a visualização padrão doconsole na página de detalhes da chave para visualizar as principais listadas na política de chaves. Sevocê pode visualizar a política de chaves dessa forma, isso significa que a política de chaves permite oacesso com as políticas do IAM (p. 38). Certifique-se de examinar as políticas do IAM (p. 92) paradeterminar a lista completa das principais que podem acessar a CMK.

• Você pode usar a operação GetKeyPolicy na API do AWS KMS para recuperar uma cópia do documentode política de chaves e, em seguida, examinar o documento. Você também pode visualizar o documentode política no Console de gerenciamento da AWS.

Formas de examinar a política de chaves• Como examinar a política de chaves (Console) (p. 89)

88

Page 96: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo examinar a política de chaves

• Como examinar o documento de política de chaves (KMS API) (p. 90)

Como examinar a política de chaves (Console)Os usuários autorizados podem visualizar e alterar o documento de política para uma chave mestra docliente (CMK) na seção Key Policy (Política de chaves) do Console de gerenciamento da AWS.

Note

AWS KMS recently introduced a new console that makes it easier for you to organize and manageyour KMS resources. It is available in all AWS Regions that AWS KMS supports except for AWSGovCloud (US-East) and AWS GovCloud (US-West). We encourage you to try the new AWS KMSconsole at https://console.aws.amazon.com/kms.The original console will remain available for a brief period to give you time to familiarize yourselfwith the new one. To use the original console, choose Encryption Keys in the IAM console or goto https://console.aws.amazon.com/iam/home?#/encryptionKeys. Please share your feedback bychoosing Feedback in either console or in the lower-right corner of this page.

Para examinar uma política de chaves (new console)

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS Key Management Service(AWS KMS) em https://console.aws.amazon.com/kms.

2. To change the AWS Region, use the Region selector in the upper-right corner of the page.3. In the navigation pane, choose Customer managed keys.4. Na lista da CMK, escolha o alias ou ID de chave da CMK que você deseja examinar.5. Em Key policy (Política de chaves), a seção Key administrators (Administradores de chaves) exibe

a lista de usuários e funções do IAM que podem gerenciar a CMK. A seção Key users (Usuários dechaves) lista os usuários, as funções e as contas do AWS que podem usar essa CMK em operaçõesde criptografia.

Important

Os usuários e as funções do IAM e as contas da AWS listados aqui são aqueles a quem foiconcedido o acesso explicitamente na política de chaves. Se você usar as políticas do IAMpara permitir o acesso às CMKs, outros usuários e funções do IAM podem ter acesso a essaCMK, mesmo que não estejam listados aqui. Tenha cuidado para examinar todas as políticasdo IAM (p. 92) nesta conta para determinar se elas permitem o acesso a essa CMK.

6. (Opcional) Para visualizar o documento de política de chaves, escolha Alternar para visualização depolíticas.

Para examinar uma política de chaves (original console)

1. Sign in to the Console de gerenciamento da AWS and go to https://console.aws.amazon.com/iam/home?#/encryptionKeys.

2. For Region, choose the appropriate AWS Region. Do not use the region selector in the navigation bar(top right corner).

3. Na lista da CMKs, escolha o alias da CMK que você deseja examinar.4. Na seção Política de chaves da página de detalhes da chave, encontre a lista de usuários e as

funções do IAM na seção Administradores de chaves, e outra lista na seção Usuários de chaves. Osusuários, as funções e as contas da AWS listados têm acesso para gerenciar ou usar essa CMK.

Important

Os usuários e as funções do IAM e as contas da AWS listados aqui são aqueles a quem foiconcedido o acesso explicitamente na política de chaves. Se você usar as políticas do IAMpara permitir o acesso às CMKs, outros usuários e funções do IAM podem ter acesso a essa

89

Page 97: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo examinar a política de chaves

CMK, mesmo que não estejam listados aqui. Tenha cuidado para examinar todas as políticasdo IAM (p. 92) nesta conta para determinar se elas permitem o acesso a essa CMK.

5. (Opcional) Para visualizar o documento de política de chaves, escolha Alternar para visualização depolíticas.

Como examinar o documento de política de chaves (KMS API)Você pode visualizar o documento de política de chaves de duas formas:

• Use a página de detalhes da chave do Console de gerenciamento da AWS (consulte a seção anteriorpara obter instruções).

• Para obter o documento de política de chaves, use a operação GetKeyPolicy na API do AWS KMS.

Examine o documento de política de chaves e anote todas as principais especificadas em cada elementoPrincipal da declaração de política. Os usuários do IAM, as funções do IAM e as contas da AWS noselementos Principal são aqueles que têm acesso a essa CMK.

Os exemplos a seguir usam as declarações de política encontradas na política de chaves padrão (p. 37)para demonstrar como fazer isso.

Example Declaração de política 1

{ "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:root"}, "Action": "kms:*", "Resource": "*"}

Na declaração de política anterior, arn:aws:iam::111122223333:root refere-se à conta111122223333 da AWS. Por padrão, uma declaração de política como essa está presente no documentode políticas de chave quando você cria uma nova CMK com o console. Ela também está presente quandovocê cria uma nova CMK de forma programática, mas não fornece uma política de chaves.

Um documento de política de chaves com uma declaração que permite o acesso à conta da AWS(usuário raiz) habilita políticas do IAM na conta para permitir o acesso à CMK (p. 38). Isso significaque os usuários e as funções do IAM na conta podem ter acesso à CMK mesmo se eles não estiveremexplicitamente listados como os principais no documento de política de chaves. Tenha cuidado aoexaminar todas as políticas do IAM (p. 92) em todas as contas da AWS listadas como as principais paradeterminar se elas permitem o acesso a essa CMK.

Example Declaração de política 2

{ "Sid": "Allow access for Key Administrators", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:user/KMSKeyAdmin"}, "Action": [ "kms:Describe*", "kms:Put*", "kms:Create*", "kms:Update*", "kms:Enable*", "kms:Revoke*", "kms:List*", "kms:Disable*",

90

Page 98: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo examinar a política de chaves

"kms:Get*", "kms:Delete*", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource": "*"}

Na declaração de política anterior, arn:aws:iam::111122223333:user/KMSKeyAdmin refere-se aousuário chamado KMSKeyAdmin do IAM na conta 111122223333 da AWS. Este usuário tem permissãopara realizar as ações listadas na declaração de política, que são ações administrativas para gerenciaruma CMK.

Example Declaração de política 3

{ "Sid": "Allow use of the key", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:role/EncryptionApp"}, "Action": [ "kms:DescribeKey", "kms:GenerateDataKey*", "kms:Encrypt", "kms:ReEncrypt*", "kms:Decrypt" ], "Resource": "*"}

Na declaração de política anterior, arn:aws:iam::111122223333:role/EncryptionApp se refereà função do IAM chamada EncryptionApp na conta 111122223333 da AWS. As principais que podemassumir essa função têm permissão para realizar as ações listadas na declaração de política, que são asações de criptografia para criptografar e descriptografar os dados com uma CMK.

Example Declaração de política 4

{ "Sid": "Allow attachment of persistent resources", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:role/EncryptionApp"}, "Action": [ "kms:ListGrants", "kms:CreateGrant", "kms:RevokeGrant" ], "Resource": "*", "Condition": {"Bool": {"kms:GrantIsForAWSResource": true}}}

Na declaração de política anterior, arn:aws:iam::111122223333:role/EncryptionApp se refereà função do IAM chamada EncryptionApp na conta 111122223333 da AWS. As principais que podemassumir essa função têm permissão para realizar as ações listadas na declaração de política. Essasações, quando combinadas com as ações permitidas na Declaração de política de exemplo 3, sãoaquelas necessárias para delegar o uso da CMK para a maioria dos serviços da AWS integrados ao AWSKMS (p. 179), especificamente os serviços que usam concessões (p. 84). O elemento Conditiongarante que a delegação é permitida apenas quando o delegado é um serviço da AWS integrado ao AWSKMS e usa concessões para autorização.

Para saber todas as diferentes maneiras de especificar um principal em um documento de política dechaves, consulte Especificação de um principal no Guia do usuário do IAM.

91

Page 99: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo examinar as políticas do IAM

Para saber mais sobre as políticas de chaves do AWS KMS, consulte Como usar políticas de chaves noAWS KMS (p. 36).

Como examinar as políticas do IAMAlém da política de chaves e das concessões, você também pode usar as políticas do IAM em combinaçãocom uma política de chaves da CMK para permitir o acesso a uma CMK. Para obter mais informaçõessobre como as políticas do IAM e as políticas de chaves funcionam juntas, consulte Como compreender aavaliação de política (p. 88).

Para determinar quais principais têm acesso no momento a uma CMK por meio das políticas do IAM, vocêpode usar a ferramenta baseada em navegador Simulador de políticas do IAM, ou pode fazer solicitaçõespara a API do IAM.

Formas de examinar as políticas do IAM• Como examinar as políticas do IAM com o Simulador de políticas do IAM (p. 92)• Como examinar as políticas do IAM com a API do IAM (p. 92)

Como examinar as políticas do IAM com o Simulador de políticasdo IAMO Simulador de políticas do IAM pode ajudá-lo a saber quais principais têm acesso a uma CMK do KMSpor meio de uma política do IAM.

Para usar o Simulador de políticas do IAM para determinar o acesso a uma CMK do KMS

1. Faça login no Console de gerenciamento da AWS e, em seguida, abra o Simulador de políticas doIAM em https://policysim.aws.amazon.com/.

2. No painel Usuários, grupos e funções, escolha o usuário, o grupo ou a função cujas políticas vocêdeseja simular.

3. (Opcional) Desmarque a caixa de seleção ao lado de qualquer política que você deseja omitir dasimulação. Para simular todas as políticas, deixe todas as políticas selecionadas.

4. No painel Simulador de políticas, faça o seguinte:

a. Para Selecionar serviço, escolha Key Management Service.b. Para simular ações específicas do AWS KMS para Selecionar ações, escolha as ações a serem

simuladas. Para simular todas as ações do AWS KMS, escolha Selecionar tudo.5. (Opcional) O Simulador de políticas simula o acesso a todas as CMKs do KMS por padrão. Para

simular o acesso a uma determinada CMK da KMS, escolha Simulation Settings (Configuraçõesde simulação) e, em seguida, digite o Nome de recurso da Amazon (ARN) da CMK do KMS a sersimulada.

6. Escolha Run Simulation (Executar simulação).

Você pode visualizar os resultados da simulação na seção Resultados. Repita as etapas de 2 a 6 paracada usuário, grupo e função do IAM na conta da AWS.

Como examinar as políticas do IAM com a API do IAMVocê pode usar a API do IAM para examinar as políticas do IAM programaticamente. As etapas a seguirfornecem uma visão geral de como fazer isso:

1. Para cada conta da AWS listada como principal na política de chaves da CMK (ou seja, cada conta raizlistada neste formato: "Principal": {"AWS": "arn:aws:iam::111122223333:root"}), use as

92

Page 100: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo examinar concessões

operações ListUsers e ListRoles na API do IAM para recuperar uma lista de cada usuário e função doIAM na conta.

2. Para cada usuário e função do IAM na lista, use a operação SimulatePrincipalPolicy na API do IAM,passando nos parâmetros a seguir:• Para PolicySourceArn, especifique o Nome de recurso da Amazon (ARN) de um usuário ou

função da sua lista. Você pode especificar apenas um PolicySourceArn para cada solicitação deAPI SimulatePrincipalPolicy, portanto, você deve chamar essa API várias vezes, uma vez paracada função e usuário do IAM em sua lista.

• Para ver a lista ActionNames, especifique cada ação de API do AWS KMS a ser simulada. Parasimular todas as ações de API do AWS KMS, use kms:*. Para testar ações de API individuais doAWS KMS, preceda cada ação de API com "kms:", por exemplo, "kms:ListKeys". Para obter umalista completa de todas as ações de API do AWS KMS, consulte Ações em AWS Key ManagementService API Reference.

• (Opcional) Para determinar se os usuários ou as funções do IAM têm acesso a CMKs específicas doKMS, use o parâmetro ResourceArns para especificar uma lista dos Nomes de recursos da Amazon(ARNs) das CMKs. Para determinar se os usuários ou funções do IAM têm acesso a qualquer CMK,não use o parâmetro ResourceArns.

O IAM responde a cada solicitação da API do SimulatePrincipalPolicy com uma decisão deavaliação: allowed, explicitDeny ou implicitDeny. Para cada resposta que contém uma decisãode avaliação allowed, a resposta inclui o nome da operação de API do AWS KMS específico permitido.Ela também inclui o ARN da CMK que foi usada na avaliação, se houver.

Como examinar concessõesAs concessões são mecanismos avançados para especificar as permissões que você ou um serviço daAWS integrado ao AWS KMS pode usar para especificar como e quando uma CMK poderá ser usada.As concessões são anexadas a uma CMK e cada concessão contém o principal que recebe permissãopara usar a CMK e uma lista de operações que são permitidas. As concessões são uma alternativa para apolítica de chaves e são úteis para casos de uso específicos. Para obter mais informações, consulte Comousar concessões (p. 84).

Para recuperar uma lista de concessões anexadas a uma CMK, use a API ListGrants do AWS KMS (ouo comando list-grants da AWS CLI). Você pode examinar as concessões de uma CMK para determinarquem ou o quê tem acesso no momento para usar a CMK por meio dessas concessões. Por exemplo, aseguir há uma representação JSON de uma concessão que foi obtida do comando list-grants na AWS CLI.

{"Grants": [{ "Operations": ["Decrypt"], "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Name": "0d8aa621-43ef-4657-b29c-3752c41dc132", "RetiringPrincipal": "arn:aws:iam::123456789012:root", "GranteePrincipal": "arn:aws:sts::111122223333:assumed-role/aws:ec2-infrastructure/i-5d476fab", "GrantId": "dc716f53c93acacf291b1540de3e5a232b76256c83b2ecb22cdefa26576a2d3e", "IssuingAccount": "arn:aws:iam::111122223333:root", "CreationDate": 1.444151834E9, "Constraints": {"EncryptionContextSubset": {"aws:ebs:id": "vol-5cccfb4e"}}}]}

Para saber quem ou o quê tem acesso para usar a CMK, procure o elemento "GranteePrincipal".No exemplo anterior, o principal favorecido é um usuário de função assumida associado à instância doEC2 i-5d476fab. A infraestrutura do EC2 usa essa função para anexar o volume do EBS criptografadovol-5cccfb4e à instância. Nesse caso, a função da infraestrutura do EC2 tem permissão para usar a CMKporque você já criou um volume do EBS criptografado protegido por essa CMK. Em seguida, você anexa ovolume a uma instância do EC2.

93

Page 101: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo examinar concessões

A seguir há outro exemplo de representação JSON de uma concessão que foi obtida do comando list-grants na AWS CLI. No exemplo a seguir, o principal favorecido é outra conta da AWS.

{"Grants": [{ "Operations": ["Encrypt"], "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Name": "", "GranteePrincipal": "arn:aws:iam::444455556666:root", "GrantId": "f271e8328717f8bde5d03f4981f06a6b3fc18bcae2da12ac38bd9186e7925d11", "IssuingAccount": "arn:aws:iam::111122223333:root", "CreationDate": 1.444151269E9}]}

94

Page 102: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedor

Mudança de chaves mestras decliente

As melhores práticas criptográficas desencorajam a reutilização extensiva de chaves de criptografia. Paracriar novo material criptográfico para as chaves mestras de cliente (CMKs) do AWS Key ManagementService (AWS KMS), crie novas CMKs e, em seguida, altere seus aplicativos ou aliases para usarem asnovas CMKs. Ou, você pode habilitar a mudança de chaves automática para uma CMK.

Ao habilitar a alternância automática de chaves para uma CMK gerenciada pelo cliente, o AWS KMS geraum novo material criptográfico para a CMK a cada ano. O AWS KMS também salva o material criptográficomais antigo da CMK para que possa ser usado para descriptografar dados que foram criptografados.

A mudança de chaves altera apenas a chave de backup, que é o material criptográfico usado emoperações de criptografia. A CMK é a mesma, independentemente da ocorrência de alterações ou donúmero de vezes que estas tenham sido feitas na chave de backup. As propriedades da CMK não sãoalteradas, conforme mostrado na imagem a seguir.

A mudança de chaves automática tem os seguintes benefícios:

• As propriedades da CMK, incluindo seu ID da chave, ARN de chave, região, políticas e permissões, nãosão alteradas quando há mudança na chave.

• Você não precisa alterar aplicativos ou aliases que consultem o ARN ou ID da CMK.• Depois de habilitar a alternância de chaves, o AWS KMS alterna a CMK automaticamente a cada ano.

Você não precisa lembrar nem programar a atualização.

No entanto, a alternância automática de chaves não afeta os dados protegidos pela CMK. Ela não alternaas chaves de dados geradas pela CMK, não criptografa novamente quaisquer dados protegidos pela CMKe não reduz o impacto de uma chave de dados comprometida.

Você pode decidir criar uma nova CMK e usá-la em vez da CMK original. Isso tem o mesmo efeito quemudar o material da chave em uma CMK; portanto, normalmente é considerada como mudança manualde chaves (p. 99). A mudança manual é uma boa opção quando você deseja controlar a programaçãoda mudança de chaves. Ela também oferece uma maneira de mudar as CMKs com material de chavesimportadas.

95

Page 103: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo funciona a mudança de chaves automática

Mais informações sobre mudança de chaves

Mudar CMKs gerenciadas de cliente pode resultar em cobranças mensais. Para obter mais informações,consulte Definição de preço do AWS Key Management Service. Para obter informações mais detalhadassobre chaves de backup e alternância, consulte o whitepaper KMS Cryptographic Details .

Tópicos• Como funciona a mudança de chaves automática (p. 96)• Como habilitar e desabilitar a mudança de chaves automática (p. 97)• Mudança de chaves manualmente (p. 99)

Como funciona a mudança de chaves automáticaA alternância de chaves no AWS KMS é uma melhor prática criptográfica que visa ser transparente e fácilde usar.

• Gerenciamento de chaves de backup. O AWS KMS retém todas as chaves de backup de uma CMK,mesmo que a alternância de chaves esteja desabilitada. As chaves de backup são excluídas apenasquando a CMK é excluída. Quando você usa uma CMK para criptografar, o AWS KMS usa a chave debackup atual. Quando você usa a CMK para descriptografar, o AWS KMS usa a chave de backup que foiusada para criptografar.

 • Ativar e desativar a alternância de chaves. Por padrão, a alternância automática de chaves está

desabilitada nas CMKs gerenciadas pelo cliente. Quando você habilita (ou habilita novamente) aalternância de chaves, o AWS KMS alterna automaticamente a CMK 365 dias após a data de habilitaçãoe a cada 365 dias depois disso.

 • CMKs desabilitadas. Enquanto uma CMK está desabilitada, o AWS KMS não a alterna. No entanto, o

status da alternância de chaves não muda, e você não pode alterá-lo enquanto a CMK está desabilitada.Quando a CMK for habilitada novamente, se a chave de backup tiver mais de 365 dias, o AWS KMS aalternará imediatamente e a cada 365 dias depois disso. Se a chave de backup tiver menos de 365 dias,o AWS KMS retomará a programação original da alternância de chaves.

 • CMKs pendentes de exclusão. Enquanto uma CMK está pendente de exclusão, o AWS KMS não a

alterna. O status da alternância de chaves é definido como false e você não pode alterá-lo enquantoa exclusão estiver pendente. Se a exclusão for cancelada, o status da alternância de chaves anteriorserá restaurado. Se a chave de backup tiver mais de 365 dias, o AWS KMS a alternará imediatamente ea cada 365 dias depois disso. Se a chave de backup tiver menos de 365 dias, o AWS KMS retomará aprogramação original da alternância de chaves.

 • CMKs nos armazenamentos de chaves personalizados. A alternância automática de chaves não está

disponível para CMKs em armazenamentos de chaves personalizados (p. 133) (o valor do campoOrigin é AWS_CloudHSM), mas você pode alternar essas CMKs manualmente (p. 99).

 • CMKs importadas. A alternância automática de chaves não está disponível para CMKs que tenham

material de chave importada (p. 101) (o valor do campo Origin é External), mas você pode mudaressas CMKs manualmente (p. 99).

 

96

Page 104: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo habilitar e desabilitar a

mudança de chaves automática

• CMKs gerenciadas pela AWS Você não pode gerenciar a alternância de chaves para CMKs gerenciadaspela AWS. O AWS KMS alterna automaticamente as chaves gerenciadas pela AWS a cada três anos(1.095 dias).

 • Registro em log da alternância de chaves. Quando o AWS KMS alterna uma CMK, ele grava o evento

de Alternância de CMKs do KMS no Eventos do Amazon CloudWatch. Você pode usar esse evento paraverificar se a CMK foi mudada.

Como habilitar e desabilitar a mudança de chavesautomática

Você pode usar o console do AWS KMS ou a API do AWS KMS para habilitar e desabilitar a alternânciaautomática de chaves e visualizar o status da alternância de qualquer CMK gerenciada pelo cliente.

Quando você habilita a alternância automática de chaves, o AWS KMS alterna a CMK 365 dias após adata de habilitação e a cada 365 dias depois disso.

Tópicos• Como habilitar e desabilitar a alternância de chaves (Console) (p. 97)• Como habilitar e desabilitar a alternância de chaves (KMS API) (p. 98)

Como habilitar e desabilitar a alternância de chaves(Console)

Note

AWS KMS recently introduced a new console that makes it easier for you to organize and manageyour KMS resources. It is available in all AWS Regions that AWS KMS supports except for AWSGovCloud (US-East) and AWS GovCloud (US-West). We encourage you to try the new AWS KMSconsole at https://console.aws.amazon.com/kms.The original console will remain available for a brief period to give you time to familiarize yourselfwith the new one. To use the original console, choose Encryption Keys in the IAM console or goto https://console.aws.amazon.com/iam/home?#/encryptionKeys. Please share your feedback bychoosing Feedback in either console or in the lower-right corner of this page.

Habilitar e desabilitar a alternância de chaves (new console)

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS Key Management Service(AWS KMS) em https://console.aws.amazon.com/kms.

2. To change the AWS Region, use the Region selector in the upper-right corner of the page.3. In the navigation pane, choose Customer managed keys. (Não é possível habilitar ou desabilitar a

alternância de chaves gerenciadas pela AWS. Elas são alternadas automaticamente de três em trêsanos.)

4. Escolha o alias ou ID de chave de uma CMK.5. Em General configuration (Configurações gerais), escolha a guia Key rotation (Alternância de chaves).

Se a CMK é criada sem material de chaves (a Origin é EXTERNAL), não há nenhuma guia Alternânciade chaves. Não é possível alternar essas CMKs automaticamente, mas sim manualmente (p. 99).

6. Marque ou desmarque a caixa de seleção Automatically rotate this CMK every year (Alterne esta CMKautomaticamente todo ano).

97

Page 105: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo habilitar e desabilitar a

alternância de chaves (KMS API)

Note

Se uma CMK estiver desabilitada ou pendente de exclusão, a caixa de seleção Automaticallyrotate this CMK every year (Alterne esta CMK automaticamente todo ano) (Alternânciade chaves) estará vazia, e você não pode alterá-la. O status da alternância de chaves érestaurado quando você habilita a CMK ou cancela a exclusão. Para obter mais detalhes,consulte Como funciona a mudança de chaves automática (p. 96) e Como o estado dachave afeta o uso de uma chave mestra de cliente (p. 175).

7. Escolha Salvar.

Habilitar e desabilitar a alternância de chaves (original console)

1. Sign in to the Console de gerenciamento da AWS and go to https://console.aws.amazon.com/iam/home?#/encryptionKeys.

2. For Region, choose the appropriate AWS Region. Do not use the region selector in the navigation bar(top right corner).

3. Escolha o alias da CMK cujos detalhes você quer ver.

Note

Não é possível editar CMKs gerenciadas pela AWS, que são identificadas pelo ícone laranjada AWS.

4. Use os controles da seção Key Rotation da página.

Note

Se uma CMK estiver desabilitada ou pendente de exclusão, a caixa de seleção Key Rotation(Alternância de chaves) estará limpa, e você não pode alterá-la. Isso mostra que o AWSKMS não alterna CMKs enquanto elas estão desabilitadas ou pendentes de exclusão. Ostatus da alternância de chaves é restaurado quando você ativa a CMK novamente oucancela a exclusão. Para obter mais detalhes, consulte Como funciona a mudança de chavesautomática (p. 96) e Como o estado da chave afeta o uso de uma chave mestra decliente (p. 175).

Como habilitar e desabilitar a alternância de chaves(KMS API)Você pode usar a API do AWS Key Management Service (AWS KMS) para habilitar e desabilitar aalternância automática de chaves e visualizar o status atual da alternância de qualquer CMK gerenciadapelo cliente. Estes exemplos usam a AWS Command Line Interface (AWS CLI), mas você pode usarqualquer linguagem de programação compatível.

A operação EnableKeyRotation habilita a mudança de chaves automática para a CMK especificada.A operação DisableKeyRotation a desativa. Para identificar a CMK, use seu ID de chave, ARN de

98

Page 106: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorMudança de chaves manualmente

chave, nome de alias ou ARN de alias. Por padrão, a mudança de chaves está desabilitada nas CMKsgerenciadas de cliente.

O exemplo a seguir habilita a mudança de chaves na CMK especificada e usa a operaçãoGetKeyRotationStatus para ver o resultado. Em seguida, ele desabilita a alternância de chaves e,novamente, usa GetKeyRotationStatus para ver a alteração.

$ aws kms enable-key-rotation --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

$ aws kms get-key-rotation-status --key-id 1234abcd-12ab-34cd-56ef-1234567890ab{ "KeyRotationEnabled": true}

$ aws kms disable-key-rotation --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

$ aws kms get-key-rotation-status --key-id 1234abcd-12ab-34cd-56ef-1234567890ab{ "KeyRotationEnabled": false}

Mudança de chaves manualmenteTalvez você queira criar uma nova CMK e usá-la no lugar de uma CMK atual, em vez de habilitar amudança de chaves automática. Quando a nova CMK tiver material criptográfico diferente daquele da CMKatual, usar a nova CMK produzirá o mesmo efeito de alterar a chave de backup em uma CMK existente. Oprocesso de substituir uma CMK por outra é conhecido como mudança de chaves manual.

Você pode preferir mudar as chaves manualmente, para que possa controlar a frequência da mudança.Essa também é uma boa solução para as CMKs que não estejam qualificadas para a mudança de chavesautomática, como as CMKs em armazenamentos de chaves personalizados (p. 133) ou CMKs commaterial de chaves importadas (p. 101).

99

Page 107: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorMudança de chaves manualmente

Note

Quando você começar a usar a nova CMK, mantenha a CMK original habilitada para que o AWSKMS possa descriptografar os dados que a CMK original criptografou. Quando descriptografadados, o KMS identifica a CMK que foi usada para criptografar os dados e usa a mesma CMKpara descriptografar os dados. Desde que você mantenha as CMKs original e nova habilitadas, oAWS KMS poderá descriptografar quaisquer dados que tenham sido criptografados por qualqueruma das duas CMKs.

Como a nova CMK é um recurso diferente da CMK atual, ela tem um ARN e ID de chave diferentes.Quando alterar as CMKs, você precisará atualizar as referências aos ARN e ID da CMK em seusaplicativos. Os aliases, que associam um nome amigável a uma CMK, tornam esse processo mais fácil.Use um alias para fazer referência a uma CMK em seus aplicativos. Em seguida, quando você desejaralterar a CMK que o aplicativo usa, altere a CMK de destino do alias.

Para atualizar a CMK de destino de um alias, use a operação UpdateAlias na API do AWS KMS. Porexemplo, este comando atualiza o alias TestCMK para apontar para uma nova CMK. Como a operaçãonão retorna uma saída, o exemplo usa a operação ListAliases para mostrar que o alias agora estáassociado a uma CMK diferente.

$ aws kms list-aliases{ "Aliases": [ { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/TestCMK", "AliasName": "alias/TestCMK", "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab" }, ]}

$ aws kms update-alias --alias-name alias/TestCMK --target-key-id 0987dcba-09fe-87dc-65ba-ab0987654321 $ aws kms list-aliases{ "Aliases": [ { "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/TestCMK", "AliasName": "alias/TestCMK", "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321" }, ]}

100

Page 108: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorSobre o material de chaves importadas

Importação do material de chavesno AWS Key Management Service(AWS KMS)

Uma chave mestra de cliente (CMK) é uma representação lógica de uma chave mestra no AWS KMS.Além dos identificadores de chave mestra e outros metadados, incluindo a data de criação, a descriçãoe o estado de chave (p. 175), uma CMK contém o material de chaves usado para criptografar edescriptografar os dados. Quando você cria uma CMK (p. 9), por padrão, o AWS KMS gera o material dechaves para essa CMK. No entanto, você pode criar uma CMK sem material de chaves e, em seguida,importar o seu próprio material de chaves para essa CMK.

Ao usar o material de chaves importadas, você permanece responsável pelo material de chaves enquantopermite que o AWS KMS use uma cópia dele. Você pode optar por fazer isso por um ou mais dosseguintes motivos:

• Para provar que você gerou o material de chaves usando uma origem de entropia que atende aos seusrequisitos.

• Para usar o material de chaves de sua própria infraestrutura com serviços da AWS, e usar o AWS KMSpara gerenciar o ciclo de vida desse material de chaves na AWS.

• Para definir um horário de expiração do material de chaves na AWS e para excluí-lomanualmente (p. 116), mas também para disponibilizá-lo novamente no futuro. Por outro lado,programar a exclusão de chaves (p. 119) exige um período de espera de 7 a 30 dias, após os quaisvocê não pode recuperar a CMK excluída.

• Para possuir a cópia original do material de chave e mantê-lo fora da AWS para durabilidade adicional erecuperação de desastres durante o ciclo de vida completo do material de chave.

Para obter mais informações sobre diferenças importantes entre as CMKs com material de chavesimportadas e aquelas com material de chaves gerado pelo AWS KMS, consulte Sobre o material dechaves importadas (p. 101).

O material de chaves que você importa deve ser uma chave de criptografia simétrica de 256 bits.

Tópicos

• Sobre o material de chaves importadas (p. 101)• Como importar o material de chaves (p. 102)• Como importar novamente o material de chaves (p. 103)• Como identificar as CMKs com material de chave importada (p. 103)

Sobre o material de chaves importadasAntes de decidir importar o material de chaves para o AWS KMS, você deve entender as seguintescaracterísticas do material de chaves importadas.

101

Page 109: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo importar o material de chaves

Geração de chaves segura

Você é responsável por gerar o material de chaves usando uma origem de aleatoriedade que atende aosseus requisitos de segurança.

Uma chave por CMK

Quando você importa o material de chaves para uma CMK, a CMK é associada permanentemente a essematerial de chaves. Você pode reimportar o mesmo material de chaves (p. 103), mas não pode importaroutro material de chaves para essa CMK. Além disso, não é possível habilitar a alternância automáticade chaves (p. 95) de uma CMK com material de chaves importadas. No entanto, você pode alternarmanualmente uma CMK (p. 99) com material de chaves importadas.

Uma CMK por texto cifrado

Quando você criptografa os dados sob uma CMK do KMS, o texto cifrado não pode ser descriptografadocom nenhuma outra CMK. Esse é o caso mesmo quando você importa o mesmo material de chaves paraoutra CMK.

Disponibilidade e durabilidade

Você é responsável pela disponibilidade e durabilidade gerais do material de chaves. AWS KMS é criadopara manter o material de chaves importado altamente disponível. No entanto, o serviço não mantém adurabilidade do material de chave importada no mesmo nível que o material de chave gerado em seunome. Essa diferença é importante nos seguintes casos:

• Quando você define um tempo de expiração para o seu material de chaves importadas, o AWS KMSexclui o material de chaves depois que ele expira. O AWS KMS não exclui a CMK ou seus metadados.Você não pode definir um tempo de expiração para o material de chaves gerado pelo AWS KMS.

• Quando você exclui manualmente o material de chaves importadas (p. 116), o AWS KMS exclui omaterial de chaves, mas não exclui a CMK ou seus metadados. Por outro lado, programar a exclusãode chaves (p. 119) exige um período de espera de 7 a 30 dias, após os quais o AWS KMS exclui omaterial de chaves e todos os metadados da CMK.

• No improvável evento de determinadas falhas regionais que afetam o serviço (tais como uma quedade energia), o AWS KMS não pode restaurar automaticamente seu material de chaves importadas. Noentanto, o AWS KMS pode restaurar a CMK e seus metadados.

Para restaurar o material de chave depois de eventos como esse, é necessário manter uma cópia dele emum sistema controlado por você. Em seguida, você pode importá-lo novamente para a CMK.

Como importar o material de chavesA visão geral a seguir explica o processo para importar seu material de chaves para o AWS KMS. Paraobter mais detalhes sobre cada etapa no processo, consulte o tópico correspondente.

1. Criar uma CMK sem material de chaves (p. 105) – para começar a importar o material de chaves,primeiro crie uma CMK cuja origem seja EXTERNAL. Isso indica que o material de chaves foi geradofora do AWS KMS e impede que o AWS KMS gere o material de chaves para a CMK. Em uma etapaposterior, você importará seu próprio material de chaves para esta CMK.

2. Fazer download da chave pública e do token de importação (p. 108) – depois de concluir a etapa 1,faça download de uma chave publica e de um token de importação. Esses itens protegem a importaçãode seu material de chaves para o AWS KMS.

3. Criptografar o material de chaves (p. 113) – use a chave pública que você obteve por download naetapa 2 para criptografar o material de chaves que você criou em seu próprio sistema.

102

Page 110: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo importar novamente o material de chaves

4. Importar o material de chaves (p. 114) – faça upload do material de chaves criptografado que vocêcriou na etapa 3 e o token de importação que você obteve por download na etapa 2.

Como importar novamente o material de chavesSe você gerencia uma CMK com material de chaves importadas, pode ser necessário importar novamenteo material de chaves. Isso ocorre porque o material de chaves expirou ou porque ele foi excluído ouperdido acidentalmente.

Você deve importar novamente o mesmo material de chaves importado originalmente para a CMK. Não épossível importar outro material de chaves para uma CMK. Além disso, o AWS KMS não cria o material dechaves para uma CMK criada sem esse material.

Para importar novamente um material de chaves, use o mesmo procedimento que você usou para importaro material de chaves (p. 102) na primeira vez, com as seguintes exceções.

• Use uma CMK existente, em vez de criar uma nova. Você pode ignorar a Etapa 1 (p. 105) doprocedimento de importação.

• Se a CMK contém o material de chaves, você deve excluir o material de chaves existente (p. 116)antes de importar novamente o material.

Cada vez que você importar o material de chave para uma CMK, é necessário fazer download e usaruma nova chave de empacotamento e o token de importação (p. 108) da CMK. O procedimento deempacotamento não afeta o conteúdo do material de chave, portanto você pode usar diferentes chaves deempacotamento (e diferentes tokens de importação) para importar o mesmo material de chave.

Como identificar as CMKs com material de chaveimportada

Quando você cria uma CMK sem material de chave, o valor da propriedade Origin da CMK é EXTERNAL,e não pode ser alterado. Não é possível converter uma chave que usa o material de chave importada parauma que usa o material de chave que o AWS KMS fornece.

Você pode identificar CMKs que exigem o material de chave importada no console do AWS KMS ou pormeio da API do AWS KMS.

Para identificar o valor da propriedade Origin deCMKs (Console)

Note

AWS KMS recently introduced a new console that makes it easier for you to organize and manageyour KMS resources. It is available in all AWS Regions that AWS KMS supports except for AWSGovCloud (US-East) and AWS GovCloud (US-West). We encourage you to try the new AWS KMSconsole at https://console.aws.amazon.com/kms.The original console will remain available for a brief period to give you time to familiarize yourselfwith the new one. To use the original console, choose Encryption Keys in the IAM console or goto https://console.aws.amazon.com/iam/home?#/encryptionKeys. Please share your feedback bychoosing Feedback in either console or in the lower-right corner of this page.

103

Page 111: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorPara identificar o valor da propriedade

Origin de CMKs (KMS API)

Para identificar o valor da propriedade Origin de CMKs (new console)

1. Abra o console do IAM em https://console.aws.amazon.com/iam/.2. No painel de navegação à esquerda, escolha Encryption keys.3. Na Region, selecione a região da AWS apropriada. Não use o seletor de regiões na barra de

navegação (canto superior direito).4. Use uma das seguintes técnicas para visualizar a propriedade Origin de suas CMKs.

• Para adicionar uma coluna Origin (Origem) à sua tabela da CMK, no canto superior direito, escolhao ícone Settings (Configurações). Selecione Origin e clique em Confirm (Confirmar). A coluna Origin(Origem) facilita a identificação das CMKs com um valor de propriedade EXTERNAL da origem.

• Para encontrar o valor da propriedade Origin de uma determinada CMK, escolha o alias ouID de chave da CMK. O valor de propriedade Origin é exibido na seção General configuration(Configurações gerais).

Para identificar o valor da propriedade Origin de CMKs (original console)

1. Abra a seção Chaves de criptografia do console do AWS Identity and Access Management (IAM) nohttps://console.aws.amazon.com/iam/home#encryptionKeys.

2. Em Region, escolha a região da AWS apropriada. Não use o seletor de regiões na barra denavegação (canto superior direito).

3. Use uma das seguintes técnicas para visualizar a propriedade Origin de suas CMKs.

• Para adicionar uma coluna Origin (Origem) à sua tabela da CMK, no canto superior direito, escolhao ícone Settings (Configurações). Selecione Origin (Origem) e depois Close (Fechar). A colunaOrigin (Origem) facilita a identificação das CMKs com um valor de propriedade EXTERNAL daorigem.

• Para encontrar o valor da propriedade Origin de uma determinada CMK, escolha o alias daCMK. Se a origem for externa, o valor da propriedade Origin será exibido na seção Key Material(Material de chaves).

Para identificar o valor da propriedade Origin deCMKs (KMS API)Utilize a operação DescribeKey. A resposta inclui a propriedade Origin da CMK, conforme mostrado noexemplo a seguir.

$ aws kms describe-key --key-id 1234abcd-12ab-34cd-56ef-1234567890ab{ "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Origin": "EXTERNAL", "KeyManager": "CUSTOMER", "ValidTo": 1549224000.0, "Enabled": true, "AWSAccountId": "111122223333", "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": 1517867689.949, "KeyUsage": "ENCRYPT_DECRYPT", "Description": "example-key", "KeyState": "Enabled", "ExpirationModel": "KEY_MATERIAL_EXPIRES"}

104

Page 112: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorEtapa 1: criar uma CMK sem material de chaves

Importação do material de chaves - Etapa 1: Criaruma chave mestra de cliente (CMK) do AWS KMSsem material de chaves

Por padrão, o AWS KMS cria o material de chaves quando você cria uma chave mestra de cliente (CMK).Para importar seu próprio material de chaves em vez disso, comece criando uma CMK sem material dechaves. Você distingue entre esses dois tipos de CMK pela origem da CMK. Quando o AWS KMS cria omaterial de chaves para você, a origem da CMK é AWS_KMS. Quando você cria uma CMK sem materialde chaves, a origem da CMK é EXTERNAL, o que indica que o material de chaves foi gerado fora do AWSKMS.

Uma CMK sem material de chaves está no estado importação pendente e não está disponível parauso. Para usá-la, você deve importar o material de chaves conforme explicado posteriormente. Quandovocê importa o material de chaves, o estado de chave da CMK muda para habilitado. Para obter maisinformações sobre esse o estado de chave, consulte Como o estado da chave afeta o uso de uma chavemestra de cliente (p. 175).

Você pode usar o Console de gerenciamento da AWS ou a API do AWS KMS para criar uma CMK semmaterial de chaves. Você pode usar a API diretamente, fazendo solicitações HTTP ou por meio dos SDKsda AWS ou das ferramentas da linha de comando.

Tópicos• Como criar uma CMK sem material de chaves (Console) (p. 105)• Como criar uma CMK sem material de chaves (KMS API) (p. 108)

Como criar uma CMK sem material de chaves(Console)Você pode usar o Console de gerenciamento da AWS para criar uma CMK sem material de chaves. Antesde fazer isso, você pode configurar o console para exibir a coluna Origin na lista de CMKs. As chavesimportadas têm um valor Origin External.

Você precisa criar uma CMK para o material de chaves importadas somente uma vez. Para reimportar omesmo material de chaves para uma CMK existente, consulte Etapa 2: Fazer download da chave pública edo token de importação (p. 108).

Note

AWS KMS recently introduced a new console that makes it easier for you to organize and manageyour KMS resources. It is available in all AWS Regions that AWS KMS supports except for AWSGovCloud (US-East) and AWS GovCloud (US-West). We encourage you to try the new AWS KMSconsole at https://console.aws.amazon.com/kms.The original console will remain available for a brief period to give you time to familiarize yourselfwith the new one. To use the original console, choose Encryption Keys in the IAM console or goto https://console.aws.amazon.com/iam/home?#/encryptionKeys. Please share your feedback bychoosing Feedback in either console or in the lower-right corner of this page.

Como criar uma CMK sem material de chaves (new console)

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS Key Management Service(AWS KMS) em https://console.aws.amazon.com/kms.

105

Page 113: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo criar uma CMK sem material de chaves (Console)

2. To change the AWS Region, use the Region selector in the upper-right corner of the page.3. In the navigation pane, choose Customer managed keys.4. Escolha Criar chave.5. Digite um alias e (opcionalmente) uma descrição para a CMK.

Escolha Next.6. Escolha Advanced options (Opções avançadas).7. Para Key material origin (Origem do material de chaves), escolha External (Externa).

Em seguida, marque a caixa de seleção ao lado de Entendo as implicações de segurança,disponibilidade e durabilidade do uso de uma chave importada para indicar que você compreendeas implicações do uso de material de chaves importadas. Para ler sobre essas implicações, escolhasecurity, availability, and durability implications (implicações de segurança, disponibilidade edurabilidade).

Escolha Next.8. (Optional). Na página Add tags (Adicionar tags), adicione tags que identificam ou categorizam sua

CMK.

Escolha Next.9. Na seção Key administrators (Administradores de chaves), selecione os usuários e as funções do IAM

que podem gerenciar a CMK. Para obter mais informações, consulte Permite que os administradoresde chaves administrem a CMK (p. 39).

Note

As políticas do IAM podem conceder a outros usuários e funções do IAM permissão paragerenciar a CMK.

10. (Opcional) Para impedir que os usuários e funções selecionados do IAM excluam essa CMK, na seçãoKey deletion (Exclusão de chaves), na parte inferior da página, desmarque a caixa de seleção Allowkey administrators to delete this key (Permitir que administradores de chaves excluam esta chave).

Escolha Next.11. Na seção This account (Esta conta), selecione os usuários e as funções do IAM nessa conta da AWS

que podem usar a CMK nas operações de criptografia. Para obter mais informações, consulte Permiteque os usuários de chaves usem a CMK (p. 41).

Note

As políticas do IAM podem conceder a outros usuários e funções do IAM permissão para usara CMK.

12. (Opcional) Você pode permitir que outras contas da AWS usem essa CMK para operações decriptografia. Para fazer isso, na seção Other AWS accounts (Outras contas da AWS) na parte inferiorda página, escolha Add another AWS account (Adicionar outra conta da AWS) e insira o número deidentificação da conta da AWS de uma conta externa. Para adicionar várias contas externas, repitaessa etapa.

Note

Para permitir que os principais de contas externas usem a CMK, Administradores da contaexterna devem criar políticas do IAM que fornecem essas permissões. Para obter maisinformações, consulte Permitir que contas externas da AWS acessem uma CMK (p. 51).

Escolha Next.13. Na página Review and edit key policy (Revisar e editar política de chaves), revise e edite o documento

de política para a nova CMK. Quando terminar, escolha Concluir.106

Page 114: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo criar uma CMK sem material de chaves (Console)

Se a operação for bem-sucedida, você terá criado uma CMK sem material de chaves. Seu status estácomo Pending Acceptance (Aceitação pendente). Para continuar o processo agora, consulte Fazerdownload da chave pública e do token de importação (Console) (p. 110). Para continuar o processoposteriormente, escolha Cancel (Cancelar).

Próximo: Etapa 2: Fazer download da chave pública e do token de importação (p. 108).

Como criar uma CMK sem material de chaves (original console)

1. Sign in to the Console de gerenciamento da AWS and go to https://console.aws.amazon.com/iam/home?#/encryptionKeys.

2. For Region, choose the appropriate AWS Region. Do not use the region selector in the navigation bar(top right corner).

3. Escolha Criar chave.4. Digite um alias e (opcionalmente) uma descrição para a CMK.5. Escolha Opções avançadas.6. Para Origem do material de chaves, escolha Externa. Em seguida, marque a caixa de seleção

ao lado de Entendo as implicações de segurança, disponibilidade e durabilidade do uso de umachave importada para indicar que você compreende as implicações do uso de material de chavesimportadas. Para ler sobre essas implicações, escolha security, availability, and durability implications(implicações de segurança, disponibilidade e durabilidade).

Escolha Next Step.7. (Optional). Na página Add Tags (Adicionar tags), adicione tags que identificam ou categorizam sua

CMK.

Escolha Next Step.8. Selecione quais usuários e funções do IAM podem administrar a CMK. Para obter mais informações,

consulte Permite que os administradores de chaves administrem a CMK (p. 39).

Note

Todos os usuários e as funções do IAM com as políticas do IAM que especificam aspermissões apropriadas também podem administrar a CMK.

Escolha Next Step.9. Selecione quais usuários e funções do IAM podem usar a CMK para criptografar e descriptografar

os dados. Para obter mais informações, consulte Permite que os usuários de chaves usem aCMK (p. 41).

Note

Todos os usuários e as funções do IAM com as políticas do IAM que especificam aspermissões apropriadas também usam a CMK.

10. (Opcional) Na parte inferior da página, você pode conceder permissões para outras contas da AWSusar a CMK para criptografar e descriptografar os dados. Escolha Adicionar uma conta externa e,em seguida, digite o ID da conta da AWS da conta à qual as permissões serão concedidas. Repitaconforme necessário para adicionar mais de uma conta externa.

Note

Os administradores das contas externas também devem permitir o acesso à CMK, criandopolíticas do IAM para seus usuários. Para obter mais informações, consulte Permitir quecontas externas da AWS acessem uma CMK (p. 51).

Escolha Next Step.

107

Page 115: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo criar uma CMK sem material de chaves (KMS API)

11. Escolha Concluir para criar a CMK.

Depois que você concluir esta etapa, o console exibirá o assistente de Material de chaves importadas.Para continuar o processo agora, consulte Fazer download da chave pública e do token de importação(Console) (p. 110).

Caso contrário, escolha Ignorar e fazer isso mais tarde. Sua nova CMK permanece no estadoImportação pendente até que você importe o material de chaves, como descrito nas etapas a seguir.

Vá para Etapa 2: Fazer download da chave pública e do token de importação (p. 108).

Como criar uma CMK sem material de chaves (KMSAPI)Para usar a API do AWS KMS a fim de criar uma CMK sem material de chaves, envie uma solicitaçãoCreateKey com o parâmetro Origin definido como EXTERNAL. O exemplo a seguir mostra como fazerisso com a AWS Command Line Interface (AWS CLI).

$ aws kms create-key --origin EXTERNAL

Quando o comando é bem-sucedido, a saída é semelhante à seguinte. A Origin da CMK é EXTERNAL eseu KeyState é PendingImport.

{ "KeyMetadata": { "Origin": "EXTERNAL", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Description": "", "Enabled": false, "KeyUsage": "ENCRYPT_DECRYPT", "KeyState": "PendingImport", "CreationDate": 1470811233.761, "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "AWSAccountId": "111122223333" }}

Copie o ID da chave da CMK da saída do comando para usar em etapas posteriores e, em seguida,prossiga para Etapa 2: Fazer download da chave pública e do token de importação (p. 108).

Importação do material de chaves - Etapa 2:Fazer download da chave pública e do token deimportação

Depois de criar uma chave mestra de cliente (CMK) sem material de chaves (p. 105), faça download deuma chave pública e de um token de importação para essa CMK. Você precisa desses itens para importarseu material de chaves. Você pode fazer download de ambos os itens em uma só etapa usando o recursoConsole de gerenciamento da AWS ou a API do AWS KMS.

Faça download desses itens também para reimportar o material de chaves para uma CMK. Você podefazer isso para alternar manualmente o material de chaves (p. 99), alterar o tempo de expiração domaterial de chaves ou restaurar uma CMK depois que o material de chaves expirou ou foi excluído.

108

Page 116: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorEtapa 2: Fazer download da chavepública e do token de importação

Uso da chave pública

Ao importar o material de chaves, não faça upload do material de chaves bruto para o AWS KMS.Primeiro, criptografe o material de chaves com a chave pública da qual você fizer download nestaetapa e, depois, faça upload do material de chaves criptografado para o AWS KMS. Quando oAWS KMS recebe o material de chaves criptografado, usa a chave privada correspondente paradescriptografá-lo. A chave pública que você recebe do AWS KMS é uma chave pública RSA de 2048bits e é sempre exclusiva da sua conta da AWS.

Uso do token de importação

O token de importação contém metadados para garantir que o seu material de chaves seja importadocorretamente. Ao fazer upload do material de chaves criptografado para o AWS KMS, você deve fazerupload do mesmo token de importação obtido por download nesta etapa.

Selecionar um algoritmo de empacotamento

Para proteger o material de chaves durante a importação, você o criptografa usando uma chave deempacotamento e um algoritmo de empacotamento. Normalmente, você escolhe um algoritmo queé compatível com o módulo de segurança de hardware (HSM) ou com o sistema de gerenciamentode chaves que protege o material de chaves. Use o esquema de criptografia RSA PKCS # 1 comuma das três opções de preenchimento, representado pelas opções a seguir. Essas opções estãolistadas na ordem de preferência da AWS. Os detalhes técnicos dos esquemas representados poressas opções são explicados na seção 7 do padrão PKCS # 1 Versão 2.1.• RSAES_OAEP_SHA_256 – o algoritmo de criptografia RSA com Preenchimento da criptografia

assimétrica ideal (OAEP) e função de hash SHA-256.• RSAES_OAEP_SHA_1 – o algoritmo de criptografia RSA com Preenchimento da criptografia

assimétrica ideal (OAEP) e função de hash SHA-1.• RSAES_PKCS1_V1_5 – o algoritmo de criptografia RSA com o formato de preenchimento definido

no PKCS #1 Versão 1.5.

Note

Se você pretende testar o exemplo de prova de conceito Criptografar material de chaves comOpenSSL (p. 113) na Etapa 3 (p. 113), use o RSAES_OAEP_SHA_1.

Se o HSM ou o sistema de gerenciamento de chaves oferece suporte a isso, recomendamos ouso do RSAES_OAEP_SHA_256 para criptografar o material de chave. Se essa opção não estiverdisponível, use o RSAES_OAEP_SHA_1. Se nenhuma das opções OAEP estiver disponível, use oRSAES_PKCS1_V1_5. Para informações sobre como criptografar o material de chaves, consulte adocumentação do módulo de segurança de hardware ou do sistema de gerenciamento de chaves queprotege o material de chaves.

A chave pública e o token de importação são válidos por 24 horas. Se você não usá-los para importarmaterial de chaves em até 24 horas após o download, será necessário fazer download novamente.

Você pode usar o Console de gerenciamento da AWS ou a API do AWS KMS para fazer download dachave pública e do token de importação. Você pode usar a API diretamente, fazendo solicitações HTTP oupor meio dos SDKs da AWS ou das ferramentas da linha de comando.

Tópicos• Fazer download da chave pública e do token de importação (Console) (p. 110)• Fazer download da chave pública e do token de importação (KMS API) (p. 112)

109

Page 117: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorFazer download da chave pública edo token de importação (Console)

Fazer download da chave pública e do token deimportação (Console)Você pode usar o Console de gerenciamento da AWS para fazer download da chave pública e do token deimportação.

Note

AWS KMS recently introduced a new console that makes it easier for you to organize and manageyour KMS resources. It is available in all AWS Regions that AWS KMS supports except for AWSGovCloud (US-East) and AWS GovCloud (US-West). We encourage you to try the new AWS KMSconsole at https://console.aws.amazon.com/kms.The original console will remain available for a brief period to give you time to familiarize yourselfwith the new one. To use the original console, choose Encryption Keys in the IAM console or goto https://console.aws.amazon.com/iam/home?#/encryptionKeys. Please share your feedback bychoosing Feedback in either console or in the lower-right corner of this page.

Fazer download da chave pública e do token de importação (new console)

1. Se você acabou de concluir as etapas para criar uma CMK sem material de chaves (p. 105) e estiverna página Download wrapping key and import token (Fazer download da chave de empacotamento etoken de importação), vá para Step 7.

2. Faça login no Console de gerenciamento da AWS e abra o console do AWS Key Management Service(AWS KMS) em https://console.aws.amazon.com/kms.

3. To change the AWS Region, use the Region selector in the upper-right corner of the page.4. In the navigation pane, choose Customer managed keys.

Tip

Você pode importar o material de chaves para uma CMK apenas quando sua Origin forEXTERNAL. Isso indica que a CMK foi criado sem material de chaves. Para adicionara coluna Origin à sua tabela, no canto superior direito da página, escolha o ícone de

configurações( ). Ative Origin, em seguida, escolha Confirm (Confirmar).5. Escolha o alias ou ID de chave da CMK com importação pendente.6. Em Key material (Material de chaves), escolha Download wrapping key and import token (Fazer

download da chave de empacotamento e token de importação).

A seção Key material (Material de chaves) é exibida apenas quando a CMK é criada sem material dechaves. Essas CMKs têm um valor Origin EXTERNAL. Não é possível importar o material de chavespara uma CMK com nenhum outro valor Origin. Para obter informações sobre como criar CMKs com omaterial de chaves importadas, consulte Importação do material de chaves no AWS Key ManagementService (AWS KMS) (p. 101).

7. Para Select wrapping algorithm, escolha a opção que você usará para criptografar o material dechaves. Para obter mais informações sobre as opções, consulte Select a Wrapping Algorithm(Selecionar um algoritmo de empacotamento) na seção anterior.

Se você pretende testar o exemplo de prova de conceito Criptografar material de chaves comOpenSSL (p. 113) na Etapa 3 (p. 113), escolha RSAES_OAEP_SHA_1.

8. Escolha Download wrapping key and import token e salve o arquivo.

Se houver a opção Next (Avançar), para continuar o processo agora, escolha Next (Avançar); paracontinuar posteriormente, escolha Cancel (Cancelar). Caso contrário, para fechar a janela, escolhaCancel (Cancelar) ou clique no X.

9. Descompacte o arquivo .zip que você salvou na etapa anterior (ImportParameters.zip).

110

Page 118: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorFazer download da chave pública edo token de importação (Console)

A pasta contém os seguintes arquivos:

• A chave de empacotamento (chave pública), em um arquivo chamadowrappingKey_CMK_key_ID_timestamp (por exemplo, wrappingKey_f44c4e20-f83c-48f4-adc6-a1ef38829760_0809092909). Esta é uma chave pública RSA 2048 bits.

• O token de importação, em um arquivo chamado importToken_CMK_key_ID_timestamp (porexemplo, importToken_f44c4e20-f83c-48f4-adc6-a1ef38829760_0809092909).

• Um arquivo de texto chamado README_CMK_key_ID_timestamp.txt (por exemplo,README_f44c4e20-f83c-48f4-adc6-a1ef38829760_0809092909.txt). Este arquivocontém informações sobre a chave de encapsulamento (chave pública), o algoritmo deencapsulamento a ser usado para criptografar o material de chaves e a data e hora em que a chavede encapsulamento (chave pública) e token de importação expiram.

10. Para continuar o processo, consulte criptografe o material de chaves (p. 113).

Fazer download da chave pública e do token de importação (original console)

Você pode usar o Console de gerenciamento da AWS para fazer download da chave pública e do token deimportação. Se você acabou de concluir as etapas para criar uma CMK sem material de chaves (p. 105),vá para Step 6.

1. Se você acabou de concluir as etapas para criar uma CMK sem material de chaves (p. 105), vá paraStep 6.

2. Sign in to the Console de gerenciamento da AWS and go to https://console.aws.amazon.com/iam/home?#/encryptionKeys.

3. For Region, choose the appropriate AWS Region. Do not use the region selector in the navigation bar(top right corner).

4. Escolha o alias da CMK para a qual você está fazendo download da chave pública e do token deimportação.

Tip

Você pode importar o material de chaves para uma CMK apenas quando sua Origin forEXTERNAL. Isso indica que a CMK foi criado sem material de chaves. Para adicionara coluna Origin à sua tabela, no canto superior direito da página, escolha o ícone de

configurações( ).5. Na seção Material de chaves da página, escolha Download wrapping key and import token.

A seção Key material (Material de chaves) é exibida apenas quando a CMK é criada sem material dechaves. Essas CMKs têm um valor Origin EXTERNAL. Não é possível importar o material de chavespara uma CMK com nenhum outro valor Origin. Para obter informações sobre como criar CMKs com omaterial de chaves importadas, consulte Importação do material de chaves no AWS Key ManagementService (AWS KMS) (p. 101).

6. Para Select wrapping algorithm, escolha a opção que você usará para criptografar o material dechaves. Consulte a seção anterior para mais informações sobre as opções.

Se você pretende testar o exemplo de prova de conceito Criptografar material de chaves comOpenSSL (p. 113) na Etapa 3 (p. 113), escolha RSAES_OAEP_SHA_1.

7. Escolha Download wrapping key and import token e salve o arquivo.8. Descompacte o arquivo .zip que você salvou na etapa anterior (ImportParameters.zip).

A pasta contém os seguintes arquivos:

111

Page 119: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorFazer download da chave pública edo token de importação (KMS API)

• A chave de empacotamento (chave pública), em um arquivo chamadowrappingKey_CMK_key_ID_timestamp (por exemplo, wrappingKey_f44c4e20-f83c-48f4-adc6-a1ef38829760_0809092909). Esta é uma chave pública RSA 2048 bits.

• O token de importação, em um arquivo chamado importToken_CMK_key_ID_timestamp (porexemplo, importToken_f44c4e20-f83c-48f4-adc6-a1ef38829760_0809092909).

• Um arquivo de texto chamado README_CMK_key_ID_timestamp.txt (por exemplo,README_f44c4e20-f83c-48f4-adc6-a1ef38829760_0809092909.txt). Este arquivocontém informações sobre a chave de encapsulamento (chave pública), o algoritmo deencapsulamento a ser usado para criptografar o material de chaves e a data e hora em que a chavede encapsulamento (chave pública) e token de importação expiram.

Para continuar o processo agora, vá para a próxima etapa. Caso contrário, escolha Skip and do thislater e vá para Etapa 3: Criptografar o material de chaves (p. 113).

9. (Opcional) Para continuar o processo agora, criptografe o material de chaves (p. 113). Depois, sigaum destes procedimentos:

• Se você estiver no assistente Material de chaves importadas, marque a caixa de seleção Estoupronto para fazer upload do meu material de chaves exportados e escolha Próximo.

• Se você estiver na página de detalhes de chaves, escolha Upload key material.

Depois de concluir esta etapa, vá para Etapa 3: Criptografar o material de chaves (p. 113).

Fazer download da chave pública e do token deimportação (KMS API)Para usar a API do AWS KMS para fazer download da chave pública e do token de importação, envieuma solicitação GetParametersForImport que especifica a CMK para a qual você está fazendo downloaddesses itens. O exemplo a seguir mostra como fazer isso com a AWS CLI.

Este exemplo especifica RSAES_OAEP_SHA_1 como a opção de criptografia. Para especificar uma opçãodiferente, substitua RSAES_OAEP_SHA_1 por RSAES_OAEP_SHA_256 ou RSAES_PKCS1_V1_5. Substitua1234abcd-12ab-34cd-56ef-1234567890ab pelo ID de chave da CMK para a qual é feito download dachave pública e do token de importação. Você pode usar o ID de chave ou o Nome de recurso da Amazon(ARN) da CMK, mas não pode usar um alias para essa operação.

Note

Se você pretende testar o exemplo de prova de conceito Criptografar material de chaves comOpenSSL (p. 113) na Etapa 3 (p. 113), especifique RSAES_OAEP_SHA_1.

$ aws kms get-parameters-for-import --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --wrapping-algorithm RSAES_OAEP_SHA_1 \ --wrapping-key-spec RSA_2048

Quando o comando é bem-sucedido, a saída é semelhante à seguinte:

{ "ParametersValidTo": 1470933314.949, "PublicKey": "public key base64 encoded data", "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "ImportToken": "import token base64 encoded data"}

112

Page 120: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorEtapa 3: Criptografar o material de chaves

Quando você receber essa saída, salve a chave pública e o token de importação codificados com base64em arquivos separados. Em seguida, decodifique cada arquivo base64 em dados binários e salve osdados binários em novos arquivos. Assim, esses itens são preparados para as etapas posteriores. Veja oexemplo a seguir.

Para preparar a chave pública e o token de importação para as etapas posteriores

1. Copie os dados codificados em base64 da chave pública (representados pelos dados codificadosem base64 da chave pública no exemplo de saída), cole-os em um novo arquivo e salve oarquivo. Dê ao arquivo um nome descritivo, por exemplo PublicKey.b64.

2. Use o OpenSSL para decodificar o conteúdo do arquivo base64 e salve os dados decodificadosem um novo arquivo. O exemplo a seguir decodifica os dados no arquivo que você salvou na etapaanterior (PublicKey.b64) e salva a saída em um novo arquivo chamado PublicKey.bin.

$ openssl enc -d -base64 -A -in PublicKey.b64 -out PublicKey.bin

Repita essas duas etapas para o token de importação e, em seguida, vá para Etapa 3: Criptografar omaterial de chaves (p. 113).

Como importar o material de chaves - Etapa 3:Criptografar o material de chaves

Depois de fazer download da chave pública e importar o token (p. 108), use a chave pública paracriptografar seu material de chaves. O material de chaves deve estar em formato binário.

Geralmente, você criptografa o material de chaves ao exportá-lo do HSM (módulo de segurança dehardware) ou do sistema de gerenciamento de chaves. Para obter informações sobre como exportarmaterial de chaves em formato binário, consulte a documentação do HSM ou do sistema de gerenciamentode chaves. Você também pode consultar a seção a seguir, que fornece uma demonstração da prova deconceito usando OpenSSL.

Ao criptografar o material de chaves, use o esquema de criptografia com a opção de preenchimentoque você especificou quando fez download da chave pública, e importe o token (p. 108)(RSAES_OAEP_SHA_256, RSAES_OAEP_SHA_1 ou RSAES_PKCS1_V1_5).

Exemplo: Criptografar material de chaves comOpenSSLO exemplo a seguir demonstra como usar o OpenSSL para gerar uma chave simétrica de 256 bits e, emseguida, criptografar esse material de chaves a fim de importá-lo para uma chave mestra de cliente doKMS (CMK).

Important

Este exemplo é apenas uma demonstração da prova de conceito. Para sistemas de produção,use um método mais seguro (tal como um HSM ou sistema de gerenciamento de chavescomercial) para gerar e armazenar seu material de chaves.O algoritmo de criptografia RSAES_OAEP_SHA_1 funciona melhor com este exemplo. Antesde executar o exemplo, certifique-se de ter usado RSAES_OAEP_SHA_1 para o algoritmo deempacotamento na Etapa 2 (p. 108). Se necessário, repita a etapa para fazer download, importea chave pública e o token.

113

Page 121: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorEtapa 4: Importar o material de chaves

Para usar o OpenSSL para gerar material de chaves binário e criptografá-lo a fim de importá-lopara o AWS KMS

1. Use o comando a seguir para gerar uma chave simétrica de 256 bits e salve-a em um arquivochamado PlaintextKeyMaterial.bin.

$ openssl rand -out PlaintextKeyMaterial.bin 32

2. Use o comando a seguir para criptografar o material de chaves com a chave pública que vocêbaixou anteriormente (consulte Fazer download da chave pública e do token de importação (KMSAPI) (p. 112)) e salve-o em um arquivo chamado EncryptedKeyMaterial.bin. SubstituaPublicKey.bin> pelo nome do arquivo que contém a chave pública. Se você fez download dachave pública do console, esse arquivo é chamado wrappingKey_CMK_key_ID_timestamp (porexemplo, wrappingKey_f44c4e20-f83c-48f4-adc6-a1ef38829760_0809092909).

$ openssl rsautl -encrypt \ -in PlaintextKeyMaterial.bin \ -oaep \ -inkey PublicKey.bin \ -keyform DER \ -pubin \ -out EncryptedKeyMaterial.bin

Vá para Etapa 4: Importar o material de chaves (p. 114).

Importação do material de chaves - Etapa 4:Importar o material de chaves

Depois de criptografar o material de chaves (p. 113), você pode importar o material de chaves parauso com uma chave mestra de cliente (CMK) do AWS KMS. Para importar o material de chaves, vocêfaz upload do material de chaves criptografado de Etapa 3: Criptografar o material de chaves (p. 113)e o token de importação que você baixou em Etapa 2: Fazer download da chave pública e do token deimportação (p. 108). Você deve importar o material de chaves para a mesma CMK que especificouquando fez download da chave pública e do token de importação.

Ao importar material de chave, você pode opcionalmente especificar uma hora na qual o material dechaves expira. Quando o material de chave expirar, o AWS KMS exclui o material de chave e a CMK torna-se inutilizável. Para usar a CMK novamente, você deverá reimportar o material de chave.

Depois da importação bem-sucedida do material de chaves, o estado de chave da CMK muda parahabilitado, e você pode usar a CMK.

Você pode usar o Console de gerenciamento da AWS ou a API do AWS KMS para importar o material dechaves. Você pode usar a API diretamente, fazendo solicitações HTTP ou por meio dos SDKs da AWS oudas ferramentas da linha de comando.

Tópicos• Importar material de chaves (Console) (p. 114)• Importar material de chaves (KMS API) (p. 116)

Importar material de chaves (Console)Você pode usar o Console de gerenciamento da AWS para importar o material de chaves.

114

Page 122: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorImportar material de chaves (Console)

Note

AWS KMS recently introduced a new console that makes it easier for you to organize and manageyour KMS resources. It is available in all AWS Regions that AWS KMS supports except for AWSGovCloud (US-East) and AWS GovCloud (US-West). We encourage you to try the new AWS KMSconsole at https://console.aws.amazon.com/kms.The original console will remain available for a brief period to give you time to familiarize yourselfwith the new one. To use the original console, choose Encryption Keys in the IAM console or goto https://console.aws.amazon.com/iam/home?#/encryptionKeys. Please share your feedback bychoosing Feedback in either console or in the lower-right corner of this page.

Importar material de chaves (new console)

1. Se você estiver na página Download wrapping key and import token (Fazer download da chave deempacotamento e token de importação), avance para Step 7.

2. Faça login no Console de gerenciamento da AWS e abra o console do AWS Key Management Service(AWS KMS) em https://console.aws.amazon.com/kms.

3. To change the AWS Region, use the Region selector in the upper-right corner of the page.4. In the navigation pane, choose Customer managed keys.5. Escolha o alias ou ID de chave da CMK para o qual você baixou a chave pública e o token de

importação.6. Na seção Key Material (Material de chaves), escolha Upload key material (Fazer upload do material de

chaves).

A seção Key material (Material de chaves) é exibida apenas quando a CMK é criada sem material dechaves. Essas CMKs têm um valor Origin EXTERNAL. Não é possível importar o material de chavespara uma CMK com nenhum outro valor Origin. Para obter informações sobre como criar CMKs com omaterial de chaves importadas, consulte Importação do material de chaves no AWS Key ManagementService (AWS KMS) (p. 101).

7. Em Encrypted key material (Material de chaves criptografado), escolha Upload file (Fazer uploadde arquivo). Em seguida, faça upload do arquivo que contém o material de chaves encapsulado(criptografado).

8. Em Import token (Importar token), escolha Upload file (Fazer upload). Faça upload do arquivo quecontém o token de importação obtido por download (p. 110).

9. Em Choose an expiration option (Escolher uma opção de expiração), determine se o material dechaves expira. Para definir uma data e hora de expiração, escolha Key material expires (O material dechaves expira), e use o calendário para selecionar uma data e hora.

10. Escolha Concluir ou Fazer upload do material de chaves.

Importar material de chaves (original console)

1. Se você acabou de concluir a etapa final opcional de fazer download da chave pública e do token deimportação com o console (p. 110), vá para Step 6.

2. Sign in to the Console de gerenciamento da AWS and go to https://console.aws.amazon.com/iam/home?#/encryptionKeys.

3. For Region, choose the appropriate AWS Region. Do not use the region selector in the navigation bar(top right corner).

4. Escolha o alias da CMK para o qual você baixou a chave pública e o token de importação.5. Na seção Key Material (Material de chaves), escolha Upload key material (Fazer upload do material de

chaves).

A seção Key material (Material de chaves) é exibida apenas quando a CMK é criada sem material dechaves. Essas CMKs têm um valor Origin EXTERNAL. Não é possível importar o material de chaves

115

Page 123: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorImportar material de chaves (KMS API)

para uma CMK com nenhum outro valor Origin. Para obter informações sobre como criar CMKs com omaterial de chaves importadas, consulte Importação do material de chaves no AWS Key ManagementService (AWS KMS) (p. 101).

6. Na seção Especificar detalhes do material de chaves, para Material de chaves criptografado, escolhao arquivo que contém seu material de chaves criptografado. Para Token de importação, escolha oarquivo que contém o token de importação que você baixou anteriormente (p. 110).

7. Na seção Escolher uma opção de expiração, escolha se o material de chaves expira. Se vocêescolher a expiração, digite uma data e uma hora nas caixas correspondentes.

8. Selecione Upload key material (Fazer upload do material de chaves).

Para fechar a janela, escolha Cancel (Cancelar).

Importar material de chaves (KMS API)Para usar a API do AWS KMS para importar o material de chaves, envie uma solicitaçãoImportKeyMaterial. O exemplo a seguir mostra como fazer isso com a AWS CLI.

Este exemplo especifica um tempo de expiração para o material de chaves. Para importar o material dechaves sem expiração, substitua KEY_MATERIAL_EXPIRES por KEY_MATERIAL_DOES_NOT_EXPIRE eomita o parâmetro --valid-to.

Para usar este exemplo:

1. Substitua 1234abcd-12ab-34cd-56ef-1234567890ab pelo ID de chave da CMK que você usouquando baixou a chave pública e o token de importação. Para identificar a CMK, use seu ID ou ARN dechave. Você não pode usar um alias para esta operação.

2. Substitua EncryptedKeyMaterial.bin pelo nome do arquivo que contém o material de chavescriptografado.

3. Substitua ImportToken.bin pelo nome do arquivo que contém o token de importação.

$ aws kms import-key-material --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \ --encrypted-key-material fileb://EncryptedKeyMaterial.bin \ --import-token fileb://ImportToken.bin \ --expiration-model KEY_MATERIAL_EXPIRES \ --valid-to 2016-11-08T12:00:00-08:00

Como excluir material de chaves importadasAo importar o material de chave, você pode especificar uma data de expiração. Quando o material dechave expira, o AWS KMS exclui o material de chaves e a chave mestra de cliente (CMK) torna-seinutilizável. Você também pode excluir o material de chaves sob demanda. Se você esperar que o materialde chaves expire ou excluí-lo manualmente, o efeito é o mesmo. AWS KMS exclui o material de chaves, oestado de chave da CMK (p. 175) muda para importação pendente, e a CMK fica inutilizável. Para usar aCMK novamente, você deverá reimportar o mesmo material de chaves.

A exclusão do material de chave afeta a CMK imediatamente, mas você pode reverter a exclusão domaterial de chave reimportando o mesmo material de chave para a CMK. Entretanto, a exclusão deuma CMK é irreversível. Quando você programa a exclusão de chaves (p. 119) e o período de esperanecessário expira, o AWS KMS exclui o material de chave e todos os metadados associados à CMK.

Você pode usar o Console de gerenciamento da AWS ou a API do AWS KMS para excluir o material dechaves. Você pode usar a API diretamente, fazendo solicitações HTTP ou por meio dos SDKs da AWS oudas ferramentas da linha de comando.

116

Page 124: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo a exclusão do material de chaves afetaos serviços da AWS integrados ao AWS KMS

Tópicos• Como a exclusão do material de chaves afeta os serviços da AWS integrados ao AWS KMS (p. 117)• Excluir o material de chaves (Console) (p. 117)• Excluir o material de chaves (KMS API) (p. 118)

Como a exclusão do material de chaves afeta osserviços da AWS integrados ao AWS KMSQuando você exclui o material de chaves, a CMK se torna inutilizável imediatamente. No entanto, aschaves de dados (p. 4) usadas pelos serviços da AWS não são afetadas de imediato. Isso significa quea exclusão do material de chaves pode não afetar imediatamente todos os dados e recursos da AWSprotegidos pela CMK, embora eles sejam afetados eventualmente.

Vários serviços da AWS se integram ao AWS KMS para proteger seus dados. Alguns desses serviços,como Amazon EBS e Amazon Redshift, usam uma chave mestra de cliente (p. 2) (CMK) no AWS KMSpara gerar uma chave de dados (p. 4) e, em seguida, usam a chave de dados para criptografar seusdados. Essas chaves de dados de texto simples persistem na memória, desde que os dados que elasprotegem sejam usados ativamente.

Por exemplo, considere este cenário:

1. Você cria um volume criptografado do EBS e especifica uma CMK com material de chaves importadas.O Amazon EBS pede ao AWS KMS para usar sua CMK a fim de gerar uma chave de dadoscriptografada para o volume. O Amazon EBS armazena a chave de dados criptografada com o volume.

2. Quando você anexa o volume do EBS a uma instância do EC2, o Amazon EC2 pede ao AWS KMS parausar sua CMK para descriptografar a chave de dados criptografada do volume do EBS. O Amazon EC2armazena a chave de dados de texto simples na memória do hipervisor e o usa para criptografar a E/S do disco para o volume do EBS. A chave de dados persiste na memória, enquanto o volume do EBSestá conectado à instância do EC2.

3. Você exclui o material de chave importada da CMK, tornando-o inutilizável. Isso não tem efeito imediatona instância de EC2 ou no volume do EBS. Isso ocorre porque o Amazon EC2 está usando a chavede dados de texto simples, não a CMK, para criptografar toda a E/S do disco enquanto o volume estáanexado à instância.

4. No entanto, quando o volume criptografado do EBS é desanexado da instância do EC2, o AmazonEBS remove a chave de texto simples da memória. Na próxima vez em que o volume do EBS foranexado à instância do EC2, a anexação falhará porque o Amazon EBS não consegue usar a CMK paradescriptografar a chave de dados criptografada do volume. Para usar o volume do EBS novamente,você deverá reimportar o mesmo material de chaves para a CMK.

Excluir o material de chaves (Console)Você pode usar o Console de gerenciamento da AWS para excluir o material de chaves.

Note

AWS KMS recently introduced a new console that makes it easier for you to organize and manageyour KMS resources. It is available in all AWS Regions that AWS KMS supports except for AWSGovCloud (US-East) and AWS GovCloud (US-West). We encourage you to try the new AWS KMSconsole at https://console.aws.amazon.com/kms.The original console will remain available for a brief period to give you time to familiarize yourselfwith the new one. To use the original console, choose Encryption Keys in the IAM console or goto https://console.aws.amazon.com/iam/home?#/encryptionKeys. Please share your feedback bychoosing Feedback in either console or in the lower-right corner of this page.

117

Page 125: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorExcluir o material de chaves (KMS API)

Como excluir o material de chaves (new console)

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS Key Management Service(AWS KMS) em https://console.aws.amazon.com/kms.

2. To change the AWS Region, use the Region selector in the upper-right corner of the page.3. In the navigation pane, choose Customer managed keys.4. Siga um destes procedimentos:

• Marque a caixa de seleção de uma CMK com material de chaves importadas. Escolha Ações dechave, Excluir material de chaves.

• Escolha o alias ou ID de chave de uma CMK com material de chaves importadas. Na seção Materialde chaves da página, escolha Excluir material de chaves.

5. Confirme que você deseja excluir o material de chaves e, em seguida, selecione Excluir material dechaves. O status da CMK, que corresponde ao estado da chave (p. 175), é alterado para Pendingimport (Importação pendente).

Como excluir o material de chaves (original console)

1. Sign in to the Console de gerenciamento da AWS and go to https://console.aws.amazon.com/iam/home?#/encryptionKeys.

2. For Region, choose the appropriate AWS Region. Do not use the region selector in the navigation bar(top right corner).

3. Escolha uma das seguintes opções:

• Marque a caixa de seleção da CMK cujo material de chaves você quer excluir. Escolha Ações dechave, Excluir material de chaves.

• Escolha o alias da CMK cujo material de chaves você quer excluir. Na seção Material de chaves dapágina, escolha Excluir material de chaves.

4. Confirme que você deseja excluir o material de chaves e, em seguida, selecione Excluir material dechaves. O estado de chave (p. 175) das CMKs é alterado para PendingImport.

Excluir o material de chaves (KMS API)Para usar a API do AWS KMS para excluir o material de chaves, envie uma solicitaçãoDeleteImportedKeyMaterial. O exemplo a seguir mostra como fazer isso com a AWS CLI.

Substitua 1234abcd-12ab-34cd-56ef-1234567890ab pelo ID de chave da CMK cujo material dechaves você quer excluir. Você pode usar o ID de chave ou ARN da CMK, mas não é possível usar umalias para essa operação.

$ aws kms delete-imported-key-material --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

118

Page 126: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo funciona a exclusão de CMKs

Exclusão de chaves mestras decliente

A exclusão de uma chave mestra de cliente (CMK) no AWS Key Management Service (AWS KMS) édestrutiva e potencialmente perigosa. Essa ação exclui o material de chaves e todos os metadadosassociados à CMK e é irreversível. Depois que uma CMK é excluída, não é mais possível descriptografaros dados que foram criptografados com essa CMK, o que significa que os dados são irrecuperáveis. Sóexclua uma CMK quando você tiver certeza de que não vai mais precisar dela. Caso não tenha certeza,desative a CMK (p. 30) em vez de excluí-la. Você pode ativar novamente a CMK desativada caso preciseusá-la mais tarde, mas não pode recuperar aquela que foi excluída.

Antes de excluir uma CMK, talvez você queira saber como muitos textos cifrados foram criptografadossob essa CMK. O AWS KMS não armazena essas informações nem qualquer um dos textos cifrados.Para obter essas informações, você deve verificar se já utilizou uma CMK. Para algumas orientações quepossam ajudá-lo nessa questão, vá para Como determinar a utilização passada de uma chave mestra decliente (p. 130).

Você pode optar por excluir uma CMK por um ou mais dos seguintes motivos:

• Para concluir o ciclo de vida da chave das CMKs que não são mais necessárias• Para evitar a sobrecarga de gerenciamento e os custos associados à manutenção de CMKs não usadas• Para reduzir o número de CMKs que contam para o limite (p. 308)

Note

Se você fechar ou excluir sua conta da AWS, suas CMKs se tornarão inacessíveis, e você nãoserá mais cobrado por elas. Você não precisa programar a exclusão de suas CMKs em separadodo fechamento da conta.

Tópicos• Como funciona a exclusão de chaves mestras de cliente (p. 119)• Programação e cancelamento de exclusão de chaves (p. 121)• Adição de permissões para programar e cancelar a exclusão de chaves (p. 123)• Criação de alarme do Amazon CloudWatch para detectar o uso de chave mestra de cliente com

exclusão pendente (p. 126)• Como determinar a utilização passada de uma chave mestra de cliente (p. 130)

Como funciona a exclusão de chaves mestras decliente

Como é destrutivo e potencialmente perigoso excluir uma chave mestra de cliente (CMK), o AWS KMSimpõe um período de espera. Para excluir uma CMK no AWS KMS, programe a exclusão de chaves.Você pode definir o período de espera de 7 dias, no mínimo, até 30 dias, no máximo. O período de esperapadrão é de 30 dias.

Durante o período de espera, o estado de chave e o status da CMK é Pendente de exclusão.

119

Page 127: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo a exclusão de CMKs afetaos serviços integrados da AWS

• Uma CMK que está pendente de exclusão não pode ser usada em nenhuma operação de criptografia.• O AWS KMS não gira as chaves de backup (p. 96) de CMKs pendentes de exclusão.

Após o fim do período de espera, o AWS KMS exclui a CMK e todos os dados do AWS KMS associados aela, além de todos os aliases que apontam para ela.

Quando você programa a exclusão de chaves, o AWS KMS relata a data e hora do fim do período deespera. Essa data e hora é pelo menos o número especificado de dias a partir da programação daexclusão de chaves, mas pode ser até 24 horas mais. Por exemplo, vamos supor que você programea exclusão de chaves e especifique um período de espera de 7 dias. Nesse caso, o final do período deespera não ocorre antes de 7 dias nem após 8 dias a partir do momento da sua solicitação. Você podeconfirmar a data e hora exatas do término do período de espera API do Console de gerenciamento daAWS, AWS CLI ou AWS KMS.

Use o período de espera para garantir que não vai precisar da CMK agora ou no futuro. Você podeconfigurar um alarme do Amazon CloudWatch (p. 126) para avisá-lo se uma pessoa ou aplicativo tentarusar a CMK durante o período de espera. Para recuperar a CMK, basta cancelar a exclusão de chavesantes do término do período de espera. Após o término do período de espera, não será possível cancelar aexclusão de chaves e o AWS KMS excluirá a CMK.

Como a exclusão de chaves mestras de cliente afetaos serviços da AWS integrados ao AWS KMSVários serviços da AWS se integram ao AWS KMS para proteger seus dados. Alguns desses serviços,como Amazon EBS e Amazon Redshift, usam uma chave mestra de cliente (p. 2) (CMK) no AWS KMSpara gerar uma chave de dados (p. 4) e, em seguida, usam a chave de dados para criptografar seusdados. Essas chaves de dados de texto simples persistem na memória, desde que os dados que elasprotegem sejam usados ativamente.

A programação de uma CMK para exclusão a torna inutilizável, mas não impede que o serviço da AWSuse chaves de dados na memória para criptografar e descriptografar seus dados. O serviço não é afetadoenquanto precisar usar a CMK com exclusão pendente ou já excluída.

Por exemplo, considere este cenário:

1. Você cria um volume criptografado do EBS e especifique uma CMK. O Amazon EBS pede ao AWSKMS para usar sua CMK para gerar uma chave de dados criptografada para o volume. O Amazon EBSarmazena a chave de dados criptografada com o volume.

2. Quando você anexa o volume do EBS a uma instância do EC2, o Amazon EC2 pede ao AWS KMS parausar sua CMK para descriptografar a chave de dados criptografada do volume do EBS. O Amazon EC2armazena a chave de dados de texto simples na memória do hipervisor e o usa para criptografar a E/S do disco para o volume do EBS. A chave de dados persiste na memória, enquanto o volume do EBSestá conectado à instância do EC2.

3. Você programa a CMK para exclusão, o que a torna inutilizável. Isso não tem efeito imediato nainstância do EC2 ou no volume do EBS, porque o Amazon EC2 está usando a chave de dados de textosimples e não a CMK para criptografar a E/S do disco e o volume do EBS.

Mesmo quando o horário programado expira e o AWS KMS exclui a CMK, não há nenhum efeitoimediato sobre a instância de EC2 ou o volume do EBS, porque o Amazon EC2 está usando a chave dedados de texto simples, e não a CMK.

4. No entanto, quando o volume criptografado do EBS é desanexado da instância do EC2, o AmazonEBS remove a chave de texto simples da memória. Na próxima vez em que o volume do EBS foranexado à instância do EC2, a anexação falhará porque o Amazon EBS não consegue usar a CMK paradescriptografar a chave de dados criptografada do volume.

120

Page 128: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorProgramação e cancelamento de exclusão de chaves

Programação e cancelamento de exclusão dechaves

Os procedimentos a seguir descrevem como programar e cancelar a exclusão de chaves no AWS KMSusando o Console de gerenciamento da AWS, a AWS CLI, e o AWS SDK for Java.

Warning

A exclusão de uma chave mestra de cliente (CMK) no AWS KMS é destrutiva e potencialmenteperigosa. Prossiga somente quando você tiver certeza de que não vai precisar mais usar a CMKfuturamente. Caso não tenha certeza, desative a CMK (p. 30) em vez de excluí-la.

Para excluir uma CMK, é preciso ter a respectiva permissão. Se você conta apenas com a política dechaves para especificar permissões do AWS KMS, pode ser necessário adicionar mais permissõesantes de excluir a CMK. Para informações sobre como adicionar essas permissões, vá para Adição depermissões para programar e cancelar a exclusão de chaves (p. 123).

Maneiras de programar e cancelar a exclusão de chaves• Programação e cancelamento de exclusão de chaves (Console) (p. 121)• Programação e cancelamento de exclusão de chaves (AWS CLI) (p. 122)• Programação e cancelamento de exclusão de chaves (AWS SDK for Java) (p. 123)

Programação e cancelamento de exclusão de chaves(Console)Você pode programar e cancelar a exclusão de chaves no Console de gerenciamento da AWS.

Note

AWS KMS recently introduced a new console that makes it easier for you to organize and manageyour KMS resources. It is available in all AWS Regions that AWS KMS supports except for AWSGovCloud (US-East) and AWS GovCloud (US-West). We encourage you to try the new AWS KMSconsole at https://console.aws.amazon.com/kms.The original console will remain available for a brief period to give you time to familiarize yourselfwith the new one. To use the original console, choose Encryption Keys in the IAM console or goto https://console.aws.amazon.com/iam/home?#/encryptionKeys. Please share your feedback bychoosing Feedback in either console or in the lower-right corner of this page.

Para programar e cancelar a exclusão de chaves (new console)Para programar a exclusão de chaves

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS Key Management Service(AWS KMS) em https://console.aws.amazon.com/kms.

2. To change the AWS Region, use the Region selector in the upper-right corner of the page.3. In the navigation pane, choose Customer managed keys.4. Marque a caixa de seleção ao lado da CMK que você deseja excluir.5. Escolha Key actions (Ações da chave), Schedule key deletion (Programar exclusão da chave).6. Para Waiting period (in days) (Período de espera (em dias)), digite um número de dias entre 7 e 30.7. Marque a caixa de seleção ao lado de Confirm you want to schedule this key for deletion in <number

of days> days. (Confirme que deseja programar a exclusão desta chave em <número de dias>dias.).

8. Escolha Schedule deletion.

121

Page 129: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo usar AWS CLI

O status da CMK muda para Pending deletion (Exclusão pendente).

Para cancelar a exclusão de chaves

1. Abra o console do IAM em https://console.aws.amazon.com/iam/.2. No painel de navegação à esquerda, escolha Encryption keys.3. Na Region, selecione a região da AWS apropriada. Não use o seletor de regiões na barra de

navegação (canto superior direito).4. In the navigation pane, choose Customer managed keys.5. Marque a caixa de seleção ao lado da CMK que você deseja recuperar.6. Escolha Key actions (Ações da chave), Cancel key deletion (Cancelar exclusão da chave).

O status da CMK muda de Pending deletion (Exclusão pendente) para Disabled (Desabilitado). Para usar aCMK, você deve habilitá-la (p. 30).

Para programar e cancelar a exclusão de chaves (original console)

Para programar a exclusão de chaves

1. Sign in to the Console de gerenciamento da AWS and go to https://console.aws.amazon.com/iam/home?#/encryptionKeys.

2. For Region, choose the appropriate AWS Region. Do not use the region selector in the navigation bar(top right corner).

3. Marque a caixa de seleção ao lado da CMK que você deseja excluir.4. Escolha Key Actions (Ações da chave), Schedule key deletion (Programar exclusão da chave).5. Para Waiting period (in days), digite um número de dias entre 7 e 30. Escolha Schedule deletion.

O status da CMK muda para Pending Deletion.

Para cancelar a exclusão de chaves

1. Go to the original AWS KMS console at https://console.aws.amazon.com/iam/home?#/encryptionKeys.2. For Region, choose the appropriate AWS Region. Do not use the region selector in the navigation bar

(top right corner).3. Marque a caixa de seleção ao lado da CMK que você deseja recuperar.4. Escolha Key Actions, Cancel key deletion.

O status da CMK muda de Pending Deletion para Disabled. Para usar a CMK, você deve habilitá-la (p. 30).

Programação e cancelamento de exclusão de chaves(AWS CLI)Use o comando aws kms schedule-key-deletion para programar a exclusão de chaves da AWSCLI, conforme mostrado no exemplo a seguir.

$ aws kms schedule-key-deletion --key-id 1234abcd-12ab-34cd-56ef-1234567890ab --pending-window-in-days 10

Quando usada com êxito, a AWS CLI retorna o resultado como a saída mostrada no exemplo a seguir:

{

122

Page 130: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo usar AWS SDK for Java

"KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "DeletionDate": 1442102400.0}

Use o comando aws kms cancel-key-deletion para cancelar a exclusão de chaves da AWS CLI,conforme mostrado no exemplo a seguir.

$ aws kms cancel-key-deletion --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

Quando usada com êxito, a AWS CLI retorna o resultado como a saída mostrada no exemplo a seguir:

{ "KeyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab"}

O status da CMK muda de Pending Deletion para Disabled. Para usar a CMK, você deve habilitá-la (p. 30).

Programação e cancelamento de exclusão de chaves(AWS SDK for Java)O exemplo a seguir demonstra como programar uma CMK para exclusão com o AWS SDK for Java. Esseexemplo requer que você tenha instanciado anteriormente um AWSKMSClient como kms.

String KeyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab";

int PendingWindowInDays = 10;

ScheduleKeyDeletionRequest scheduleKeyDeletionRequest =new ScheduleKeyDeletionRequest().withKeyId(KeyId).withPendingWindowInDays(PendingWindowInDays);kms.scheduleKeyDeletion(scheduleKeyDeletionRequest);

O exemplo a seguir demonstra como cancelar uma chave para exclusão com o AWS SDK for Java. Esseexemplo requer que você tenha instanciado anteriormente um AWSKMSClient como kms.

String KeyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab";

CancelKeyDeletionRequest cancelKeyDeletionRequest =new CancelKeyDeletionRequest().withKeyId(KeyId);kms.cancelKeyDeletion(cancelKeyDeletionRequest);

O status da CMK muda de Pending Deletion para Disabled. Para usar a CMK, você deve habilitá-la (p. 30).

Adição de permissões para programar e cancelar aexclusão de chaves

Se você usa políticas do IAM para conceder permissões do AWS KMS, todos os usuários e funçõesdo IAM com acesso de administrador à AWS ("Action": "*") ou com acesso total ao AWS KMS("Action": "kms:*") já podem programar e cancelar exclusões de chaves para CMKs do AWS KMS.Se você conta apenas com a política de chaves para conceder permissões do AWS KMS, pode sernecessário adicionar mais permissões para que seus usuários e funções do IAM possam excluir CMKs.Para adicionar essas permissões, consulte as etapas a seguir.

123

Page 131: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo usar Console de gerenciamento da AWS

Os procedimentos a seguir descrevem como adicionar permissões a uma política de chaves usando oConsole de gerenciamento da AWS ou a AWS CLI.

Maneiras de adicionar permissão para programar e cancelar a exclusão de chaves• Adição de permissões para programar e cancelar a exclusão de chaves (Console) (p. 124)• Adição de permissões para programar e cancelar a exclusão de chaves (AWS CLI) (p. 125)

Adição de permissões para programar e cancelar aexclusão de chaves (Console)Você pode usar o Console de gerenciamento da AWS para adicionar permissões para programar ecancelar a exclusão de chaves.

Note

AWS KMS recently introduced a new console that makes it easier for you to organize and manageyour KMS resources. It is available in all AWS Regions that AWS KMS supports except for AWSGovCloud (US-East) and AWS GovCloud (US-West). We encourage you to try the new AWS KMSconsole at https://console.aws.amazon.com/kms.The original console will remain available for a brief period to give you time to familiarize yourselfwith the new one. To use the original console, choose Encryption Keys in the IAM console or goto https://console.aws.amazon.com/iam/home?#/encryptionKeys. Please share your feedback bychoosing Feedback in either console or in the lower-right corner of this page.

Para adicionar permissão para programar e cancelar a exclusão de chaves (newconsole)

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS Key Management Service(AWS KMS) em https://console.aws.amazon.com/kms.

2. To change the AWS Region, use the Region selector in the upper-right corner of the page.3. In the navigation pane, choose Customer managed keys.4. Selecione o alias ou ID de chave da CMK cujas permissões você quer alterar.5. Na seção Key policy (Política de chaves), em Key Deletion (Exclusão de chaves), selecione Allow

key administrators to delete this key (Permitir que administradores de chaves excluam esta chave) e,depois, Save changes (Salvar alterações).

Note

Se a opção Allow key administrators to delete this key (Permitir que administradores dechaves excluam esta chave) não for exibida, isso geralmente significa que você modificouessa política principal usando a API do AWS KMS. Nesse caso, atualize manualmente odocumento de política de chaves. Adicione as permissões kms:ScheduleKeyDeletion ekms:CancelKeyDeletion à declaração de administradores de chaves ("Sid": "Allowaccess for Key Administrators") na política de chaves e escolha Save changes(Salvar alterações).

Para adicionar permissão para programar e cancelar a exclusão de chaves(original console)

1. Sign in to the Console de gerenciamento da AWS and go to https://console.aws.amazon.com/iam/home?#/encryptionKeys.

2. For Region, choose the appropriate AWS Region. Do not use the region selector in the navigation bar(top right corner).

124

Page 132: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo usar AWS CLI

3. Escolha o alias da CMK cujas permissões você quer alterar.4. Na seção Chave de políticas, em Key Deletion, selecione Allow key administrators to delete this key e,

depois, Salvar alterações.

Note

Se a opção Allow key administrators to delete this key não for exibida, provavelmentevocê modificou anteriormente essa política de chaves usando a API do AWS KMS.Nesse caso, atualize manualmente o documento de política de chaves. Adicione aspermissões kms:ScheduleKeyDeletion e kms:CancelKeyDeletion à declaração deadministradores de chaves ("Sid": "Allow access for Key Administrators") napolítica de chaves e escolha Salvar alterações.

Adição de permissões para programar e cancelar aexclusão de chaves (AWS CLI)Você pode usar o AWS Command Line Interface para adicionar permissões para programar e cancelar aexclusão de chaves.

125

Page 133: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo criar um alarme do Amazon CloudWatch

Para adicionar permissão para programar e cancelar a exclusão de chaves

1. Use o comando aws kms get-key-policy para recuperar a política de chaves existente e, emseguida, salve o documento de política em um arquivo.

2. Abra o documento de política em um editor de texto de sua preferência, adicione as permissõeskms:ScheduleKeyDeletion e kms:CancelKeyDeletion à declaração de política que concedepermissões para os administradores de chaves (por exemplo, a declaração de política com "Sid":"Allow access for Key Administrators"). Em seguida, salve o arquivo. O exemplo a seguirmostra uma declaração de política com essas duas permissões:

{ "Sid": "Allow access for Key Administrators", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:user/KMSKeyAdmin"}, "Action": [ "kms:Create*", "kms:Describe*", "kms:Enable*", "kms:List*", "kms:Put*", "kms:Update*", "kms:Revoke*", "kms:Disable*", "kms:Get*", "kms:Delete*", "kms:ScheduleKeyDeletion", "kms:CancelKeyDeletion" ], "Resource": "*"}

3. Use o comando aws kms put-key-policy para aplicar a política de chaves à CMK.

Criação de alarme do Amazon CloudWatch paradetectar o uso de chave mestra de cliente comexclusão pendente

Você pode combinar os recursos do AWS CloudTrail, Amazon CloudWatch Logs e Amazon SimpleNotification Service (Amazon SNS) que notificam quando alguém em sua conta tenta usar uma CMK queestá com exclusão pendente em uma operação de criptografia. Se você receber essa notificação, poderácancelar a exclusão da CMK e reconsiderar sua decisão de excluí-la.

Os procedimentos a seguir explicam como receber uma notificação sempre que uma solicitação deAPI do AWS KMS que gera a mensagem de erro "Key ARN is pending deletion" é gravadanos arquivos de log do CloudTrail. Essa mensagem de erro indica que uma pessoa ou aplicativotentou usar a CMK em uma operação de criptografia (Encrypt, Decrypt, GenerateDataKey,GenerateDataKeyWithoutPlaintext e ReEncrypt). Como a notificação está vinculada à mensagemde erro, ele não é acionada quando você usa operações de API que são permitidas em CMKs comexclusão pendente, como ListKeys, CancelKeyDeletion e PutKeyPolicy. Para ver uma lista dasoperações de API do AWS KMS que geram essa mensagem de erro, consulte Como o estado da chaveafeta o uso de uma chave mestra de cliente (p. 175).

O e-mail de notificação que você receberá não indicará a CMK ou a operação de criptografia. Vocêpode encontrar essas informações em seu log do CloudTrail (p. 236). Em vez disso, o e-mail informaque o estado do alarme mudou de OK para Alarme. Para obter mais informações sobre os alarmes do

126

Page 134: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorRequisitos para um alarme do CloudWatch

CloudWatch e as alterações de estado, consulte Criar alarmes do Amazon CloudWatch no Guia do usuáriodo Amazon CloudWatch.

Tópicos• Requisitos para um alarme do CloudWatch (p. 127)• Criar o alarme do CloudWatch (p. 127)

Requisitos para um alarme do CloudWatchAntes de criar um alarme do CloudWatch, você deve criar uma trilha do AWS CloudTrail e configurar oCloudTrail para entregar os arquivos de log do CloudTrail para o Amazon CloudWatch Logs.

1. Crie uma trilha do CloudTrail.

O CloudTrail é habilitado automaticamente na sua conta da AWS ao criar a conta. No entanto, paraobter um registro contínuo de eventos em sua conta, incluindo eventos do AWS KMS, crie uma trilha.

2. Configure o CloudTrail para entregar seus arquivos de log para o CloudWatch Logs.

Configure a entrega dos seus arquivos de log do CloudTrail para o CloudWatch Logs. Isso permite queo CloudWatch Logs monitore os logs das solicitações de API do AWS KMS que tentam usar uma CMKque está com exclusão pendente.

Criar o alarme do CloudWatchPara receber uma notificação quando solicitações de API do AWS KMS tentarem usar uma CMK comexclusão pendente em uma operação de criptografia, crie um alarme do CloudWatch e configure asnotificações.

Para criar um alarme do CloudWatch que monitora tentativas de uso de uma CMK do KMS comexclusão pendente

1. Faça login no Console de gerenciamento da AWS e abra o console da CloudWatch em https://console.aws.amazon.com/cloudwatch/.

2. Use o seletor de região no canto superior direito para escolher a região da AWS que você desejamonitorar.

3. No painel de navegação esquerdo, selecione Logs.4. Na lista de Log Groups (Grupos de log), escolha o botão de opção ao lado do seu grupo de logs. Em

seguida, escolha Create Metric Filter.5. Para Filter Pattern, digite ou cole o seguinte:

{ $.eventSource = kms* && $.errorMessage = "* is pending deletion."}

Escolha Assign Metric.6. Na página Create Metric Filter and Assign a Metric, faça o seguinte:

a. Em Metric Namespace (Namespace da métrica), digite CloudTrailLogMetrics.b. Para Metric Name (Nome da métrica), digite KMSKeyPendingDeletionErrorCount.c. Escolha Show advanced metric settings (Exibir configurações avançadas da métrica) e, para

Metric Value (Valor da métrica), digite 1, caso esse não seja o valor atual.d. Escolha Create Filter.

7. Na caixa de filtro, escolha Criar alarme.8. Na janela Criar alarme, faça o seguinte:

127

Page 135: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCriar o alarme do CloudWatch

a. Na seção Alarm Threshold (Limite de alarme), para Name (Nome), digiteKMSKeyPendingDeletionErrorAlarm. Você também pode adicionar uma descrição opcional.

b. Em Whenever (Sempre que), para is (for), escolha >= e então digite 1.c. Para 1 out of n datapoints (1 de n datapoints), se necessário, digite 1.d. Na seção Additional settings (Configurações adicionais), para Treat missing data as (Tratar dados

ausentes como), escolha good (not breaching threshold) (bons (não ultrapassam o limite)).e. Na seção Actions (Ações), para Send notification to (Enviar notificação para), siga um destes

procedimentos:

• Para usar um novo tópico do Amazon SNS, escolha New list (Nova lista) e digite o nome donovo tópico, por exemplo, KMSAlert. Em Email list (Lista de e-mails), digite pelo menos umendereço de e-mail. É possível digitar mais de um endereço de e-mail, basta separá-los comvírgulas.

• Para usar um tópico existente do Amazon SNS, escolha o nome do tópico a ser usado.f. Escolha Create Alarm.

128

Page 136: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCriar o alarme do CloudWatch

9. Se você optar por enviar notificações para um endereço de e-mail, abra a mensagem de e-mailrecebido de [email protected] com o assunto "Notificação da AWS – Confirmação deassinatura". Confirme o seu endereço de e-mail ao escolher o link Confirmar inscrição na mensagemde e-mail.

Note

Você não receberá notificações por e-mail até ter confirmado o seu endereço de e-mail.

Depois de concluir esse procedimento, você receberá uma notificação sempre que esse alarme doCloudWatch entrar no estado ALARM. Se você receber uma notificação desse alarme, significa que alguémou algo ainda precisa usar essa CMK. Neste caso, cancele a exclusão da CMK (p. 121) de modo quevocê tenha mais tempo para decidir se realmente quer excluí-la.

129

Page 137: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo determinar a utilização passada de uma CMK

Como determinar a utilização passada de umachave mestra de cliente

Antes de excluir uma chave mestra de cliente (CMK), talvez você queira saber como muitos textos cifradosforam criptografados sob essa chave. O AWS KMS não armazena essas informações nem qualquer umdos textos cifrados. Para obter essas informações, você deve determinar que possui a utilização passadade uma CMK. Saber como uma CMK foi utilizada no passado pode ajudá-lo a decidir se você precisaráou não dela no futuro. As orientações a seguir podem ajudá-lo a determinar a utilização passada de umaCMK.

Tópicos• Como examinar as permissões da CMK para determinar o escopo de utilização em potencial (p. 130)• Como examinar os logs do AWS CloudTrail para determinar a utilização real (p. 130)

Como examinar as permissões da CMK paradeterminar o escopo de utilização em potencialDeterminar quem ou o quê tem acesso no momento a uma chave mestra de cliente (CMK) pode ajudá-lo adeterminar o quão amplamente a CMK foi usada e se ela ainda é necessária. Para saber como determinarquem ou o quê tem acesso no momento a uma CMK, acesse Como determinar o acesso a uma chavemestra de cliente do AWS KMS (p. 87).

Como examinar os logs do AWS CloudTrail paradeterminar a utilização realO AWS KMS é integrado com o AWS CloudTrail, portanto, toda a atividade da API do AWS KMS éregistrada em arquivos de log do CloudTrail. Se você tem o CloudTrail ativado na região em que sua chavemestra de cliente (CMK) está localizada, você pode examinar seus arquivos de log do CloudTrail paravisualizar um histórico de toda a atividade da API do AWS KMS de uma determinada CMK e, portanto, seuhistórico de utilização. Você pode ser capaz de usar o histórico de utilização de uma CMK para ajudá-lo adeterminar se ela ainda necessária ou não.

Os exemplos a seguir mostram as entradas de log do CloudTrail que são geradas quando uma CMK doKMS é usada para proteger um objeto armazenado no Amazon Simple Storage Service (Amazon S3).Neste exemplo, é feito o upload do objeto para o Amazon S3 usando a criptografia do lado do servidor comchaves gerenciadas pelo AWS KMS (SSE-KMS) (p. 216). Quando você faz upload de um objeto AmazonS3 com o SSE-KMS, você especifica a CMK do KMS a ser usada para proteger o objeto. O Amazon S3usa a API do para solicitar uma chave de dados exclusiva para o objeto, e esse evento de API é registradono CloudTrail com uma entrada semelhante à seguinte:

{ "eventVersion": "1.02", "userIdentity": { "type": "AssumedRole", "principalId": "AROACKCEVSQ6C2EXAMPLE:example-user", "arn": "arn:aws:sts::111122223333:assumed-role/Admins/example-user", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2015-09-10T23:12:48Z"

130

Page 138: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo examinar os logs do AWS

CloudTrail para determinar a utilização real

}, "sessionIssuer": { "type": "Role", "principalId": "AROACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admins", "accountId": "111122223333", "userName": "Admins" } }, "invokedBy": "internal.amazonaws.com" }, "eventTime": "2015-09-10T23:58:18Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "internal.amazonaws.com", "userAgent": "internal.amazonaws.com", "requestParameters": { "encryptionContext": {"aws:s3:arn": "arn:aws:s3:::example_bucket/example_object"}, "keySpec": "AES_256", "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, "responseElements": null, "requestID": "cea04450-5817-11e5-85aa-97ce46071236", "eventID": "80721262-21a5-49b9-8b63-28740e7ce9c9", "readOnly": true, "resources": [{ "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333" }], "eventType": "AwsApiCall", "recipientAccountId": "111122223333"}

Quando você fizer download desse objeto mais tarde do Amazon S3, o Amazon S3 envia uma solicitaçãode API do Decrypt para o AWS KMS para descriptografar a chave de dados do objeto usando a CMKespecificada. Quando você fizer isso, seus arquivos de log do CloudTrail incluirão uma entrada semelhanteà seguinte:

{ "eventVersion": "1.02", "userIdentity": { "type": "AssumedRole", "principalId": "AROACKCEVSQ6C2EXAMPLE:example-user", "arn": "arn:aws:sts::111122223333:assumed-role/Admins/example-user", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2015-09-10T23:12:48Z" }, "sessionIssuer": { "type": "Role", "principalId": "AROACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admins", "accountId": "111122223333", "userName": "Admins" } }, "invokedBy": "internal.amazonaws.com" }, "eventTime": "2015-09-10T23:58:39Z", "eventSource": "kms.amazonaws.com",

131

Page 139: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo examinar os logs do AWS

CloudTrail para determinar a utilização real

"eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "internal.amazonaws.com", "userAgent": "internal.amazonaws.com", "requestParameters": { "encryptionContext": {"aws:s3:arn": "arn:aws:s3:::example_bucket/example_object"}}, "responseElements": null, "requestID": "db750745-5817-11e5-93a6-5b87e27d91a0", "eventID": "ae551b19-8a09-4cfc-a249-205ddba330e3", "readOnly": true, "resources": [{ "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333" }], "eventType": "AwsApiCall", "recipientAccountId": "111122223333"}

Todas as atividades de API do AWS KMS são registradas pelo CloudTrail. Ao avaliar essas entradas delog, talvez você consiga determinar a utilização passada de uma CMK específica, e isso pode ajudá-lo adeterminar se deseja ou não excluí-la.

Para ver mais exemplos de como a atividade de API do AWS KMS aparece em seus arquivos de log doCloudTrail, acesse Registro em log de chamadas à API do AWS KMS com o AWS CloudTrail (p. 236).Para obter mais informações sobre CloudTrail, acesse AWS CloudTrail User Guide.

132

Page 140: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedor

O uso de um armazenamento dechaves personalizado

O AWS KMS oferece suporte a armazenamentos de chaves personalizados (p. 135) baseados emclusters do AWS CloudHSM. Quando você cria uma chave mestra de cliente (p. 2) (CMK) do AWS KMSem um armazenamento de chaves personalizadas, o AWS KMS gera e armazena o material de chave quenão pode ser extraído para a CMK em um cluster do AWS CloudHSM que você tem e gerencia. Quandovocê usa uma CMK em um armazenamento de chaves personalizado, as operações de criptografia sãorealizadas nos HSMs do cluster. Esse recurso combina a conveniência e integração generalizada do AWSKMS com o controle adicional de um cluster do AWS CloudHSM em sua conta da AWS.

O AWS KMS oferece suporte total ao console e à API para criar, usar e gerenciar seus armazenamentosde chaves personalizados. Quando você cria CMKs em um armazenamento de chaves personalizado,você pode usá-las da mesma forma que usaria qualquer CMK. Por exemplo, você pode usar asCMKs para gerar chaves de dados e criptografar dados. Você também pode usar as CMKs do seuarmazenamento de chaves personalizado com serviços da AWS que oferecem suporte às CMKsgerenciadas pelo cliente.

Eu preciso de um armazenamento de chaves personalizado?

Para a maioria dos usuários, o armazenamento de chaves padrão do AWS KMS, que é protegido pormódulos de criptografia validados por FIPS 140-2, atende aos requisitos de segurança. Não é necessárioadicionar uma camada extra de responsabilidade de manutenção nem uma dependência em um serviçoadicional.

No entanto, você pode considerar a criação de um armazenamento de chaves personalizado se a suaorganização tiver um dos seguintes requisitos:

• O material de chaves não pode ser armazenado em um ambiente compartilhado.• O backup do material de chaves deve ser feito em várias regiões da AWS.• O material de chaves deve estar sujeito a um caminho de auditoria secundário e independente.• Os HSMs que geram e armazenam o material de chaves devem ser certificados pelo FIPS 140-2 nível 3.

Como funcionam os armazenamentos de chaves personalizados?

Cada armazenamento de chaves personalizado está associado a um cluster do AWS CloudHSM em suaconta da AWS. Quando você conecta o armazenamento de chaves personalizado ao cluster, o AWS KMScria a infraestrutura de rede para oferecer suporte à conexão. Em seguida, ele faz login no principal clienteAWS CloudHSM do cluster usando as credenciais de um usuário de criptografia dedicado (p. 136) nocluster.

Você pode criar e gerenciar os armazenamentos de chaves personalizados no AWS KMS e criar egerenciar seus clusters do HSM no AWS CloudHSM. Quando você cria chaves mestras de cliente (CMKs)em um armazenamento de chaves personalizado do AWS KMS, você visualiza e gerencia as CMKsno AWS KMS. No entanto, você também pode visualizar e gerenciar seu material de chaves no AWSCloudHSM, do mesmo modo que para outras chaves no cluster.

133

Page 141: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedor

Você pode usar as mesmas técnicas para visualizar e gerenciar as CMKs do armazenamento de chavespersonalizado que você usa para armazenar CMKs no armazenamento de chaves do AWS KMS. Vocêpode controlar o acesso com políticas de chaves e do IAM, criar tags e aliases, ativar e desativar as CMKse programar a exclusão de chaves. Você pode usar as CMKs para operações de criptografia, e usá-lascom serviços da AWS que se integram ao AWS KMS. No entanto, você não pode habilitar a alternânciaautomática de chaves nem importar o material de chaves para uma CMK em um armazenamento dechaves personalizado.

Além disso, você tem controle total sobre o cluster do AWS CloudHSM, incluindo a criação e a exclusãode HSMs e o gerenciamento de backups. Você pode usar o cliente do AWS CloudHSM e as bibliotecas desoftware compatíveis para visualizar, auditar e gerenciar o material de chaves de suas CMKs. Enquantoo armazenamento de chaves personalizado está desconectado, o AWS KMS não pode acessá-lo, e osusuários não podem usar as CMKs no armazenamento de chaves personalizado para operações decriptografia. Essa camada adicional de controle torna os armazenamentos de chaves personalizados umaexcelente solução para as organizações que necessitam dela.

Onde começar?

Para criar e gerenciar um armazenamento de chaves personalizado, você usa recursos do AWS KMS e doAWS CloudHSM.

1. Iniciar no AWS CloudHSM. Crie um cluster do AWS CloudHSM ativo ou selecione um cluster existente.O cluster deve conter pelo menos dois HSMs ativos em diferentes zonas de disponibilidade. Emseguida, crie uma conta de usuário de criptografia (CU) dedicado (p. 136) nesse cluster para o AWSKMS.

2. Em AWS KMS, crie um armazenamento de chaves personalizado (p. 140) que está associado aoseu cluster do AWS CloudHSM selecionado. O AWS KMS oferece uma interface de gerenciamentocompleta (p. 144) que permite criar, visualizar, editar e excluir seus armazenamentos de chavespersonalizados.

3. Quando você estiver pronto para usar o armazenamento de chaves personalizado, conecte-o ao clusterdo seu AWS CloudHSM associado (p. 148). O AWS KMS cria a infraestrutura de rede de que eleprecisa para oferecer suporte à conexão. Em seguida, ele faz login no cluster usando as credenciaisda conta de usuário de criptografia dedicado para que possa gerar e gerenciar o material de chaves nocluster.

4. Agora você pode criar chaves mestras de cliente (CMKs) no armazenamento de chavespersonalizado (p. 156). Basta especificar o armazenamento de chaves personalizado ao criar a CMK.

134

Page 142: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorO que é um Armazenamento de Chave Personalizada?

Se você ficar preso em alguma etapa, é possível encontrar ajuda no tópico Solução de problemas doarmazenamento de chaves personalizado (p. 167). Se a sua pergunta não for respondida, use o link decomentários na parte inferior de cada página deste guia ou publique uma pergunta no fórum de discussãodo AWS KMS.

Limites

Não há limite para o número de armazenamentos de chaves personalizados em uma conta ou regiãoda AWS. No entanto, há limite para o número de clusters do AWS CloudHSM em cada região daAWS, e limites no controle da taxa de operações de criptografia (p. 310) usando as CMKs em cadaarmazenamento de chaves personalizado.

Regiões

O AWS KMS oferece suporte ao armazenamento de chaves personalizado em todas as regiões da AWSem que AWS KMS e AWS CloudHSM estão disponíveis, exceto AWS GovCloud (US-West).

Tópicos• O que é um Armazenamento de Chave Personalizada? (p. 135)• Como controlar o acesso ao seu Armazenamento de chaves personalizado (p. 138)• A criação do armazenamento de chaves personalizado (p. 140)• O gerenciamento do armazenamento de chaves personalizado (p. 144)• O gerenciamento de CMKs em um armazenamento de chaves personalizado (p. 155)• Solução de problemas do armazenamento de chaves personalizado (p. 167)

O que é um Armazenamento de ChavePersonalizada?

Este tópico explica alguns dos conceitos usados nos armazenamentos de chaves personalizados do AWSKMS.

Tópicos• Armazenamento de chaves personalizado do AWS KMS (p. 135)• Cluster do AWS CloudHSM (p. 136)• kmsuser Usuário de criptografia (p. 136)• CMKs em um armazenamento de chaves personalizado (p. 137)

Armazenamento de chaves personalizado do AWSKMSUm armazenamento de chaves é um local seguro para o armazenamento de chaves de criptografia.O armazenamento de chaves padrão no AWS KMS também oferece suporte a métodos para gerar egerenciar as chaves que o armazena. Por padrão, as chaves mestras de cliente (CMKs) que você cria noAWS KMS são geradas e protegidas por módulos de segurança de hardware (HSMs) que são módulosvalidados de criptografia FIPS 140-2. As CMKs nunca deixam os módulos sem estarem criptografadas.

No entanto, se você precisar de ainda mais controle dos HSMs, você poderá criar um armazenamento dechaves personalizado que é respaldado pelo HSMs FIPS 140-2 nível 3 em um cluster do AWS CloudHSMque você detém e gerencia.

135

Page 143: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCluster do AWS CloudHSM

Um armazenamento de chaves personalizado é um recurso do AWS KMS associado a um cluster do AWSCloudHSM. Quando você cria uma CMK do AWS KMS no seu armazenamento de chaves personalizado,o AWS KMS gera uma chave simétrica Advanced Encryption Standard (AES) de 256 bits, persistentee não exportável no cluster do AWS CloudHSM associado. Esse material de chaves nunca deixa seusHSMs sem estarem criptografados. Quando você usa uma CMK em um armazenamento de chavespersonalizado, as operações de criptografia são realizadas nos HSMs do cluster.

Armazenamentos de chaves personalizados combinam a interface conveniente e abrangente degerenciamento de chaves do AWS KMS com os controles adicionais fornecidos por um cluster do AWSCloudHSM em sua conta da AWS. Esse recurso integrado permite a você criar, gerenciar e usar CMKsno AWS KMS enquanto mantém controle total sobre os HSMs que armazenam seu material de chaves,incluindo gerenciamento de clusters, HSMs e backups. Você pode usar o console e as APIs do AWSKMS para gerenciar o armazenamento de chaves personalizado e suas CMKs. Você também pode usaro console do AWS CloudHSM, as APIs, o software cliente e a bibliotecas de software associadas paragerenciar o cluster associado.

Você pode visualizar e gerenciar (p. 144) seu armazenamento de chaves personalizado, editar suaspropriedades (p. 146), e conectar-se e desconectar-se (p. 148) do cluster do AWS CloudHSMassociado. Se precisar excluir um armazenamento de chaves personalizado (p. 154), você deve primeiroexcluir as CMKs no armazenamento de chaves personalizado programando a exclusão e espera até que operíodo de carência expire. A exclusão do armazenamento de chaves personalizado remove o recurso doAWS KMS, mas não afeta o cluster do AWS CloudHSM.

Cluster do AWS CloudHSMTodo armazenamento de chaves personalizado do AWS KMS é associado a um cluster do AWSCloudHSM. Quando você cria uma chave mestra de cliente (CMK) no seu armazenamento de chavespersonalizado, o AWS KMS cria seu material de chaves no cluster associado. Quando você usa umaCMK no seu armazenamento de chaves personalizado, a operação de criptografia é realizada no clusterassociado.

Cada cluster do AWS CloudHSM pode ser associado a apenas um armazenamento de chavespersonalizado. O cluster que você escolher não pode ser associado a outro armazenamento de chavesou compartilhar um histórico de backup com um cluster associado. O cluster deve estar inicializado eativo, além disso, ele deve estar na mesma conta e região da AWS que o armazenamento de chavespersonalizado do AWS KMS. Você pode criar um novo cluster ou usar um existente. O AWS KMS nãorequer o uso exclusivo do cluster. Para criar CMKs no armazenamento de chaves personalizado, seucluster associado deve conter pelo menos dois HSMs ativos. Todas as outras operações exigem apenasum HSM.

Você especifica o cluster ao criar o armazenamento de chaves personalizado, e não é possível alterá-lo. No entanto, você pode substituir qualquer cluster que compartilha um histórico de backup pelo clusteroriginal. Isso permite a você excluir o cluster, se necessário, e substituí-lo por um cluster criado a partir deum de seus backups. Você mantém controle total do cluster do AWS CloudHSM associado para que vocêpossa gerenciar usuários e chaves, criar e excluir HSMs e usar e gerenciar backups.

Quando você estiver pronto para usar o armazenamento de chaves personalizado, conecte-o ao seucluster do AWS CloudHSM associado. Você pode conectar e desconectar o armazenamento de chavespersonalizado (p. 148) a qualquer momento. Se o armazenamento de chaves personalizado estáconectado, você pode criar e usar suas CMKs. Se está desconectado, você pode visualizar e gerenciaro armazenamento de chaves personalizado e suas CMKs. No entanto, você não pode criar novas CMKsnem usar as CMKs no armazenamento de chaves personalizado para operações de criptografia.

kmsuser Usuário de criptografiaPara criar e gerenciar o material de chaves no cluster do AWS CloudHSM associado em seu nome, o AWSKMS usa um usuário de criptografia (CU) dedicado do AWS CloudHSM no cluster chamado kmsuser. O

136

Page 144: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCMKs em um armazenamento de chaves personalizado

CU kmsuser é uma conta CU padrão automaticamente sincronizada a todos os HSMs no cluster e salvaem backups do cluster.

Antes de criar o armazenamento de chaves personalizado, você cria uma conta CU kmsuser (p. 141)em seu cluster do AWS CloudHSM usando o comando createUser em cloudhsm_mgmt_util. Emseguida, quando você cria o armazenamento de chaves personalizado (p. 140), você fornece asenha da conta kmsuser para o AWS KMS. Quando você se conecta ao armazenamento de chavespersonalizado (p. 148), o AWS KMS faz login no cluster como CU kmsuser e muda a sua senha.

O AWS KMS permanece conectado como kmsuser enquanto o armazenamento de chaves personalizadoestá conectado. Você não deve usar essa conta CU para outros fins. No entanto, você mantém ocontrole final do CU da conta kmsuser. A qualquer momento, você pode encontrar os identificadoresde chave (p. 165) das chaves que o kmsuser possui. Se necessário, você pode desconectar oarmazenamento de chaves personalizado (p. 148), alterar a senha kmsuser, fazer login no cluster comokmsuser (p. 172), e visualizar e gerenciar as chaves que o kmsuser possui.

Para obter instruções sobre como criar sua conta CU kmsuser, consulte Criar o Usuário de criptografiakmsuser (p. 141).

CMKs em um armazenamento de chavespersonalizadoVocê pode usar o Console de gerenciamento da AWS ou a API do AWS KMS para criar uma chave mestrado cliente (p. 2) (CMK) em um armazenamento de chaves personalizado. Você usa a mesmo técnica queusaria para qualquer CMK do AWS KMS. A única diferença é que você deve identificar o armazenamentode chaves personalizado e especificar que a origem do material de chaves é o cluster do AWS CloudHSM.

Quando você cria uma CMK em um armazenamento de chaves personalizado (p. 156), o AWS KMS criaa CMK no AWS KMS e gera uma chave de backup simétrica Advanced Encryption Standard (AES) de 256bits, persistente e não exportável em seu cluster associado. Embora o AWS CloudHSM seja compatívelcom chaves simétricas e assimétricas de diferentes tipos, o AWS KMS e os armazenamentos de chavepersonalizados são compatíveis apenas com chaves simétricas AES.

Você pode visualizar as CMKs em um armazenamento de chaves personalizado no console do AWS KMSe usar opções do console para exibir o ID de armazenamento de chaves personalizado Você tambémpode usar a operação DescribeKey para localizar o ID do armazenamento de chaves personalizado e o IDde cluster do AWS CloudHSM.

As CMKs em um armazenamento de chaves personalizado funcionam como qualquer CMK no AWSKMS. Os usuários autorizados precisam das mesmas permissões para usar e gerenciar as CMKs. Vocêpode usar os mesmos procedimentos do console e operações de API para visualizar e gerenciar asCMKs em um armazenamento de chaves personalizado. Isso inclui a ativação e a desativação de CMKs,criar e usar tags e aliases e definir e alterar políticas de chaves e do IAM. Você pode usar as CMKs emum armazenamento de chaves personalizado para operações de criptografia e usá-las com serviçosintegrados da AWS (p. 179) compatíveis com o uso de CMKs gerenciadas pelo cliente. No entanto, vocênão pode habilitar a alternância automática de chaves (p. 95) ou importar o material de chaves (p. 101)para uma CMK em um armazenamento de chaves personalizado.

Você também pode usar o mesmo processo para programar a exclusão (p. 166) de uma CMK em umarmazenamento de chaves personalizado. Após o período de espera, o AWS KMS exclui a CMK doKMS. Em seguida, ele faz o possível para excluir o material de chaves referente à CMK do cluster doAWS CloudHSM associado. No entanto, pode ser necessário excluir manualmente o material de chavesórfãs (p. 170) do cluster e de seus backups.

137

Page 145: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo controlar o acesso ao seu

Armazenamento de chaves personalizado

Como controlar o acesso ao seu Armazenamentode chaves personalizado

Você pode usar políticas do IAM para controlar o acesso ao armazenamento de chaves personalizado doAWS KMS e ao cluster do AWS CloudHSM. Você pode usar políticas do IAM e políticas de chaves paracontrolar o acesso às chaves mestras de cliente (CMKs) no armazenamento de chaves personalizado.Recomendamos que você forneça aos usuários, grupos e funções apenas as permissões que precisampara as tarefas que possivelmente executarão.

Tópicos• Autorização de gerentes e usuários do Armazenamento de chaves personalizado (p. 138)• Autorizar o AWS KMS a gerenciar recursos do AWS CloudHSM e Amazon EC2 (p. 139)

Autorização de gerentes e usuários doArmazenamento de chaves personalizadoAo projetar seu armazenamento de chaves personalizado, verifique se os principais que usam e gerenciamtêm apenas as permissões necessárias. A lista a seguir descreve as permissões mínimas necessáriaspara os gerentes e usuários do armazenamento de chaves personalizado.

• Os principais que criam e gerenciam o armazenamento de chaves personalizado precisam dasseguintes permissões para usar as operações de API do armazenamento de chaves personalizado.• cloudhsm:DescribeClusters

• kms:CreateCustomKeyStore

• kms:ConnectCustomKeyStore

• kms:DisconnectCustomKeyStore

• kms:UpdateCustomKeyStore

• kms:DeleteCustomKeyStore

• kms:DescribeCustomKeyStores

• iam:CreateServiceLinkedRole

 • Os principais que criam e gerenciam o cluster do AWS CloudHSM associado ao armazenamento de

chaves personalizado precisam de permissão para criar e inicializar um cluster do AWS CloudHSM.Isso inclui permissão para criar ou usar uma virtual private cloud, criar sub-redes e criar uma instânciado Amazon EC2. Também pode ser necessário criar e excluir HSMs, além de gerenciar backups.Para obter as listas de permissões necessárias, consulte Restringir permissões de usuário ao que énecessário para o AWS CloudHSM no AWS CloudHSM User Guide.

 • Os principais que criam e gerenciam chaves mestras de cliente (CMKs) no seu armazenamento de

chaves personalizado exigem as mesmas permissões que os que criam e gerenciam qualquer CMK noAWS KMS. Por exemplo, os principais precisam de uma política do IAM com permissão kms: CreateKey.Nenhuma permissão adicional é necessária. A política de chaves padrão (p. 37) para CMKs em umarmazenamento de chaves personalizado é idêntica à política de chaves padrão para CMKs em AWSKMS.

 • Os principais que usam as CMKs no seu armazenamento de chaves personalizado para operações

de criptografia precisam de permissão para executar a operação de criptografia com a CMK, como

138

Page 146: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAutorizar o AWS KMS a gerenciar recursos

do AWS CloudHSM e Amazon EC2

kms: Decrypt. Você pode fornecer essas permissões em uma política do IAM ou política de chaves. Noentanto, elas não precisam de permissões adicionais para usar uma CMK em um armazenamento dechaves personalizado.

Autorizar o AWS KMS a gerenciar recursos do AWSCloudHSM e Amazon EC2Para oferecer suporte aos armazenamentos de chaves personalizados, o AWS KMS precisa de permissãopara obter informações sobre seus clusters do AWS CloudHSM. Ele também precisa de permissãopara criar a infraestrutura de rede que conecta seu armazenamento de chaves personalizado ao seucluster do AWS CloudHSM. Para obter essas permissões, o AWS KMS cria a função vinculada ao serviçoAWSServiceRoleForKeyManagementServiceCustomKeyStores na sua conta da AWS. Os usuários quecriam armazenamentos de chaves personalizados devem ter permissão para criar funções vinculadas aoserviço.

Uma função vinculada a serviço é uma função do IAM que oferece permissão a um serviço da AWS parachamar outros serviços da AWS em seu nome. Ela foi projetada para facilitar o uso dos recursos de váriosserviços integrados da AWS sem a necessidade de criar e manter políticas complexas do IAM.

Para armazenamentos de chaves personalizados, o AWS KMS cria a função vinculadaao serviço AWSServiceRoleForKeyManagementServiceCustomKeyStores com a políticaAWSKeyManagementServiceCustomKeyStoresServiceRolePolicy. Essa política concede as seguintespermissões à função:

• cloudhsm:DescribeClusters• ec2:AuthorizeSecurityGroupIngress• ec2:CreateNetworkInterface• ec2:CreateSecurityGroup• ec2:DeleteSecurityGroup• ec2:DescribeSecurityGroups• ec2:RevokeSecurityGroupEgress

Somente o AWS KMS pode assumir essa função vinculada ao serviço. Ele está limitado às operaçõesde que o AWS KMS precisa para visualizar seus clusters e conectar um armazenamento de chavespersonalizado ao seu cluster do AWS CloudHSM. Ele não concede permissões adicionais ao AWS KMS.Por exemplo, o AWS KMS não tem permissão para criar, gerenciar ou excluir clusters, HSMs ou backupsdo AWS CloudHSM.

Como o recurso de armazenamentos de chaves personalizados, a funçãoAWSServiceRoleForKeyManagementServiceCustomKeyStores é compatível com todas as regiões daAWS em que tanto o AWS KMS como o AWS CloudHSM estão disponíveis, exceto para AWS GovCloud(US-West). Para obter uma lista de AWSRegiões em que cada serviço oferece suporte, consulte AWS KeyManagement Service e AWS CloudHSM.

Criar a função vinculada ao serviço

O AWS KMS cria automaticamente a função vinculada ao serviçoAWSServiceRoleForKeyManagementServiceCustomKeyStores na sua conta da AWS quando você cria umarmazenamento de chaves personalizado, se a função ainda não existir. Não é possível criar diretamenteessa função vinculada a serviço.

Editar a descrição de uma função vinculada ao serviço

139

Page 147: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorA criação do armazenamento de chaves personalizado

Você não pode editar o nome da função ou as declarações da política na função vinculada ao serviçoAWSServiceRoleForKeyManagementServiceCustomKeyStores, mas você pode editar a descrição dafunção. Para obter instruções, consulte Editar uma função vinculada a serviço no Guia do usuário do IAM.

Excluir a função vinculada ao serviço

O AWS KMS não exclui a função vinculada ao serviçoAWSServiceRoleForKeyManagementServiceCustomKeyStores.

Se você tiver excluído todos os armazenamentos de chaves personalizados (p. 153)e não planeja criar novos recursos, recomendamos que você exclua a funçãoAWSServiceRoleForKeyManagementServiceCustomKeyStores. O AWS KMS evita que você exclua essafunção vinculada ao serviço se você tiver algum armazenamento de chaves personalizado em qualquerregião da sua conta da AWS.

Para excluir a função vinculada ao serviço:

1. Exclua todos os armazenamentos de chaves personalizados do AWS KMS (p. 153) de todas asregiões da sua conta da AWS.

2. Use o console do IAM, a CLI do IAM ou a API do IAM para excluir a função vinculada ao serviço. Paraobter instruções, consulte Excluir uma função vinculada a serviço no Guia do usuário do IAM.

Note

Se o AWS KMS estiver usando a função quando você tentar excluí-lo, poderá haver falha naexclusão. Se isso acontecer, espere alguns minutos e tente a operação novamente.

Para obter mais informações sobre como os serviços da AWS usam as funções vinculadas ao serviço,consulte Uso de funções vinculadas a serviço no Guia do usuário do IAM.

A criação do armazenamento de chavespersonalizado

Você pode criar um ou vários armazenamentos de chaves personalizados (p. 135) na sua conta. Cadaarmazenamento de chaves personalizado reside em uma região da AWS e está associado a um cluster doAWS CloudHSM que você possui e gerencia. Antes de criar o armazenamento de chaves personalizado,você precisa organizar os pré-requisitos (p. 141). Em seguida, antes de usar o armazenamento dechaves personalizado, você deve se conectar (p. 148) ao cluster do AWS CloudHSM.

Tip

Não é necessário conectar seu armazenamento de chaves personalizado imediatamente. Vocêpode deixá-lo em um estado desconectado até estar pronto para usá-lo. No entanto, para verificarse ele está configurado corretamente, você pode querer conectá-lo (p. 148), visualizar o statusda conexão (p. 144) e, em seguida, desconectá-lo (p. 148).

Tópicos• Organizar os pré-requisitos (p. 141)• Crie um Armazenamento de Chaves Personalizado (Console) (p. 142)• Criar um armazenamento de chaves personalizado (API) (p. 143)

140

Page 148: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorOrganizar os pré-requisitos

Organizar os pré-requisitosCada armazenamento de chaves personalizado do AWS KMS é baseado em um cluster do AWSCloudHSM. Para criar um armazenamento de chaves personalizado, você deve especificar um cluster doAWS CloudHSM ativo que ainda não está associado a outro armazenamento de chaves. Você tambémprecisa criar um usuário de criptografia (CU) dedicado nos HSMs do cluster que o AWS KMS pode usarpara criar e gerenciar chaves em seu nome.

Antes de criar um armazenamento de chaves personalizado, faça o seguinte:

Selecione um cluster do AWS CloudHSM

Todo armazenamento de chaves personalizado é associado, precisamente, a um cluster doAWS CloudHSM (p. 136). Quando você cria uma chave mestra de cliente (p. 2) (CMK) no seuarmazenamento de chaves personalizado, o AWS KMS cria os metadados da CMK, tais como IDe nome de recurso da Amazon (ARN) no AWS KMS. Em seguida, ele cria o material de chavesnos HSMs do cluster associado. Você pode criar um novo cluster do AWS CloudHSM ou usar umexistente. O AWS KMS não requer acesso exclusivo ao cluster.

O cluster do AWS CloudHSM que você seleciona fica permanentemente associado aoarmazenamento de chaves personalizado. Depois de criar o armazenamento de chavespersonalizado, você pode alterar o ID do cluster (p. 146) associado, mas o cluster que vocêespecificar deverá compartilhar um histórico de backup com o cluster original. Para usar um clusternão relacionado, você precisa criar um novo armazenamento de chaves personalizado.

O cluster do AWS CloudHSM que você selecionar deve ter as seguintes características:• O cluster deve estar ativo.

Você deve criar o cluster, iniciá-lo, instalar o software cliente do AWS CloudHSM para a suaplataforma e, em seguida, ativar o cluster. Para obter instruções detalhadas, consulte a seçãoConceitos básicos do AWS CloudHSM User Guide.

• O cluster deve estar na mesma conta e região que o armazenamento de chaves personalizado doAWS KMS.

• O cluster não pode ser associado a outro armazenamento de chaves personalizado na conta. Cadaarmazenamento de chaves personalizado deve ser associado a um cluster do AWS CloudHSMdiferente. Você não pode especificar um cluster que já esteja associado a um armazenamentode chaves personalizado, tampouco um cluster que compartilhe um histórico de backup com umcluster associado. Os clusters que compartilham um histórico de backup têm o mesmo certificado docluster. Para visualizar o certificado de cluster de um cluster, use o console do AWS CloudHSM ou aoperação DescribeClusters.

• O cluster deve ser configurada com sub-redes privadas em pelo menos duas zonas dedisponibilidade na região. Como o AWS CloudHSM não é compatível com todas as zonasde disponibilidade, recomendamos que você crie sub-redes privadas em todas as zonas dedisponibilidade na região. Você não pode reconfigurar as sub-redes para um cluster existente, maspode criar um cluster a partir de um backup com diferentes sub-redes na configuração do cluster.

• O cluster deve conter pelo menos dois HSMs ativos em diferentes zonas de disponibilidade. Paraverificar o número de HSMs, use o console do AWS CloudHSM ou a operação DescribeClusters. Senecessário, você pode adicionar um HSM.

Localize o certificado da âncora de confiança

Quando você cria um armazenamento de chaves personalizado, você deve fazer upload do certificadoda âncora de confiança para o cluster do AWS CloudHSM para o AWS KMS. O AWS KMS precisado certificado da âncora de confiança para conectar o armazenamento de chaves personalizado aocluster.

141

Page 149: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCrie um Armazenamento de

Chaves Personalizado (Console)

Cada cluster do AWS CloudHSM ativo tem um certificado da âncora de confiança. Ao inicializar ocluster, você gera esse certificado, salve-o no customerCA.crt arquivo e copie-o em hosts que seconectam ao cluster.

Crie o kmsuserUsuário de criptografia para o AWS KMS

Para administrar o armazenamento de chaves personalizado, o AWS KMS faz login na contado usuário de criptografia kmsuser (p. 136) (CU) no cluster selecionado. Antes de criar oarmazenamento de chaves personalizado, você deve criar o CU do kmsuser. Em seguida, ao criarseu armazenamento de chaves personalizado, você fornece a senha para o kmsuser ao AWS KMS.O AWS KMS muda a senha do kmsuser sempre que você se conecta o armazenamento de chavespersonalizado ao cluster do AWS CloudHSM associado.

Important

Não especifique a opção 2FA ao criar o CU do kmsuser. Se você fizer isso, o AWS KMSnão pode fazer login e o armazenamento de chaves personalizado não pode ser conectadoa esse cluster do AWS CloudHSM. Ao especificar o código de autenticação de dois fatores,você não pode desfazê-lo. Em vez disso, você deve excluir o CU e recriá-lo.

Para criar o CU do kmsuser, use o procedimento a seguir.

1. Inicie cloudhsm_mgmt_util conforme descrito na seção Preparar para executarcloudhsm_mgmt_util do AWS CloudHSM User Guide.

2. Use o comando createUser em cloudhsm_mgmt_util para criar um CU chamado kmsuser. Asenha deve conter de 7 a 32 caracteres alfanuméricos. Ela diferencia maiúsculas de minúsculas enão pode conter caracteres especiais.

Por exemplo, o seguinte comando cria um CU do kmsuser com uma senha de kmsPswd.

aws-cloudhsm> createUser CU kmsuser kmsPswd

Crie um Armazenamento de Chaves Personalizado(Console)Ao criar um armazenamento de chaves personalizado (p. 135) no Console de gerenciamento da AWS,você pode adicionar e criar os pré-requisitos (p. 141) como parte de seu fluxo de trabalho. No entanto, oprocesso é mais rápido quando eles são organizados com antecedência.

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS Key Management Service(AWS KMS) em https://console.aws.amazon.com/kms.

2. To change the AWS Region, use the Region selector in the upper-right corner of the page.3. In the navigation pane, choose Custom key stores.4. Selecione Create key store (Criar armazenamento de chaves).5. Digite um nome amigável para o armazenamento de chaves personalizado. O nome deve ser

exclusivo na conta.6. Selecione um cluster do AWS CloudHSM (p. 136) para o armazenamento de chaves personalizado.

Ou, para criar um novo cluster do AWS CloudHSM, escolha o link Create an AWS CloudHSM cluster(Criar um cluster do AWS CloudHSM).

O cluster deve cumprir os requisitos (p. 141) para associação com um armazenamento de chavespersonalizado. O menu exibe armazenamentos de chaves personalizados em sua conta e região queainda não estão associados a um armazenamento de chaves personalizado.

142

Page 150: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCriar um armazenamento de chaves personalizado (API)

7. Selecione Upload file (Fazer upload do arquivo), em seguida, faça o upload do certificado daâncora de confiança para o cluster do AWS CloudHSM que você escolheu. Esse é o arquivocustomerCA.crt que você criou ao inicializar o cluster.

8. Insira a senha do usuário de criptografia kmsuser (p. 136) (CU) que você criou no clusterselecionado.

9. Escolha Criar.

Se o procedimento for bem-sucedido, o novo armazenamento de chaves personalizado aparecerá na listade armazenamentos de chaves personalizados na conta e região. Se ele for malsucedido, será exibidauma mensagem de erro descrevendo o problema e fornecendo ajuda para corrigi-lo. Se precisar de ajudaadicional, consulte Solução de problemas do armazenamento de chaves personalizado (p. 167).

Avançar: Os novos armazenamentos de chaves personalizados não são conectados automaticamente.Antes de criar chaves mestras de cliente (CMKs) no armazenamento de chaves personalizado, você deveconectar o armazenamento de chaves personalizado (p. 148) ao cluster do AWS CloudHSM associado.

Criar um armazenamento de chaves personalizado(API)A operação CreateCustomKeyStore cria um novo armazenamento de chaves personalizado (p. 135)associado a um cluster do AWS CloudHSM na conta e região. Estes exemplos usam a AWS CommandLine Interface (AWS CLI), mas você pode usar qualquer linguagem de programação compatível.

A operação CreateCustomKeyStore exige os seguintes valores de parâmetros.

• CustomKeyStoreName – Um nome amigável para o armazenamento de chaves personalizado que éexclusivo na conta.

• CloudHsmClusterId – O ID de cluster de um cluster que cumpre os requisitos (p. 141) de associaçãocom um armazenamento de chaves personalizado.

• KeyStorePassword – A senha da conta de CU kmsuser no cluster especificado.• TrustAnchorCertificate – O conteúdo do arquivo customerCA.crt que você criou quando inicializou o

cluster.

O exemplo a seguir usa um ID de cluster fictício. Antes de executar o comando, substitua-o por um ID decluster válido.

$ aws kms create-custom-key-store --custom-key-store-name ExampleKeyStore \ --cloud-hsm-cluster-id cluster-1a23b4cdefg \ --key-store-password kmsPswd \ --trust-anchor-certificate <certificate-goes-here>

Se estiver usando a AWS CLI, você pode especificar o arquivo do certificado da âncora de confiança, emvez de seu conteúdo. No exemplo a seguir, o arquivo customerCA.crt no diretório raiz.

$ aws kms create-custom-key-store --custom-key-store-name ExampleKeyStore \ --cloud-hsm-cluster-id cluster-1a23b4cdefg \ --key-store-password kmsPswd \ --trust-anchor-certificate file://customerCA.crt

Quando a operação é bem-sucedida, CreateCustomKeyStore retorna o ID do armazenamento dechaves personalizado, conforme exibido na resposta de exemplo a seguir.

143

Page 151: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorO gerenciamento do armazenamento

de chaves personalizado

{ "CustomKeyStoreId": cks-1234567890abcdef0}

Se a operação falhar, corrija o erro indicado pela exceção e tente novamente. Para obter ajuda adicional,consulte Solução de problemas do armazenamento de chaves personalizado (p. 167).

Em seguida, para usar o armazenamento de chaves personalizado, conecte-o ao cluster do AWSCloudHSM (p. 148).

O gerenciamento do armazenamento de chavespersonalizado

Usando o Console de gerenciamento da AWS e a API do AWS KMS, é possível gerenciar umarmazenamento de chaves personalizado. Por exemplo, você pode visualizar um armazenamentode chaves personalizado, editar suas propriedades, conectar-se e desconectar-se do cluster do AWSCloudHSM associado e excluir o armazenamento de chaves personalizado.

Tópicos• A visualização de um armazenamento de chaves personalizado (p. 144)• Editar as configurações do armazenamento de chaves personalizado (p. 146)• Conexão e Desconexão de um armazenamento de chaves personalizado (p. 148)• A exclusão do armazenamento de chaves personalizado (p. 153)

A visualização de um armazenamento de chavespersonalizadoVocê pode visualizar armazenamentos de chaves personalizados em cada conta e região usando oConsole de gerenciamento da AWS ou a API do AWS KMS.

Para obter ajuda para visualizar as CMKs no seu armazenamento de chaves personalizado, consulte Avisualização de CMKs em um armazenamento de chaves personalizado (p. 160).

Tópicos• Visualizar um Armazenamento de Chaves Personalizado (Console) (p. 144)• Visualizar um Armazenamento de Chaves Personalizado (API) (p. 145)

Visualizar um Armazenamento de Chaves Personalizado(Console)Ao visualizar armazenamentos de chaves personalizados no Console de gerenciamento da AWS, vocêpode ver as seguintes informações:

• O nome do armazenamento de chaves personalizado• O ID do cluster do AWS CloudHSM associado• O número de HSMs no cluster• O status de conexão atual

144

Page 152: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorA visualização de um armazenamento

de chaves personalizado

Um status de conexão Disconnected (Desconectado) indica que o armazenamento de chavespersonalizado é novo e nunca foi conectado, ou foi intencionalmente desconectado do cluster do AWSCloudHSM (p. 148). No entanto, se suas tentativas de usar uma CMK em um armazenamento de chavespersonalizado conectado falharem, pode ser indício de um problema com o armazenamento de chavespersonalizado ou com o cluster do seu AWS CloudHSM. Para obter ajuda, consulte Como corrigir umaCMK com falha (p. 168).

Para visualizar armazenamentos de chaves personalizados em uma determinada conta e região, use oprocedimento a seguir.

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS Key Management Service(AWS KMS) em https://console.aws.amazon.com/kms.

2. To change the AWS Region, use the Region selector in the upper-right corner of the page.3. In the navigation pane, choose Custom key stores.

Para personalizar a exibição, clique no ícone de engrenagem que aparece abaixo do botão Create keystore (Criar armazenamento de chaves).

Visualizar um Armazenamento de Chaves Personalizado (API)Para visualizar seus armazenamentos de chaves personalizados, use a operaçãoDescribeCustomKeyStores. Por padrão, essa operação retorna todos os armazenamentos de chavespersonalizados na conta e região. No entanto, você pode usar o parâmetro CustomKeyStoreId ouCustomKeyStoreName (mas não ambos) para limitar o resultado para um determinado armazenamentode chaves personalizado. O resultado contém o ID e o nome de armazenamento de chaves personalizado,o ID do cluster do AWS CloudHSM associado, e o estado da conexão. Se o estado da conexão indica umerro, o resultado também inclui um código de erro que descreve o motivo do erro.

The examples in this section use the AWS Command Line Interface (AWS CLI), but you can use anysupported programming language.

Por exemplo, o comando a seguir retorna todos os armazenamentos de chaves personalizados na contae região. Você pode usar os parâmetros Marker e Limit para percorrer os armazenamentos de chavespersonalizados do resultado.

$ aws kms describe-custom-key-stores

O comando de exemplo a seguir usa o parâmetro CustomKeyStoreName para obter apenas oarmazenamento de chaves personalizado com o nome amigável ExampleKeyStore. É possível usar oparâmetro CustomKeyStoreName ou CustomKeyStoreId (mas não ambos) em cada comando.

O exemplo de resultado a seguir representa um armazenamento de chaves personalizado que estáconectado ao seu cluster do AWS CloudHSM. O elemento ConnectionState corresponde ao campoStatus do console.

$ aws kms describe-custom-key-stores --custom-key-store-name ExampleKeyStore{ "CustomKeyStores": [ { "CloudHsmClusterId": "cluster-1a23b4cdefg", "ConnectionState": "CONNECTED", "CreationDate": "1.499288695918E9", "CustomKeyStoreId": "cks-1234567890abcdef0", "CustomKeyStoreName": "ExampleKeyStore", "TrustAnchorCertificate": "<certificate appears here>" } ]

145

Page 153: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorEditar as configurações do

armazenamento de chaves personalizado

}

Um ConnectionState Disconnected indica que um armazenamento de chaves personalizado nuncafoi conectado, ou foi intencionalmente desconectado do cluster do AWS CloudHSM (p. 148). No entanto,se as tentativas de usar uma CMK em um armazenamento de chaves personalizado conectado falharem,pode ser indício de um problema com o armazenamento de chaves personalizado ou com o cluster do seuAWS CloudHSM. Para obter ajuda, consulte Como corrigir uma CMK com falha (p. 168).

Quando o ConnectionState do armazenamento de chaves personalizado FAILED, a respostaDescribeCustomKeyStores inclui um elemento ConnectionErrorCode que explica o motivo desseerro.

Por exemplo, no resultado a seguir, o valor INVALID_CREDENTIALS indica que a conexão doarmazenamento de chaves personalizado falhou porque a senha kmsuser é inválido (p. 169). Paraobter ajuda com relação a esta e outras falhas de erro de conexão, consulte Solução de problemas doarmazenamento de chaves personalizado (p. 167).

$ aws kms describe-custom-key-stores --custom-key-store-id cks-1234567890abcdef0{ "CustomKeyStores": [ { "CloudHsmClusterId": "cluster-1a23b4cdefg", "ConnectionErrorCode": "INVALID_CREDENTIALS" "ConnectionState": "FAILED", "CustomKeyStoreId": "cks-1234567890abcdef0", "CustomKeyStoreName": "ExampleKeyStore", "CreationDate": "1.499288695918E9", "TrustAnchorCertificate": "<certificate appears here>" } ]}

Editar as configurações do armazenamento de chavespersonalizadoVocê pode alterar as configurações de um armazenamento de chaves personalizado (p. 135) existente.O armazenamento de chaves personalizado deve ser desconectado do cluster do AWS CloudHSM.

Como editar as configurações de armazenamento de chaves personalizado:

1. Desconectar o armazenamento de chaves personalizado (p. 148) do cluster do AWS CloudHSM.Embora o armazenamento de chaves personalizado esteja desconectado, você não poderá criar chavesmestras de cliente (p. 2) (CMKs) no armazenamento de chaves personalizado nem usar as CMKs queele contém para operações de criptografia.

2. Editar uma ou mais das configurações do armazenamento de chaves personalizado.3. Reconectar o armazenamento de chaves personalizado (p. 148) ao cluster do AWS CloudHSM.

Você pode editar as seguintes configurações em um armazenamento de chaves personalizado:

O nome amigável do armazenamento de chaves personalizado.

Inserir um novo nome amigável. O novo nome deve ser exclusivo em sua conta da AWS.O ID de cluster do cluster do AWS CloudHSM associado.

Editar esse valor para substituir um cluster de AWS CloudHSM relacionado para o original. Vocêpoderá usar esse recurso para reparar um armazenamento de chaves personalizado caso o seucluster do AWS CloudHSM seja corrompido ou excluído.

146

Page 154: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorEditar as configurações do

armazenamento de chaves personalizado

Especifique um cluster do AWS CloudHSM que compartilha um histórico de backup com o clusteroriginal e cumpre os requisitos (p. 141) de associação com um armazenamento de chavespersonalizado, incluindo dois HSMs ativos em diferentes zonas de disponibilidade. Os clusters quecompartilham um histórico de backup têm o mesmo certificado do cluster. Para visualizar o certificadode cluster de um cluster, use a operação DescribeClusters. Você não pode usar o recurso de ediçãopara associar o armazenamento de chaves personalizado a um cluster do AWS CloudHSM nãorelacionado.

A senha atual do kmsuser usuário de criptografia (p. 136) (CU).

Informa ao AWS KMS a senha atual do CU kmsuser no cluster do AWS CloudHSM. Essa ação nãoaltera a senha do CU kmsuser no cluster do AWS CloudHSM.

Se você alterar a senha do CU kmsuser no cluster do AWS CloudHSM, use esse recurso parainformar ao AWS KMS a nova senha kmsuser. Caso contrário, o AWS KMS não poderá fazer loginno cluster, e todas as tentativas de conectar o armazenamento de chaves personalizado ao clusterfalham.

Tópicos• Editar um Armazenamento de Chaves Personalizado (Console) (p. 147)• Editar um Armazenamento de Chaves Personalizado (API) (p. 148)

Editar um Armazenamento de Chaves Personalizado (Console)Ao editar o armazenamento de chaves personalizado, você pode alterar qualquer um ou todos os valoresconfiguráveis.

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS Key Management Service(AWS KMS) em https://console.aws.amazon.com/kms.

2. To change the AWS Region, use the Region selector in the upper-right corner of the page.3. In the navigation pane, choose Custom key stores.4. Escolha o armazenamento de chaves personalizado que você deseja editar.5. Se o valor na coluna Status não é DISCONNECTED (DESCONECTADO), você deve desconectar

o armazenamento de chaves personalizado para editá-lo. No menu Key store actions (Ações doarmazenamento de chaves), selecione Disconnect custom key store (Desconectar o armazenamentode chaves personalizado).

6. No menu Key store actions (Ações do armazenamento de chaves), selecione Edit custom key storesettings (Editar as configurações de armazenamento de chaves personalizado).

7. Faça uma ou mais das ações a seguir.

• Digite um novo nome amigável para o armazenamento de chaves personalizado.• Digite o ID de cluster de um cluster do AWS CloudHSM associado.• Digite a senha atual do usuário de criptografia kmsuser no cluster do AWS CloudHSM associado.

8. Escolha Salvar.

Se o procedimento for bem-sucedido, uma mensagem descreverá as configurações que você editou.Se for malsucedido, será exibida uma mensagem de erro descrevendo o problema e fornecendo ajudapara corrigi-lo. Se precisar de ajuda adicional, consulte Solução de problemas do armazenamento dechaves personalizado (p. 167).

9. Reconecte o armazenamento de chaves personalizado. (p. 148)

Para usar o armazenamento de chaves personalizado, você deve reconectá-lo após a edição. Vocêpode deixar o armazenamento de chaves personalizado desconectado. Embora esteja desconectado,

147

Page 155: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorConexão e Desconexão de um

armazenamento de chaves personalizado

você não poderá criar CMKs no armazenamento de chaves personalizado nem usar as CMKs noarmazenamento de chaves personalizado em operações de criptografia.

Editar um Armazenamento de Chaves Personalizado (API)Para alterar as propriedades de um armazenamento de chaves personalizado, use a operaçãoUpdateCustomKeyStore. Você pode alterar várias propriedades de um armazenamento de chavespersonalizado no mesmo comando. If the operation is successful, AWS KMS returns an HTTP 200response and a JSON object with no properties.

The examples in this section use the AWS Command Line Interface (AWS CLI), but you can use anysupported programming language.

Comece usando DisconnectCustomKeyStore para desconectar o armazenamento de chavespersonalizado (p. 148) do AWS KMS. Substitua o ID de exemplo do armazenamento de chavespersonalizado, cks-1234567890abcdef0, por um ID real.

$ aws kms disconnect-custom-key-store --custom-key-store-id cks-1234567890abcdef0

O primeiro exemplo usa UpdateCustomKeyStore para alterar o nome amigável do armazenamento dechaves personalizado por DevelopmentKeys. O comando usa o parâmetro CustomKeyStoreId paraidentificar o armazenamento de chaves personalizado e CustomKeyStoreName para especificar o novonome para o armazenamento de chaves personalizado.

$ aws kms update-custom-key-store --custom-key-store-id cks-1234567890abcdef0 --new-custom-key-store-name DevelopmentKeys

O exemplo a seguir altera o cluster associado a um armazenamento de chaves personalizado poroutro backup do mesmo cluster. O comando usa o parâmetro CustomKeyStoreId para identificar oarmazenamento de chaves personalizado e o parâmetro CloudHsmClusterId para especificar o novo IDdo cluster.

$ aws kms update-custom-key-store --custom-key-store-id cks-1234567890abcdef0 --cloud-hsm-cluster-id cluster-1a23b4cdefg

O exemplo a seguir mostra ao AWS KMS que a senha kmsuser atual é ExamplePassword. O comandousa o parâmetro CustomKeyStoreId para identificar o armazenamento de chaves personalizado e oparâmetro KeyStorePassword para especificar a senha atual.

$ aws kms update-custom-key-store --custom-key-store-id cks-1234567890abcdef0 --key-store-password ExamplePassword

O comando final reconecta o armazenamento de chaves personalizado ao AWS KMS. É possível deixaro armazenamento de chaves personalizado no estado desconectado, mas você deve conectá-lo para quepossa criar novas CMKs ou usar as CMKs existentes para operações de criptografia. Substitua o ID deexemplo do armazenamento de chaves personalizado por um ID real.

$ aws kms connect-custom-key-store --custom-key-store-id cks-1234567890abcdef0

Conexão e Desconexão de um armazenamento dechaves personalizadoOs novos armazenamentos de chaves personalizados não são conectados. Antes de criar e usar chavesmestras de cliente (CMKs) no seu armazenamento de chaves personalizado, você precisa conectá-lo ao

148

Page 156: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorConexão e Desconexão de um

armazenamento de chaves personalizado

cluster do AWS CloudHSM associado. Você pode conectar e desconectar seu armazenamento de chavespersonalizado a qualquer momento, e visualizar seu status de conexão (p. 144).

Não é necessário conectar seu armazenamento de chaves personalizado. Você pode deixar umarmazenamento de chaves personalizado em estado desconectado indefinidamente e conectá-lo somentequando precisar usá-lo. No entanto, você pode desejar testar a conexão periodicamente para verificar seas configurações estão corretas e se ele pode ser conectado.

Note

Custom key stores have a DISCONNECTED status only when the key store has never beenconnected or you explicitly disconnect it. If your custom key store status is CONNECTED but youare having trouble using it, make sure that its associated AWS CloudHSM cluster is active andcontains at least one active HSMs. For help with connection failures, see the section called“Solução de problemas do armazenamento de chaves personalizado” (p. 167)

Conectando um armazenamento de chaves personalizado

Quando você conecta um armazenamento de chaves personalizado, o AWS KMS localiza o clusterdo AWS CloudHSM associado, se conecta, faz login no cliente do AWS CloudHSM como usuário decriptografia (CU) kmsuser (p. 136) e, em seguida, muda a senha kmsuser. O AWS KMS permaneceráconectado ao cliente do AWS CloudHSM enquanto o armazenamento de chaves personalizado estiverconectado.

Para estabelecer a conexão, o AWS KMS cria grupos de segurança chamados kms-<custom keystore ID> na virtual private cloud (VPC) do cluster. O grupo de segurança tem uma única regra quepermite o tráfego de entrada dos grupos de segurança do cluster. O AWS KMS também cria uma interfacede rede elástica (ENI) em cada zona de disponibilidade da sub-rede privada para o cluster. O AWS KMSadiciona as ENIs ao grupo de segurança kms-<cluster ID> e os grupos de segurança para o cluster. Adescrição de cada ENI é KMS managed ENI for cluster <cluster-ID>.

O processo de conexão pode demorar um período prolongado para ser concluído; até 20 minutos.

Antes de conectar o armazenamento de chaves personalizado, verifique se ele atende aos requisitos.

• Seu cluster do AWS CloudHSM associado deve conter pelo menos um HSM ativo. Para localizar onúmero de HSMs no cluster, visualize o cluster no console do AWS CloudHSM ou use a operaçãoDescribeClusters. Se necessário, você pode adicionar um HSM.

• O status de conexão do armazenamento de chaves personalizado não pode ser DISCONNECTINGou FAILED. Você pode visualizar o status de conexão (p. 144) no console ou usando a operaçãoDescribeCustomKeyStores. Se o status da conexão for FAILED, desconecte o armazenamento dechaves personalizado e conecte-o novamente.

Quando o seu armazenamento de chaves personalizado está conectado, você pode criar CMKsnele (p. 156) e usar CMKs existentes em operações de criptografia.

Desconectando um armazenamento de chaves personalizado

Quando você desconecta um armazenamento de chaves personalizado, o AWS KMS faz logout do clienteAWS CloudHSM, desconecta-se do cluster do AWS CloudHSM associado e remove a infraestrutura derede que ele criou para oferecer suporte à conexão.

Enquanto um armazenamento de chaves personalizado é desconectado, você pode gerenciar oarmazenamento de chaves personalizado e suas chaves mestras de cliente (CMKs), mas não pode criarnem usar CMKs no armazenamento de chaves personalizado. O status do armazenamento de chaves éDISCONNECTED e o estado da chave (p. 175) das CMKs no armazenamento de chaves personalizadoé Unavailable, a menos que esteja PendingDeletion. Você pode reconectar o armazenamento dechaves personalizado a qualquer momento.

149

Page 157: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorConexão e Desconexão de um

armazenamento de chaves personalizado

Note

While a custom key store is disconnected, all attempts to create customer master keys (CMKs) inthe custom key store or to use existing CMKs in cryptographic operations will fail. This action canprevent users from storing and accessing sensitive data.

Para avaliar melhor o efeito de desconectar o armazenamento de chaves, identifique as CMKs (p. 163)no armazenamento de chaves personalizado e determine seu uso anterior (p. 130).

Você pode desconectar o armazenamento de chaves personalizado por motivos como o seguinte:

• Para mudar a senha do kmsuser. O AWS KMS altera a senha kmsuser toda vez que se conecta aocluster do AWS CloudHSM. Para forçar uma mudança de senha, basta desconectar e reconectar.

 • Para auditar o material de chaves das CMKs no cluster do AWS CloudHSM. Quando você desconecta

o armazenamento de chaves personalizado, o AWS KMS faz logout da conta do usuário de criptografiakmsuser (p. 136) no cliente AWS CloudHSM. Isso permite a você efetuar login no cluster como CUkmsuser e auditar e gerenciar o material de chaves para a CMK.

 • Desativar imediatamente todas as CMKs no armazenamento de chaves personalizado. Você pode

desativar e reativar (p. 30) CMKs em um armazenamento de chaves personalizado usando a APIdo Console de gerenciamento da AWS ou a operação DisableKey. Essas operações são concluídasrapidamente, mas atuam em uma CMK por vez. A desconexão imediata altera o estado da chave detodas as CMKs na chave personalizada para Unavailable, o que impede que elas sejam usadas emoperações de criptografia.

 • Para reparar uma falha na tentativa de conexão. Se ocorrer falha em uma tentativa de conectar-

se a um armazenamento de chaves personalizado (o status de conexão do armazenamento dechaves personalizado apresentado é FAILED), você deve desconectar o armazenamento de chavespersonalizado antes de tentar se conectar novamente.

Tópicos• Conectar um Armazenamento de chaves personalizado (Console) (p. 150)• Conectar um armazenamento de chaves personalizado (API) (p. 151)• Desconectar um Armazenamento de chaves personalizado (Console) (p. 152)• Desconectar um armazenamento de chaves personalizado (API) (p. 152)

Conectar um Armazenamento de chaves personalizado(Console)Para conectar um armazenamento de chaves personalizado ao Console de gerenciamento da AWS,comece selecionando o armazenamento de chaves personalizado a partir da página Custom key stores(Armazenamentos de chaves personalizados). O precesso pode levar até 20 minutos.

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS Key Management Service(AWS KMS) em https://console.aws.amazon.com/kms.

2. To change the AWS Region, use the Region selector in the upper-right corner of the page.3. In the navigation pane, choose Custom key stores.4. Escolha o armazenamento de chaves personalizado que você deseja conectar.

150

Page 158: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorConexão e Desconexão de um

armazenamento de chaves personalizado

5. Se o status do armazenamento de chaves personalizado for FAILED (FALHA), você deve desconectaro armazenamento de chaves personalizado (p. 152) antes de conectá-lo.

6. No menu Key store actions (Ações do armazenamento de chaves), selecione Connect custom keystore (Conectar o armazenamento de chaves personalizado).

O AWS KMS inicia o processo de conexão do seu armazenamento de chaves personalizado. Ele localizao cluster do AWS CloudHSM associado, cria a infraestrutura de rede necessária, se conecta, faz login nocluster do AWS CloudHSM como CU do kmsuser e muda a senha do kmsuser. Quando a operação éconcluída, o estado de conexão é alterado para CONNECTED (CONECTADO).

Se houver falha na operação, uma mensagem descrevendo o motivo da falha será exibida. Antes detentar se conectar novamente, visualize o status da conexão (p. 144) do seu armazenamento dechaves personalizado. Se for FAILED (FALHA), você deve desconectar o armazenamento de chavespersonalizado (p. 152) antes de conectá-lo novamente. Se precisar de ajuda, consulte Solução deproblemas do armazenamento de chaves personalizado (p. 167).

Avançar: Crie CMKs em um armazenamento de chaves personalizado (p. 156).

Conectar um armazenamento de chaves personalizado (API)Para conectar um armazenamento de chaves personalizado desconectado, use a operaçãoConnectCustomKeyStore. O cluster do AWS CloudHSM associado deve conter pelo menos um HSM ativo,e o status da conexão não pode ser FAILED.

O processo de conexão demora um período prolongado para ser concluído; até 20 minutos. A menosque ocorra uma falha rapidamente, a operação retornará uma resposta HTTP 200 e um objeto JSONsem propriedades. No entanto, essa resposta inicial não indica que a conexão foi bem-sucedida.Para determinar o status da conexão do armazenamento de chaves personalizado, use a operaçãoDescribeCustomKeyStores.

The examples in this section use the AWS Command Line Interface (AWS CLI), but you can use anysupported programming language.

Para identificar o armazenamento de chaves personalizado, use o ID de armazenamento de chavespersonalizado Você pode encontrar o ID na página Armazenamentos de chaves personalizados noconsole ou usando a operação DescribeCustomKeyStores. Antes de executar esse exemplo, substitua oID de exemplo por um válido.

$ aws kms connect-custom-key-store --custom-key-store-id cks-1234567890abcdef0

Para verificar se o armazenamento de chaves personalizado está conectado, use a operaçãoDescribeCustomKeyStores. Por padrão, essa operação retorna todos os armazenamentos de chavespersonalizados em sua conta e região. No entanto, você pode usar o parâmetro CustomKeyStoreId ouCustomKeyStoreName (mas não ambos) para limitar a resposta para determinados armazenamentos dechaves personalizados. O valor ConnectionState CONNECTED indica que o armazenamento de chavespersonalizado está conectado ao cluster do AWS CloudHSM.

$ aws kms describe-custom-key stores --custom-key-store-id cks-1234567890abcdef0{ "CustomKeyStores": [ "CustomKeyStoreId": "cks-1234567890abcdef0", "CustomKeyStoreName": "ExampleKeyStore", "CloudHsmClusterId": "cluster-1a23b4cdefg", "TrustAnchorCertificate": "<certificate string appears here>", "CreationDate": "1.499288695918E9", "ConnectionState": "CONNECTED"

151

Page 159: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorConexão e Desconexão de um

armazenamento de chaves personalizado

],}

Se ocorrer falha no valor ConnectionState, o elemento ConnectionErrorCode indica o motivo dafalha. Nesse caso, o AWS KMS não conseguiu encontrar um cluster do AWS CloudHSM em sua contacom o ID do cluster cluster-1a23b4cdefg. Se você excluiu o cluster, você pode restaurá-lo a partir deum backup do cluster original e, em seguida, editar o ID do cluster (p. 146) para o armazenamento dechaves personalizado.

$ aws kms describe-custom-key stores --custom-key-store-id cks-1234567890abcdef0{ "CustomKeyStores": [ "CustomKeyStoreId": "cks-1234567890abcdef0", "CustomKeyStoreName": "ExampleKeyStore", "CloudHsmClusterId": "cluster-1a23b4cdefg", "TrustAnchorCertificate": "<certificate string appears here>", "CreationDate": "1.499288695918E9", "ConnectionState": "FAILED" "ConnectionErrorCode": "CLUSTER_NOT_FOUND" ],}

Avançar: Crie CMKs em um armazenamento de chaves personalizado (p. 156).

Desconectar um Armazenamento de chaves personalizado(Console)Para desconectar um armazenamento de chaves personalizado conectado ao Console de gerenciamentoda AWS, comece selecionando o armazenamento de chaves personalizado a partir da página Custom keystores (Armazenamentos de chaves personalizados).

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS Key Management Service(AWS KMS) em https://console.aws.amazon.com/kms.

2. To change the AWS Region, use the Region selector in the upper-right corner of the page.3. In the navigation pane, choose Custom key stores.4. Escolha o armazenamento de chaves personalizado que você deseja desconectar.5. No menu Key store actions (Ações do armazenamento de chaves), selecione Disconnect custom key

store (Desconectar o armazenamento de chaves personalizado).

Quando a operação é concluída, o estado de conexão é alterado de DISCONNECTING(DESCONECTANDO) para DISCONNECTED (DESCONECTADO). Se ocorrer falha na operação, seráexibida uma mensagem de erro descrevendo o problema e fornecendo ajuda para corrigi-lo. Se precisar deajuda adicional, consulte Solução de problemas do armazenamento de chaves personalizado (p. 167).

Desconectar um armazenamento de chaves personalizado (API)Para desconectar um armazenamento de chaves personalizado conectado, use a operaçãoDisconnectCustomKeyStore. If the operation is successful, AWS KMS returns an HTTP 200 response anda JSON object with no properties.

The examples in this section use the AWS Command Line Interface (AWS CLI), but you can use anysupported programming language.

Esse exemplo desconecta um armazenamento de chaves personalizado. Antes de executar esse exemplo,substitua o ID de exemplo por um válido.

152

Page 160: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorA exclusão do armazenamento de chaves personalizado

$ aws kms disconnect-custom-key-store --custom-key-store-id cks-1234567890abcdef0

Para verificar se o armazenamento de chaves personalizado está desconectado, use a operaçãoDescribeCustomKeyStores. Por padrão, essa operação retorna todos os armazenamentos de chavespersonalizados em sua conta e região. No entanto, você pode usar o parâmetro CustomKeyStoreId eCustomKeyStoreName (mas não ambos) para limitar a resposta para determinados armazenamentosde chaves personalizados. O valor ConnectionState DISCONNECTED indica que o armazenamento dechaves personalizado não está conectado ao cluster do AWS CloudHSM.

$ aws kms describe-custom-key stores --custom-key-store-id cks-1234567890abcdef0{ "CustomKeyStores": [ "CloudHsmClusterId": "cluster-1a23b4cdefg", "ConnectionState": "DISCONNECTED", "CreationDate": "1.499288695918E9", "CustomKeyStoreId": "cks-1234567890abcdef0", "CustomKeyStoreName": "ExampleKeyStore", "TrustAnchorCertificate": "<certificate string appears here>" ],}

A exclusão do armazenamento de chavespersonalizadoAo excluir um armazenamento de chaves personalizado, o AWS KMS exclui todos os metadados sobreo armazenamento de chaves personalizado do KMS, incluindo informações sobre sua associação a umcluster do AWS CloudHSM. Essa operação não afeta o cluster do AWS CloudHSM, seus HSMs, nemseus usuários. Você pode criar um novo armazenamento de chaves personalizado associado ao clusterespecificado, mas não pode desfazer a operação de exclusão.

Você só pode excluir um armazenamento de chaves personalizado que esteja desconectado do AWS KMSe que não contenha chaves mestras de cliente (CMKs). Antes de excluir um armazenamento de chavespersonalizado, faça o seguinte.

• Verifique se você ainda precisará usar alguma das CMKs no armazenamento de chaves para operaçõesde criptografia. Em seguida, programe a exclusão (p. 166) de todas as CMKs do armazenamento dechaves. Para obter ajuda para localizar as CMKs em um armazenamento de chaves personalizado,consulte Encontre as CMKs em um armazenamento de chaves personalizado (p. 163).

• Confirme se todas as CMKs foram excluídas. Para visualizar as CMKs em um armazenamentode chaves personalizado, consulte A visualização de CMKs em um armazenamento de chavespersonalizado (p. 160).

• Desconectar o armazenamento de chaves personalizado (p. 148) do AWS KMS.

Em vez de excluir o armazenamento de chaves personalizado, considere desconectá-lo (p. 148) docluster do AWS CloudHSM associado. Ainda que o armazenamento de chaves personalizado sejadesconectado, é possível gerenciar o armazenamento de chaves personalizado e suas chaves mestrasde cliente (CMKs). No entanto, não é possível criar nem usar CMKs no armazenamento de chavespersonalizado. Você pode reconectar o armazenamento de chaves personalizado a qualquer momento.

Caso tenha excluído todos os armazenamentos de chaves personalizados de todas as regiões da suaconta da AWS e não pretenda criar mais, você deve excluir a função vinculada ao serviço (p. 139) que oAWS KMS usa para armazenamentos de chaves personalizados.

Tópicos• Excluir um Armazenamento de Chaves Personalizado (Console) (p. 154)

153

Page 161: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorA exclusão do armazenamento de chaves personalizado

• Excluir um Armazenamento de Chaves Personalizado (API) (p. 154)

Excluir um Armazenamento de Chaves Personalizado (Console)Para excluir um armazenamento de chaves personalizado no Console de gerenciamento da AWS,comece selecionando o armazenamento de chaves personalizado a partir da página Custom key stores(Armazenamentos de chaves personalizados).

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS Key Management Service(AWS KMS) em https://console.aws.amazon.com/kms.

2. To change the AWS Region, use the Region selector in the upper-right corner of the page.3. In the navigation pane, choose Custom key stores.4. Encontre a linha que representa o armazenamento de chaves personalizado que você deseja

remover. Se o status do armazenamento de chaves personalizado não for DISCONNECTED(DESCONECTADO), você deve desconectar o armazenamento de chaves personalizado (p. 148)antes de excluir o armazenamento de chaves personalizado.

5. No menu Key store actions (Ações do armazenamento de chaves), selecione Delete custom key store(Excluir o armazenamento de chaves personalizado).

Quando a operação for concluída, uma mensagem de êxito será exibida e o armazenamento de chavespersonalizado não aparecerá mais na lista de armazenamento de chaves personalizada. Se a operaçãonão for bem-sucedida, será exibida uma mensagem de erro descrevendo o problema e fornecendo ajudapara corrigi-lo. Se precisar de ajuda adicional, consulte Solução de problemas do armazenamento dechaves personalizado (p. 167).

Excluir um Armazenamento de Chaves Personalizado (API)Para excluir um armazenamento de chaves personalizado, use a operação DeleteCustomKeyStore. If theoperation is successful, AWS KMS returns an HTTP 200 response and a JSON object with no properties.

Para começar, verifique se o armazenamento de chaves personalizado não contém chaves mestrasde cliente (CMKs) do AWS KMS. Não é possível excluir um armazenamento de chaves personalizadoque contém CMKs. O primeiro comando de exemplo usa ListKeys e DescribeKey para pesquisarchaves mestras de cliente do AWS KMS no armazenamento de chaves personalizado com ocks-1234567890abcdef0 ID de armazenamento de chaves fictício. Nesse caso, o comando não retornanenhuma CMK. Se retornar, use a operação ScheduleKeyDeletion para programar a exclusão de cadauma das CMKs.

Bash

for key in $(aws kms list-keys --query 'Keys[*].KeyId' --output text) ; do aws kms describe-key --key-id $key | grep '"CustomKeyStoreId": "cks-1234567890abcdef0"' --context 100; done

PowerShell

PS C:\> (Get-KMSKeyList).KeyArn | foreach {Get-KMSKey -KeyId $_} | where CustomKeyStoreId -eq 'cks-1234567890abcdef0'

Em seguida, desconecte o armazenamento de chaves personalizado. Este exemplo de comando usa aoperação DisconnectCustomKeyStore para desconectar o armazenamento de chaves personalizado docluster do AWS CloudHSM. Antes de executar um comando como esse, substitua o ID de exemplo doarmazenamento de chaves personalizado por um válido.

154

Page 162: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorO gerenciamento de CMKs em um

armazenamento de chaves personalizado

Bash

$ aws kms disconnect-custom-key-store --custom-key-store-id cks-1234567890abcdef0

PowerShell

PS C:\> Disconnect-KMSCustomKeyStore -CustomKeyStoreId cks-1234567890abcdef0

Após o armazenamento de chaves personalizado ser desconectado, você pode usar a operaçãoDeleteCustomKeyStore para excluí-lo.

Bash

$ aws kms delete-custom-key-store --custom-key-store-id cks-1234567890abcdef0

PowerShell

PS C:\> Remove-KMSCustomKeyStore -CustomKeyStoreId cks-1234567890abcdef0

O gerenciamento de CMKs em um armazenamentode chaves personalizado

Você pode criar, visualizar, gerenciar, usar e programar a exclusão de chaves mestras do cliente (CMKs)em um armazenamento de chaves personalizado. Os procedimentos são muito semelhantes aos usadospara CMKs no AWS KMS. A única diferença é que você especifica um armazenamento de chavespersonalizado ao criar a CMK. Em seguida, o AWS KMS cria o material de chaves não extraíveis para aCMK no cluster do AWS CloudHSM que está associado ao armazenamento de chaves personalizado.Quando você usa uma CMK em um armazenamento de chaves personalizado, as operações decriptografia são realizadas nos HSMs do cluster.

Além dos procedimentos discutidos nesta seção, você pode fazer o seguinte com as CMKs em umarmazenamento de chaves personalizado:

• Usar políticas de chaves, políticas do IAM e concessões para autorizar o acesso (p. 32) à CMK.• Atribuir tags (p. 27) aos CMKs e criar aliases (p. 294) que consultem as CMKs.• Usar as CMKs para operações de criptografia, incluindo criptografar, descriptografar, recriptografar

e gerar chaves de dados. Para obter mais detalhes, consulte AWS Key Management Service APIReference.

• Usar as CMKs com serviços da AWS que se integram ao AWS KMS (p. 179) e oferecem suporte àsCMKs gerenciadas pelo cliente.

• Acompanhe o uso da sua CMK em AWS CloudTrail logs (p. 236) e ferramentas de monitoramento deAmazon CloudWatch (p. 229).

No entanto, você não pode importar o material de chaves para uma CMK em um armazenamento dechaves personalizado.

Tópicos• A criação de CMKs em um armazenamento de chaves personalizado (p. 156)

155

Page 163: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorA criação de CMKs em um

armazenamento de chaves personalizado

• A visualização de CMKs em um armazenamento de chaves personalizado (p. 160)• A utilização de CMKs em um armazenamento de chaves personalizado (p. 161)• Como encontrar CMKs e materiais de chave (p. 162)• Programação de exclusão de CMKs de um armazenamento de chaves personalizado (p. 166)

A criação de CMKs em um armazenamento de chavespersonalizadoDepois de criar um armazenamento de chaves personalizado, você pode criar chaves mestras decliente (p. 2) (CMKs) no seu armazenamento de chaves. Em seguida, você pode usar e gerenciar essasCMKs do mesmo modo que usaria qualquer CMK no AWS KMS. Por exemplo, você pode fazer o seguinte:

• Crie aliases que apontam para as CMKs.• Defina políticas de chave e do IAM nas CMKs.• Habilite e desabilite as CMKs.• Programe as exclusões das CMKs.• Use as CMKs para operações de criptografia.

Para criar uma CMK em um armazenamento de chaves personalizado, o armazenamento de chavespersonalizado deve ser conectado ao cluster do AWS CloudHSM associado (p. 148) e o clusterdeve conter pelo menos dois HSMs ativos em diferentes zonas de disponibilidade. Para encontraro status de conexão e o número de HSMs, visualize a página de armazenamentos de chavespersonalizados (p. 144) no Console de gerenciamento da AWS. Ao usar as operações de API, use aoperação DescribeCustomKeyStores para verificar se o armazenamento de chaves personalizado estáconectado. Use a operação DescribeClusters do AWS CloudHSM para obter o número de HSMs ativos nocluster e nas suas zonas de disponibilidade.

Quando você cria uma CMK em seu armazenamento de chaves personalizado, o AWS KMS cria a CMKno AWS KMS. No entanto, ele cria o material de chaves para a CMK no cluster do AWS CloudHSMassociado. Especificamente, o AWS KMS faz login no cluster como o CU do kmsuser que vocêcriou (p. 141). Em seguida, ele cria uma chave simétrica Advanced Encryption Standard (AES) de 256bits, persistente e não exportável no cluster. O AWS KMS define o valor do atributo do rótulo de chave, queé visível apenas no cluster, para o nome de recurso da Amazon (ARN) da CMK.

Quando o comando é bem-sucedido, o estado de chave (p. 175) da nova CMK é Enabled e sua origemé AWS_CLOUDHSM. Você não poderá alterar a origem de nenhuma CMK depois de criá-la. Ao visualizaruma CMK em um armazenamento de chaves personalizado no console ou usando a operação de APIDescribeKey, é possível ver as propriedades típicas, como o ID da chave, o estado da chave, e a datada criação. No entanto, você também pode ver o ID do armazenamento de chaves personalizado e(opcionalmente) o ID do cluster do AWS CloudHSM. Para obter mais detalhes, consulte A visualização deCMKs em um armazenamento de chaves personalizado (p. 160).

Se ocorrer falha na tentativa de criar uma CMK em seu armazenamento de chaves personalizado,use a mensagem de erro para ajudá-lo a determinar a causa. Ela pode indicar que o armazenamentode chaves personalizado não está conectado (CustomKeyStoreInvalidStateException) ou ocluster do AWS CloudHSM associado não tem os dois HSMs ativos necessários para essa operação(CloudHsmClusterInvalidConfigurationException). Para obter ajuda, consulte Solução deproblemas do armazenamento de chaves personalizado (p. 167).

Tópicos• Crie uma CMK em um Armazenamento de Chaves Personalizado (Console) (p. 157)• Criar uma CMK em um armazenamento de chaves personalizado (API) (p. 158)

156

Page 164: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorA criação de CMKs em um

armazenamento de chaves personalizado

Crie uma CMK em um Armazenamento de Chaves Personalizado(Console)Use o procedimento a seguir para criar uma chave mestra de cliente (CMK) em um armazenamento dechaves personalizado.

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS Key Management Service(AWS KMS) em https://console.aws.amazon.com/kms.

2. To change the AWS Region, use the Region selector in the upper-right corner of the page.3. In the navigation pane, choose Customer managed keys.4. Escolha Criar chave.5. Digite um alias e uma descrição opcional para a CMK.6. Escolha Advanced options (Opções avançadas).7. No que se refere à Key material origin (Origem do material de chaves), selecione Custom key store

(CloudHSM) (Armazenamento de chaves personalizado (CloudHSM)).8. Escolha Next.9. Selecione um armazenamento de chaves personalizado para a sua nova CMK. Para criar um novo

armazenamento de chaves personalizado, escolha Create custom key store (Criar armazenamento dechaves personalizado).

O armazenamento de chaves personalizado que você selecionar deve ter o status CONNECTED(CONECTADO). Seu cluster do AWS CloudHSM associado deve estar ativo e conter pelo menos doisHSMs ativos em diferentes zonas de disponibilidade.

Para obter ajuda com a conexão de um armazenamento de chaves personalizado, consulte Conexãoe Desconexão de um armazenamento de chaves personalizado (p. 148). Para obter ajuda com ainclusão de HSMs, consulte Adding an HSM (Adicionar um HSM) no AWS CloudHSM User Guide.

10. Escolha Next.11. (Optional). Na página Add Tags (Adicionar tags), adicione tags que identificam ou categorizam sua

CMK.

When you add tags to your AWS resources, AWS generates a cost allocation report with usage andcosts aggregated by tags. For information about tagging CMKs, see Chaves de tags (p. 27).

12. Escolha Next.13. Na seção Key Administrators (Administradores de chaves), selecione os usuários e as funções do

IAM que podem gerenciar a CMK. Para obter mais informações, consulte Allows Key Administrators toAdminister the CMK (Permite que os administradores de chaves administrem a CMK) (p. 39).

Note

As políticas do IAM podem conceder a outros usuários e outras funções do IAM permissãopara usar a CMK.

14. (Opcional) Para impedir que esses administradores de chaves excluam essa CMK, desmarque a caixana parte inferior da página, Allow key administrators to delete this key (Permitir que administradores dechaves excluam esta chave).

15. Escolha Next.16. Na seção This account (Esta conta), selecione os usuários e as funções do IAM nessa conta da AWS

que podem usar a CMK nas operações de criptografia. Para obter mais informações, consulte AllowsKey Users to Use the CMK (Permite que os usuários de chaves usem a CMK) (p. 41).

Note

As políticas do IAM podem conceder a outros usuários e outras funções do IAM permissãopara usar a CMK.

157

Page 165: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorA criação de CMKs em um

armazenamento de chaves personalizado

17. (Opcional) Você pode permitir que outras contas da AWS usem essa CMK para operações decriptografia. Para fazer isso, na seção Other AWS accounts (Outras contas da AWS) na parte inferiorda página, escolha Add another AWS account (Adicionar outra conta da AWS) e insira o número deidentificação da conta da AWS de uma conta externa. Para adicionar várias contas externas, repitaessa etapa.

Note

Os administradores das outras contas da AWS também devem permitir o acesso à CMK,criando políticas do IAM para seus usuários. Para obter mais informações, consulte AllowingExternal AWS Accounts to Access a CMK (Permitir que contas externas da AWS acessemuma CMK) (p. 51).

18. Escolha Next.19. Na página Review and edit key policy (Revisar e editar política de chaves), revise e edite o documento

de política para a nova CMK. Quando terminar, escolha Concluir.

Se o procedimento é bem-sucedido, a exibição mostra a nova CMK no armazenamento de chavespersonalizado que você escolheu. Quando você escolhe o nome ou alias da nova CMK, sua página dedetalhes exibe a origem da CMK (CloudHSM), o nome e o ID do armazenamento de chaves personalizadoe o ID do cluster do AWS CloudHSM. Se houver falha no procedimento, uma mensagem descrevendo afalha será exibida.

Tip

Para facilitar a identificação de CMKs em um armazenamento de chaves personalizado, napágina Customer managed keys (Chaves gerenciadas pelo cliente), adicione a coluna Customkey store ID (ID de armazenamento de chaves personalizado) à exibição. Clique no ícone deengrenagem no canto superior direito e selecione Custom key store ID (ID de armazenamento dechaves personalizado).

Criar uma CMK em um armazenamento de chaves personalizado(API)Para criar uma nova chave mestra do cliente (p. 2) (CMK) no seu armazenamento de chavespersonalizado, use a operação CreateKey. Use o parâmetro CustomKeyStoreId para identificar oarmazenamento de chaves personalizado e especificar um valor de Origin da AWS_CLOUDHSM.

Você também pode usar o parâmetro Policy para especificar uma política de chaves. Você pode alterar apolítica de chaves (PutKeyPolicy) e adicionar elementos opcionais, como uma descrição e tags a qualquermomento.

The examples in this section use the AWS Command Line Interface (AWS CLI), but you can use anysupported programming language.

O exemplo a seguir começa com uma chamada para a operação DescribeCustomKeyStores para verificarse o armazenamento de chaves personalizado está conectado ao cluster do AWS CloudHSM associado.Por padrão, essa operação retorna todos os armazenamentos de chaves personalizados em sua conta eregião. Para descrever apenas determinado armazenamento de chaves personalizado, use o parâmetroCustomKeyStoreId ou CustomKeyStoreName (mas não ambos).

Antes de executar um comando como esse, substitua o ID de exemplo do armazenamento de chavespersonalizado por um ID válido.

$ aws kms describe-custom-key stores --custom-key-store-id cks-1234567890abcdef0{ "CustomKeyStores": [ "CustomKeyStoreId": "cks-1234567890abcdef0", "CustomKeyStoreName": "ExampleKeyStore", "CloudHsmClusterId": "cluster-1a23b4cdefg",

158

Page 166: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorA criação de CMKs em um

armazenamento de chaves personalizado

"TrustAnchorCertificate": "<certificate string appears here>", "CreationDate": "1.499288695918E9", "ConnectionState": "CONNECTED" ],}

O exemplo a seguir usa o comando de operação DescribeClusters para verificar se o cluster do AWSCloudHSM associado à ExampleKeyStore (cluster-1a23b4cdefg) contém pelo menos dois HSMs ativos.Se o cluster tiver menos de dois HSMs, ocorrerá falha na operação CreateKey.

$ aws cloudhsmv2 describe-clusters{ "Clusters": [ { "SubnetMapping": { ... }, "CreateTimestamp": 1507133412.351, "ClusterId": "cluster-1a23b4cdefg", "SecurityGroup": "sg-865af2fb", "HsmType": "hsm1.medium", "VpcId": "vpc-1a2b3c4d", "BackupPolicy": "DEFAULT", "Certificates": { "ClusterCertificate": "-----BEGIN CERTIFICATE-----\...\n-----END CERTIFICATE-----\n" }, "Hsms": [ { "AvailabilityZone": "us-west-2a", "EniIp": "10.0.1.11", "ClusterId": "cluster-1a23b4cdefg", "EniId": "eni-ea8647e1", "StateMessage": "HSM created.", "SubnetId": "subnet-a6b10bd1", "HsmId": "hsm-abcdefghijk", "State": "ACTIVE" }, { "AvailabilityZone": "us-west-2b", "EniIp": "10.0.0.2", "ClusterId": "cluster-1a23b4cdefg", "EniId": "eni-ea8647e1", "StateMessage": "HSM created.", "SubnetId": "subnet-b6b10bd2", "HsmId": "hsm-zyxwvutsrqp", "State": "ACTIVE" }, ], "State": "ACTIVE" } ]}

Este comando de exemplo usa a operação CreateKey para criar uma CMK no armazenamento dechaves personalizado. Para criar uma CMK em um armazenamento de chaves personalizado, você devefornecer o ID do nome do armazenamento de chaves personalizado e especificar um valor de Origin daAWS_CLOUDHSM.

A resposta inclui os IDs de armazenamento de chaves personalizado e o cluster do AWS CloudHSM.

Antes de executar um comando como esse, substitua o ID de exemplo do armazenamento de chavespersonalizado por um ID válido.

159

Page 167: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorA visualização de CMKs em um

armazenamento de chaves personalizado

$ aws kms create-key --origin AWS_CLOUDHSM --custom-key-store-id cks-1234567890abcdef0{ "KeyMetadata": { "AWSAccountId": "111122223333", "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": 1.499288695918E9, "Description": "Example key", "Enabled": true, "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "KeyManager": "CUSTOMER", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "Origin": "AWS_CLOUDHSM" "CloudHsmClusterId": "cluster-1a23b4cdefg", "CustomKeyStoreId": "cks-1234567890abcdef0" }}

A visualização de CMKs em um armazenamento dechaves personalizadoPara visualizar as chaves mestras do cliente (CMKs) em um armazenamento de chaves personalizado,use as mesmas técnicas que você usaria para visualizar quaisquer CMKs gerenciadas pelo clienteAWS KMS (p. 2). Para aprender os conceitos básicos, consulte Como visualizar as chaves (p. 13). Paraidentificar as chaves no cluster do AWS CloudHSM que funcionam como material de chaves para a suaCMK, consulte Como encontrar CMKs e materiais de chave (p. 162).

No Console de gerenciamento da AWS, as CMKs do seu armazenamento de chaves personalizado sãoexibidas juntamente com todas as outras CMKs gerenciadas pelo cliente, sua região e conta da AWS.

No entanto, os seguintes valores são específicos para CMKs em um armazenamento de chavespersonalizado.

• O nome e o ID do armazenamento de chaves personalizado que armazena a CMK.• O ID do cluster do AWS CloudHSM associado que contém seu material de chaves.• Um valor Origin de CloudHSM no Console de gerenciamento da AWS ou AWS_CLOUDHSM em

respostas de API.• O valor do estado da chave (p. 175) pode estar Unavailable. Para obter ajuda para resolver o

status, consulte Como corrigir CMKs indisponíveis (p. 167).

Para visualizar as CMKs em um armazenamento de chaves personalizado (Console)

1. Abra o console do IAM em https://console.aws.amazon.com/iam/.2. No painel de navegação à esquerda, escolha Encryption keys.3. Na Region, selecione a região da AWS apropriada. Não use o seletor de regiões na barra de

navegação (canto superior direito).4. In the navigation pane, choose Customer managed keys.5. No canto superior direito, selecione o ícone de engrenagem, escolha Custom key store ID (ID de

armazenamento de chaves personalizado) e Origin, em seguida, escolha Confirm (Confirmar).6. Para identificar CMKs em qualquer armazenamento de chaves personalizado, procure CMKs com

valor Origin do CloudHSM. Para identificar CMKs em determinado armazenamento de chavespersonalizado, exiba os valores na coluna Custom key store ID (ID de armazenamento de chavespersonalizado).

160

Page 168: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorA utilização de CMKs em um

armazenamento de chaves personalizado

7. Escolha o alias ou ID de chave de uma CMK em um armazenamento de chaves personalizado. Estapágina da CMK exibe informações detalhadas sobre a CMK, incluindo informações sobre seu cluster earmazenamento de chaves personalizado.

Para visualizar as CMKs em um armazenamento de chaves personalizado (API)

Você pode usar as mesmas operações da API do AWS KMS para visualizar as CMKs em umarmazenamento de chaves personalizado que você usaria em qualquer CMK, incluindo ListKeys,DescribeKey, e GetKeyPolicy. Por exemplo, a seguinte operação da API DescribeKey no AWS CLImostra os campos especiais para uma CMK em um armazenamento de chaves personalizado. Antes deexecutar um comando como esse, substitua o ID de exemplo da CMK por um valor válido.

$ aws kms describe-key --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

{ "KeyMetadata": { "AWSAccountId": "111122223333", "KeyId": "1234abcd-12ab-34cd-56ef-1234567890ab", "Arn": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "CreationDate": 1537582718.431, "Enabled": true, "KeyManager": "CUSTOMER", "KeyState": "Enabled", "KeyUsage": "ENCRYPT_DECRYPT", "Origin": "AWS_CLOUDHSM", "CloudHsmClusterId": "cluster-1a23b4cdefg", "CustomKeyStoreId": "cks-1234567890abcdef0", "Description": "CMK in custom key store" }}

Para ajudar a encontrar as CMKs em um armazenamento de chaves personalizado ou identificar aschaves no cluster do AWS CloudHSM que funcionam como material de chaves para a sua CMK, consulteComo encontrar CMKs e materiais de chave (p. 162).

A utilização de CMKs em um armazenamento dechaves personalizadoDepois de criar CMKs em um armazenamento de chaves personalizado (p. 156), você poderá usá-laspara operações de criptografia Encrypt, Decrypt, GenerateDataKey, GenerateDataKeyWithoutPlaintexte ReEncrypt, como em qualquer CMK. Na solicitação, você identifica a CMK por seu ID ou alias; não énecessário especificar o armazenamento de chaves personalizado ou o cluster do AWS CloudHSM. Aresposta inclui os mesmos campos que são retornados para qualquer CMK.

No entanto, quando você usa uma CMK em um armazenamento de chaves personalizado, a operaçãode criptografia é realizada inteiramente dentro do cluster do AWS CloudHSM que está associado aoarmazenamento de chaves personalizado. A operação usa o material de chaves no cluster que estáassociado à CMK que você escolheu.

Para tornar isso possível, as seguintes condições são necessárias.

• O estado de chave (p. 175) da CMK deve estar Enabled. Para encontrar o estado da chave, use ocampo Status no Console de gerenciamento da AWS (p. 160) ou o campo KeyState na respostaDescribeKey.

• O armazenamento de chaves personalizado deve ser conectado ao cluster do AWS CloudHSM.Seu Status no Console de gerenciamento da AWS (p. 144) ou ConnectionState na respostaDescribeCustomKeyStores deve ser CONNECTED.

161

Page 169: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo encontrar CMKs e materiais de chave

• O cluster do AWS CloudHSM associado ao armazenamento de chaves personalizado deve conterpelo menos um HSM ativo. Para localizar o número de HSMs ativos no cluster, use o console do AWSKMS (p. 144), o console do AWS CloudHSM, ou a operação DescribeClusters.

• O cluster do AWS CloudHSM deve conter o material de chaves para a CMK. Se o material de chaves foiexcluído do cluster ou um HSM foi criado de um backup que não incluía o material de chaves, haveráfalha na operação de criptografia.

Se essas condições não forem atendidas, haverá falha na operação de criptografia, e o AWS KMSretornará uma exceção KMSInvalidStateException. Normalmente, você só precisará reconectar oarmazenamento de chaves personalizado (p. 148). Para obter ajuda adicional, consulte Como corrigiruma CMK com falha (p. 168).

Além disso, as CMKs nos armazenamentos de chaves personalizados são limitadas a uma taxa de 400operações de criptografia por segundo para cada armazenamento de chaves personalizado. Se vocêexceder essa taxa, o AWS KMS retornará uma ThrottlingException. Além disso, se o cluster do AWSCloudHSM associado ao armazenamento de chaves personalizado estiver processando vários comandos,incluindo os de outros aplicativos, você poderá obter uma ThrottlingException a uma taxa inferior a400 operações por segundo. Se você receber uma ThrottlingException para qualquer solicitação,diminua a sua taxa de solicitações e tente os comandos novamente. Para obter mais informações sobrelimites do AWS KMS, consulte Limites (p. 308).

Como encontrar CMKs e materiais de chaveSe você gerencia um armazenamento de chaves personalizado, pode ser necessário identificar as CMKsem cada armazenamento de chaves personalizado. Por exemplo, pode ser necessário executar uma dasseguintes tarefas.

• Acompanhe as CMKs em armazenamento de chaves personalizado em logs do AWS CloudTrail.• Preveja o efeito, nas CMKs, de desconectar um armazenamento de chaves personalizado.• Agende a exclusão de CMKs antes de excluir um armazenamento de chaves personalizado.

Além disso, você pode querer identificar as chaves no cluster do AWS CloudHSM que funcionam comomaterial de chaves para a sua CMKs. Embora o AWS KMS gerencie as CMKs e seu material de chaves,você mantém o controle e a responsabilidade pelo gerenciamento de cluster do AWS CloudHSM, HSMse backups e as chaves nos HSMs. Talvez você precise identificar as chaves para auditar o material dechaves, proteger contra exclusão acidental ou excluí-lo de HSMs e backups do cluster após a exclusão daCMK.

Todo o material de chaves para as CMKs do armazenamento de chaves personalizado é de propriedadedo usuário de criptografia kmsuser (p. 136) (CU). O AWS KMS define o atributo do rótulo de chave, quepode ser visualizado apenas no AWS CloudHSM, para o nome de recurso da Amazon (ARN) da CMK.

Para encontrar as CMKs e o material de chaves, use uma das seguintes técnicas.

• Encontre as CMKs em um armazenamento de chaves personalizado (p. 163) — Como identificar asCMKs em um ou todos os seus armazenamentos de chaves personalizados.

• Encontre todas as chaves de um armazenamento de chaves personalizado (p. 164) — Comoencontrar todas as chaves no cluster que funcionam como material de chaves para as CMKs no seuarmazenamento de chaves personalizado.

• Encontre a chave para uma CMK (p. 165) — Como encontrar a chave no cluster que funciona comomaterial de chaves para uma CMK específica no seu armazenamento de chaves personalizado.

• Encontre a CMK para uma chave (p. 164) — Como encontrar a CMK para uma determinada chave noseu cluster.

162

Page 170: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo encontrar CMKs e materiais de chave

Encontre as CMKs em um armazenamento de chavespersonalizadoSe você gerencia um armazenamento de chaves personalizado, pode ser necessário identificar asCMKs em cada armazenamento de chaves personalizado. Você pode usar essas informações pararastrear as operações da CMK em logs da AWS CloudTrail, prever o efeito, nas CMKs, de desconectarum armazenamento de chaves personalizado ou programar a exclusão de CMKs antes de excluir umarmazenamento de chaves personalizado.

Para encontrar as CMKs em um armazenamento de chaves personalizado(Console)Para encontrar as CMKs em determinado armazenamento de chaves personalizado, na página CustomerManaged Keys (Chaves gerenciadas pelo cliente), visualize os valores nos campos Custom KeyStore Name (Nome do armazenamento de chaves personalizado) or Custom Key Store ID (ID dearmazenamento de chaves personalizado). Para identificar CMKs em qualquer armazenamento de chavespersonalizado, procure CMKs com valor Origin do CloudHSM. Para adicionar colunas opcionais à exibição,selecione o ícone de engrenagem no canto superior direito da página.

Para encontrar as CMKs em um armazenamento de chaves personalizado (API)Para encontrar as CMKs em um armazenamento de chaves personalizado, use as operações ListKeys eDescribeKey e, depois, filtre o valor CustomKeyStoreId. Antes de executar os exemplos, substitua osvalores de ID fictícios do armazenamento de chaves personalizado por um valor válido.

Bash

Para encontrar CMKs em determinado armazenamento de chaves personalizado, obtenha todas asCMKs na conta e região. Em seguida, filtre o ID do armazenamento de chaves personalizado.

for key in $(aws kms list-keys --query 'Keys[*].KeyId' --output text) ; do aws kms describe-key --key-id $key | grep '"CustomKeyStoreId": "cks-1234567890abcdef0"' --context 100; done

Para obter CMKs em armazenamentos de chaves personalizados na conta e região, procure valoresCustomKeyStoreId que começam com cks-.

for key in $(aws kms list-keys --query 'Keys[*].KeyId' --output text) ; do aws kms describe-key --key-id $key | grep '"CustomKeyStoreId": "cks-"' --context 100; done

PowerShell

Para encontrar CMKs em determinado armazenamento de chaves personalizado, use cmdlets Get-KmsKeyList Get-KmsKey para obter todas as CMKs na conta e região. Em seguida, filtre por ID doarmazenamento de chaves personalizado.

PS C:\> (Get-KMSKeyList).KeyArn | foreach {Get-KMSKey -KeyId $_} | where CustomKeyStoreId -eq 'cks-1234567890abcdef0'

Para obter CMKs em armazenamentos de chaves personalizados na conta e região, use o operadorde comparação -like. Todos os identificadores do armazenamento de chaves personalizadocomeçam com cks-.

PS C:\> (Get-KMSKeyList).KeyArn | foreach {Get-KMSKey -KeyId $_} | where CustomKeyStoreId -like 'cks*'

163

Page 171: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo encontrar CMKs e materiais de chave

Encontre todas as chaves de um armazenamento de chavespersonalizadoVocê pode identificar as chaves no cluster do AWS CloudHSM que funcionam como material de chavespara o armazenamento de chaves personalizado. Para fazer isso, use o comando findAllKeys emcloudhsm_mgmt_util para encontrar os identificadores de chave de todas as chaves que o kmsuser possuiou compartilha. A menos que você tenha se conectado como kmsuser e criado chaves fora do AWS KMS,todas as chaves que o kmsuser possui representam materiais de chave para CMKs do AWS KMS.

Qualquer responsável pela criptografia no cluster pode executar esse comando sem desconectar oarmazenamento de chaves personalizado.

1. Inicie o cloudhsm_mgmt_util usando o procedimento descrito no tópico Preparar para executarcloudhsm_mgmt_util.

2. Faça login no cloudhsm_mgmt_util usando a conta de um responsável pela criptografia (CO).3. Use o comando listUsers para encontrar o ID de usuário do usuário de criptografia kmsuser.

Neste exemplo, o kmsuser possui ID de usuário 3.

aws-cloudhsm> listUsersUsers on server 0(10.0.0.1):Number of users found:3

User Id User Type User Name MofnPubKey LoginFailureCnt 2FA 1 PCO admin NO 0 NO 2 AU app_user NO 0 NO 3 CU kmsuser NO 0 NO

4. Use o comando findAllKeys para encontrar os identificadores de chave de todas as chaves que okmsuser possui ou compartilha. Substitua o ID de usuário de exemplo pelo o ID de usuário real dokmsuser no seu cluster.

A saída de exemplo mostra que o kmsuser possui chaves com identificadores de chave 8, 9 e262162 em ambos os HSMs no cluster.

aws-cloudhsm> findAllKeys 3 0Keys on server 0(10.0.0.1):Number of keys found 3number of keys matched from start index 0::68,9,262162findAllKeys success on server 0(10.0.0.1)

Keys on server 1(10.0.0.2):Number of keys found 6number of keys matched from start index 0::68,9,262162findAllKeys success on server 1(10.0.0.2)

Encontre a CMK para uma chaveSe você conhecer o identificador de chave de uma chave que o kmsuser possui no cluster, vocêpode usar o rótulo de chaves para identificar a CMK associada no seu armazenamento de chavespersonalizado.

164

Page 172: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo encontrar CMKs e materiais de chave

Quando o AWS KMS cria o material de chaves para uma CMK no seu cluster do AWS CloudHSM, elegrava o nome de recurso da Amazon (ARN) da CMK no rótulo de chave. A menos que você tenha alteradoo valor do rótulo, você pode usar o comando getAttribute em kecy_mgmt_util ou cloudhsm_mgmt_util paraassociar a chave à sua CMK.

Para executar esse procedimento, você precisa desconectar temporariamente o armazenamento dechaves personalizado para poder fazer login como CU do kmsuser.

Note

While a custom key store is disconnected, all attempts to create customer master keys (CMKs) inthe custom key store or to use existing CMKs in cryptographic operations will fail. This action canprevent users from storing and accessing sensitive data.

1. Desconecte o armazenamento de chaves personalizado, caso ele ainda não tenha sido desconectadoe, em seguida, faça login no key_mgmt_util como kmsuser, conforme explicado em Comodesconectar e fazer login (p. 172).

2. Use o comando getAttribute em key_mgmt_util ou cloudhsm_mgmt_util para obter o atributo dorótulo (OBJ_ATTR_LABEL, atributo 3) para um determinado identificador de chave.

Por exemplo, esse comando usa getAttribute em cloudhsm_mgmt_util para obter o atributodo rótulo (atributo 3) da chave com o identificador de chave 262162. A saída mostra que achave 262162 serve como material de chaves para a CMK com ARN arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab. Antes de executarum comando como esse, substitua o identificador de chave de exemplo por um válido.

Para obter uma lista de atributos de chave, use o comando listAttributes ou consulte a Referência deatributos de chave no AWS CloudHSM User Guide.

aws-cloudhsm> getAttribute 262162 3

Attribute Value on server 0(10.0.1.10):OBJ_ATTR_LABELarn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

Attribute Value on server 1(10.0.1.12):OBJ_ATTR_EXTRACTABLEarn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab

3. Encerre a sessão do key_mgmt_util ou cloudhsm_mgmt_util e reconecte o armazenamento de chavespersonalizado, conforme descrito em Como fazer logout e se reconectar (p. 174).

Encontre a chave para uma CMKVocê pode usar o ID de CMK de uma CMK em um armazenamento de chaves personalizado paraidentificar a chave no cluster que serve como material de chaves. Em seguida, você pode usar oidentificador de chave para identificar a chave em comandos do cliente AWS CloudHSM.

Quando o AWS KMS cria o material de chaves para uma CMK no seu cluster do AWS CloudHSM, elegrava o nome de recurso da Amazon (ARN) da CMK no rótulo de chave. A menos que você tenha alteradoo valor do rótulo, você pode usar o comando findKey em key_mgmt_util para obter o identificador dechaves do material de chaves para a CMK. Para executar esse procedimento, você precisa desconectartemporariamente o armazenamento de chaves personalizado para poder fazer login como CU dokmsuser.

Note

While a custom key store is disconnected, all attempts to create customer master keys (CMKs) inthe custom key store or to use existing CMKs in cryptographic operations will fail. This action canprevent users from storing and accessing sensitive data.

165

Page 173: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorProgramação de exclusão de CMKs de umarmazenamento de chaves personalizado

1. Desconecte o armazenamento de chaves personalizado, caso ele ainda não tenha sido desconectadoe, em seguida, faça login no key_mgmt_util como kmsuser, conforme explicado em Comodesconectar e fazer login (p. 172).

2. Use o comando findKey em key_mgmt_util to search para pesquisar uma chave com um rótulo quecorresponda ao ARN de uma CMK no seu armazenamento de chaves personalizado. Substitua o ARNda CMK de exemplo no valor do parâmetro -l (L minúsculo de 'label') por um ARN da CMK válido.

Por exemplo, esse comando encontra a chave com um rótulo quecorresponde ao ARN da CMK de exemplo, arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab. A saída de exemplomostra que a chave com identificador de chave 262162 possui o ARN da CMK especificada em seurótulo. Agora você pode usar esse identificador de chave em outros comandos key_mgmt_util.

Command: findKey -l arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890abTotal number of keys present 1

number of keys matched from start index 0::1262162

Cluster Error Status Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 0 and err state 0x00000000 : HSM Return: SUCCESS

Cfm3FindKey returned: 0x00 : HSM Return: SUCCESS

3. Encerre a sessão do key_mgmt_util e reconecte o armazenamento de chaves personalizado,conforme descrito em Como fazer logout e se reconectar (p. 174).

Programação de exclusão de CMKs de umarmazenamento de chaves personalizadoAo ter certeza de que não precisará usar uma chave mestra de cliente (CMK) para operações decriptografia, você poderá programar a exclusão da CMK (p. 119). Use o mesmo procedimento quevocê usaria para programar a exclusão de qualquer CMK do AWS KMS. Além disso, mantenha oarmazenamento de chaves personalizado conectado para que o AWS KMS exclua o material de chavescorrespondentes do cluster associado do AWS CloudHSM quando o período de espera expirar.

Warning

A exclusão de uma CMK é uma operação destrutiva e potencialmente perigosa que evita quevocê recupere todos os dados criptografados de acordo com a CMK. Antes de programar aexclusão da CMK, examine a utilização passada (p. 130) da CMK e crie um alarme do AmazonCloudWatch (p. 126) que o alerte quando alguém tentar usar a CMK enquanto ela estiverpendente de exclusão. Sempre que possível, desative a CMK (p. 30), em vez de excluí-la.

Se você programar a exclusão de uma CMK de um armazenamento de chaves personalizado, o estadoda chave (p. 175) será alterado para Pending deletion (Exclusão pendente). A CMK permanece noestado de Pending deletion (Exclusão pendente) durante todo o período de espera, ainda que ela fiqueindisponível porque você desconectou o armazenamento de chaves personalizado (p. 148). Isso permiteque você cancele a exclusão da CMK a qualquer momento durante o período de espera.

No fim do período de espera, o AWS KMS exclui a CMK do KMS da AWS. Em seguida, o AWS KMSfaz o possível para excluir o material de chaves do cluster do AWS CloudHSM associado. Se o AWSKMS não puder excluir o material de chaves, como, por exemplo, quando o armazenamento dechaves é desconectado do AWS KMS, pode ser necessário excluir manualmente o material de chavesórfãs (p. 170) do cluster.

166

Page 174: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorSolução de problemas do

armazenamento de chaves personalizado

O AWS KMS não exclui o material de chaves de backups do cluster. Ainda que você exclua a CMK doAWS KMS e seu material de chaves do cluster do AWS CloudHSM, clusters criados de backups podemconter o material de chaves excluídas. Para excluir permanentemente o material de chaves, visualize adata de criação (p. 160) da CMK. Em seguida, exclua todos os backups do cluster que podem conter omaterial de chaves.

Solução de problemas do armazenamento dechaves personalizado

Os armazenamentos de chaves personalizados foram projetados para serem disponíveis e resilientes. Noentanto, há algumas condições de erro que você pode ter de reparar para manter o armazenamento dechaves personalizado funcionando.

Tópicos• Como corrigir CMKs indisponíveis (p. 167)• Como corrigir uma CMK com falha (p. 168)• Como corrigir uma falha de conexão (p. 168)• Como corrigir credenciais kmsuser inválidas (p. 169)• Como excluir material de chaves órfãs (p. 170)• Como recuperar materiais de chaves excluídos de uma CMK (p. 171)• Como fazer login como kmsuser (p. 172)

Como corrigir CMKs indisponíveisO estado de chave (p. 175) das chaves mestras do cliente (CMKs) em um armazenamento de chavespersonalizado normalmente é Enabled. Como todas as CMKs, o estado de chave é alterado quando vocêdesativa as CMKs em um armazenamento de chaves personalizado ou programa a exclusão delas. Noentanto, ao contrário de outras CMKs, as CMKs em um armazenamento de chaves personalizado tambémpode ter um estado de chave (p. 175) Unavailable.

Um estado de chave Unavailable indica que a CMK está em um armazenamento de chavespersonalizado que foi intencionalmente desconectado do cluster do AWS CloudHSM (p. 148) e estátentando reconectá-lo, se houver algum, sem sucesso. Enquanto uma CMK está indisponível, você podevisualizá-la e gerenciá-la, mas não pode usá-la para operações de criptografia.

Para encontrar o estado de chave de uma CMK, na página Customer managed keys (Chaves gerenciadaspelo cliente), visualize o campo Status da CMK. Ou use a operação DescribeKey e visualize o elementoKeyState na resposta. Para obter mais detalhes, consulte Como visualizar as chaves (p. 13).

As CMKs em um armazenamento de chaves personalizado desconectado terão o estado de chaveUnavailable ou PendingDeletion. As CMKs programadas para exclusão de um armazenamento dechaves personalizado têm um estado de chave Pending Deletion, mesmo quando o armazenamentode chaves personalizado é desconectado do cluster do AWS CloudHSM. Isso permite que você cancele aprogramação da exclusão de chaves sem reconectar o armazenamento de chaves personalizado.

Para corrigir uma CMK indisponível, reconecte o armazenamento de chaves personalizado (p. 148).Após o armazenamento de chaves personalizado ter sido reconectado, o estado de chave das CMKsno armazenamento de chaves personalizado é automaticamente restaurado ao estado anterior, comoEnabled ou Disabled. CMKs com exclusão pendente permanecem no estado PendingDeletion. Noentanto, enquanto o problema persiste, habilitar ou desabilitar uma CMK indisponível (p. 30) não altera oestado da chave. A ação habilitar ou desabilitar entra em vigor somente quando a chave é disponibilizada.

167

Page 175: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo corrigir uma CMK com falha

Para obter ajuda com conexões com falha, consulte Como corrigir uma falha de conexão (p. 168).

Como corrigir uma CMK com falhaProblemas com a criação e o uso de CMKs em armazenamentos de chaves personalizados podem sercausados por um problema no armazenamento de chaves personalizado, no cluster do AWS CloudHSMassociado, na CMK, ou no material de chaves.

Quando um armazenamento de chaves personalizado é desconectado do cluster do AWS CloudHSM,o estado de chave das CMKs no armazenamento de chaves personalizado fica Unavailable. Todasas solicitações para criar CMKs em um armazenamento de chaves personalizado desconectadoretornam uma exceção CustomKeyStoreInvalidStateException. Todas as solicitações paracriptografar, descriptografar e criptografar novamente ou gerar chaves de dados retornam uma exceçãoKMSInvalidStateException. Para corrigir uma o problema, reconecte o armazenamento de chavespersonalizado (p. 148).

No entanto, suas tentativas de usar um CMK de armazenamento de chaves personalizado para operaçõesde criptografia podem falhar mesmo quando o estado da chave está Enabled e o status de conexão doarmazenamento de chaves personalizado está Connected. Isso pode ser causado por uma das seguintescondições.

• O material de chaves para a CMK pode ter sido excluído do cluster do AWS CloudHSM associado.Para investigar, localize o identificador de chave (p. 160) do material de chaves para uma CMK e, senecessário, tente recuperar o material de chaves (p. 171).

 • Todos os HSMs foram excluídos do cluster do AWS CloudHSM associado ao armazenamento de chaves

personalizado. Para usar uma CMK em um armazenamento de chaves personalizado em uma operaçãode criptografia, o cluster do AWS CloudHSM deve conter pelo menos um HSM ativo. Para verificar onúmero e o estado dos HSMs em um cluster do AWS CloudHSM, use o console do AWS CloudHSM oua operação DescribeClusters. Para adicionar um HSM ao cluster, use o console do AWS CloudHSM oua operação CreateHsm.

 • O cluster do AWS CloudHSM associado ao armazenamento de chaves personalizado foi excluído.

Para corrigir o problema, crie um cluster a partir de um backup relacionado ao cluster original, como umbackup do cluster original, ou um backup que foi usado para criar o cluster original. Em seguida, editeo ID do cluster (p. 146) nas configurações do armazenamento de chaves personalizado. Para obterinstruções, consulte Como recuperar materiais de chaves excluídos de uma CMK (p. 171).

Como corrigir uma falha de conexãoSe você tentar conectar um armazenamento de chaves personalizado (p. 148) no cluster do AWSCloudHSM, mas a operação falhar, o status de conexão do armazenamento de chaves personalizado seráalterado para FAILED. Para encontrar o status de um armazenamento de chaves personalizado, visualizea coluna Status do armazenamento de chaves personalizado no Console de gerenciamento da AWS ou oelemento ConnectionState na resposta DescribeCustomKeyStores.

Note

Quando o status de conexão de um armazenamento de chaves personalizado FAILED, você devedesconectar o armazenamento de chaves personalizado (p. 148) antes de tentar reconectá-lo.Não é possível conectar um armazenamento de chaves personalizado a um status de conexãoFAILED.

Para diagnosticar um problema de conexão de armazenamento de chaves personalizado, use a operaçãoDescribeCustomKeyStores e consulte o elemento ConnectionErrorCode na resposta.

168

Page 176: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo corrigir credenciais kmsuser inválidas

• CLUSTER_NOT_FOUND indica que o AWS KMS não consegue encontrar o cluster do AWS CloudHSMcom o ID do cluster especificado. Isso pode ocorrer quando o ID de cluster errado é fornecido parauma operação de API ou o cluster é excluído e não substituído. Para corrigir esse erro, verifique o IDdo cluster, por exemplo, usando o console do AWS CloudHSM ou a operação do DescribeClusters.Se o cluster foi excluído, crie um cluster a partir de um backup recente do original. Em seguida,desconecte o armazenamento de chaves personalizado (p. 148), edite o armazenamento de chavespersonalizado (p. 146) na configuração de ID do cluster, e reconecte o armazenamento de chavespersonalizado (p. 148) ao cluster.

 • INSUFFICIENT_CLOUDHSM_HSMS indica que o cluster do AWS CloudHSM associado não contém

HSMs. Para se conectar, o cluster deve ter pelo menos um HSM. Para encontrar o número de HSMs nocluster, use a operação de API DescribeClusters. Para corrigir esse erro, adicione pelo menos um HSMao cluster. Se você adicionar vários HSMs, é melhor criá-los em diferentes zonas de disponibilidade.

 • INVALID_CREDENTIALS indica que o AWS KMS não pode fazer login no cluster do AWS CloudHSM

associado, pois ele não tem a senha correta da conta kmsuser. Para obter ajuda com relação a esseerro, consulte Como corrigir credenciais kmsuser inválidas (p. 169).

 • USER_LOCKED_OUT indica que a conta CU kmsuser está bloqueada do cluster do AWS CloudHSM

associado devido ao excesso de tentativas malsucedidas de senha. Para obter ajuda com relação aesse erro, consulte Como corrigir credenciais kmsuser inválidas (p. 169).

Para corrigir esse erro, desconecte o armazenamento de chaves personalizado (p. 148) e use ocomando changePswd no cloudhsm_mgmt_util para alterar a senha da conta kmsuser. Em seguida,edite as configurações de senha kmsuser (p. 146) do armazenamento de chaves personalizado etente se conectar novamente. Para obter ajuda, use o procedimento descrito no tópico Como corrigircredenciais kmsuser inválidas (p. 169).

 • NETWORK_ERRORS geralmente indica problemas de rede temporários. Desconecte o armazenamento de

chaves personalizado (p. 148), aguarde alguns minutos e tente se conectar novamente.

Como corrigir credenciais kmsuser inválidasQuando você se conecta a um armazenamento de chaves personalizado (p. 148), o AWS KMS fazlogin no cluster do AWS CloudHSM associado como usuário de criptografia (CU) kmsuser (p. 136). Elepermanece conectado até que o armazenamento de chaves personalizado seja desconectado.

Se você desconectar o armazenamento de chaves personalizado e alterar a senha kmsuser, o AWSKMS não poderá fazer login no cluster do AWS CloudHSM com as credenciais da conta CU kmsuser.Como resultado, haverá falha em todas as tentativas de conexão ao armazenamento de chavespersonalizado. A resposta DescribeCustomKeyStores mostra um ConnectionState FAILED e um valorConnectionErrorCode INVALID_CREDENTIALS, conforme exibido no exemplo a seguir.

$ aws kms describe-custom-key-stores --custom-key-store-name ExampleKeyStore{ "CustomKeyStores": [ "CloudHsmClusterId": "cluster-1a23b4cdefg", "ConnectionErrorCode": "INVALID_CREDENTIALS" "CustomKeyStoreId": "cks-1234567890abcdef0", "CustomKeyStoreName": "ExampleKeyStore", "TrustAnchorCertificate": "<certificate string appears here>", "CreationDate": "1.499288695918E9", "ConnectionState": "FAILED"

169

Page 177: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo excluir material de chaves órfãs

],}

Além disso, após cinco tentativas malsucedidas de efetuar login no cluster com uma senha incorreta, oAWS CloudHSM bloqueia a conta do usuário. Para efetuar login no cluster, você deve alterar a senha daconta.

Se o AWS KMS obtiver uma resposta de bloqueio ao tentar efetuar login no cluster como CUkmsuser, ocorrerá uma falha na solicitação para se conectar ao armazenamento de chavespersonalizado. A resposta DescribeCustomKeyStores inclui um ConnectionState FAILED e um valorConnectionErrorCode USER_LOCKED_OUT, conforme exibido no exemplo a seguir.

$ aws kms describe-custom-key-stores --custom-key-store-name ExampleKeyStore{ "CustomKeyStores": [ "CloudHsmClusterId": "cluster-1a23b4cdefg", "ConnectionErrorCode": "USER_LOCKED_OUT" "CustomKeyStoreId": "cks-1234567890abcdef0", "CustomKeyStoreName": "ExampleKeyStore", "TrustAnchorCertificate": "<certificate string appears here>", "CreationDate": "1.499288695918E9", "ConnectionState": "FAILED" ],}

Para corrigir qualquer uma dessas condições, use o procedimento a seguir.

1. Desconecte o armazenamento de chaves personalizado (p. 148).2. Execute a operação DescribeCustomKeyStores e visualize o valor do elemento

ConnectionErrorCode na resposta.

• Se o valor ConnectionErrorCode for INVALID_CREDENTIALS, determine a senha atual para aconta kmsuser. Se necessário, use o comando changePswd no cloudhsm_mgmt_util para definir asenha como um valor conhecido.

• Se o valor ConnectionErrorCode for USER_LOCKED_OUT, você deve usar o comandochangePswd no cloudhsm_mgmt_util para alterar a senha kmsuser.

3. Edite a configuração de senha kmsuser (p. 146) para corresponder à senha kmsuser atual nocluster. Essa ação informa ao AWS KMS a senha a ser usada para fazer login no cluster. Ela nãoaltera a senha kmsuser no cluster.

4. Conectar o armazenamento de chaves personalizado (p. 148)

Como excluir material de chaves órfãsDepois de programar a exclusão de uma CMK de um armazenamento de chaves personalizado, pode sernecessário excluir manualmente o material de chaves correspondentes do cluster associado.

Quando você cria uma CMK em um armazenamento de chaves personalizado, o AWS KMS cria osmetadados da CMK no AWS KMS e gera o material de chaves no cluster do AWS CloudHSM associado.Quando você programa a exclusão de uma CMK em um armazenamento de chaves personalizado, apóso período de espera, o AWS KMS exclui os metadados da CMK. Em seguida, o AWS KMS faz o possívelpara excluir o material de chaves correspondentes do cluster. O AWS KMS não tenta excluir o material dechaves dos backups do cluster.

Se o AWS KMS não puder excluir o material de chaves, como, por exemplo, quando o armazenamento dechaves personalizado é desconectado, o AWS KMS grava uma entrada para seus logs do AWS CloudTrail.A entrada inclui o ID da CMK, o ID do cluster do AWS CloudHSM e o identificador de chave do material dechaves.

170

Page 178: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo recuperar materiais de chaves excluídos de uma CMK

Para excluir o material de chaves do cluster do AWS CloudHSM associado, use um procedimentosemelhante ao seguinte. Esse exemplo usa as ferramentas da linha de comando da AWS CLI e do AWSCloudHSM, mas você pode usar o Console de gerenciamento da AWS em vez da CLI.

1. Desconecte o armazenamento de chaves personalizado, caso ele ainda não tenha sido desconectadoe, em seguida, faça login no key_mgmt_util, conforme explicado em Como desconectar e fazerlogin (p. 172).

2. Use o comando deleteKey no key_mgmt_util para excluir a chave dos HSMs no cluster.

Por exemplo, esse comando exclui a chave 262162 dos HSMs no cluster. O identificador de chave élistado na entrada de log do CloudTrail.

Command: deleteKey -k 262162

Cfm3DeleteKey returned: 0x00 : HSM Return: SUCCESS

Cluster Error Status Node id 0 and err state 0x00000000 : HSM Return: SUCCESS Node id 1 and err state 0x00000000 : HSM Return: SUCCESS Node id 2 and err state 0x00000000 : HSM Return: SUCCESS

3. Encerre a sessão do key_mgmt_util e reconecte o armazenamento de chaves personalizado, comodescrito em Como fazer logout e se reconectar (p. 174).

Como recuperar materiais de chaves excluídos deuma CMKSe o material de chave para uma chave mestra de cliente é excluído, a CMK fica inutilizável e não épossível descriptografar nenhum texto cifrado que tenha sido criptografado com a CMK. Isso podeacontecer se o material de chaves para uma CMK em um armazenamento de chaves personalizado éexcluído do cluster do AWS CloudHSM associado. No entanto, há a possibilidade de recuperação domaterial de chaves.

Quando você cria uma chave mestra de cliente (CMK) em um armazenamento de chaves personalizado,o AWS KMS faz login no cluster do AWS CloudHSM associado e cria o material de chaves para a CMK.Ele também altera a senha para um valor que apenas ele conhece, e permanece conectado enquanto oarmazenamento de chaves personalizado estiver conectado. Como apenas o proprietário da chave, ouseja, o CU que criou uma chave, pode excluir a chave, é improvável que a chave seja excluída dos HSMsacidentalmente.

No entanto, se o material de chaves para uma CMK é excluída dos HSMs em um cluster, o estadode chave da CMK é alterado para UNAVAILABLE. Se você tentar usar a CMK para uma operação decriptografia, ocorrerá falha na operação com uma exceção KMSInvalidStateException. E, o que é maisimportante, todos os dados que foram criptografados com a CMK não poderão ser descriptografados.

Em determinadas circunstâncias, é possível recuperar o material de chaves excluído, criando um clustera partir de um backup que contenha o material de chaves. Essa estratégia funciona somente quando pelomenos um backup foi criado enquanto a chave existia e antes de ter sido excluída.

Use o processo a seguir para recuperar o material de chaves.

1. Encontre um backup de cluster que contém o material de chaves. O backup também deve conter todosos usuários e chaves de que você precisa para oferecer suporte ao cluster e seus dados criptografados.

Use a API DescribeBackups para listar os backups de um cluster. Em seguida, use o timestampdo backup para ajudá-lo a selecionar um backup. Para limitar a saída para o cluster associado ao

171

Page 179: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo fazer login como kmsuser

armazenamento de chaves personalizado, use o parâmetro Filters, conforme exibido no exemplo aseguir.

$ aws cloudhsmv2 describe-backups --filters clusterIds=<cluster ID>{ "Backups": [ { "ClusterId": "cluster-1a23b4cdefg", "BackupId": "backup-9g87f6edcba", "CreateTimestamp": 1536667238.328, "BackupState": "READY" }, ... ]}

2. Crie um cluster a partir de um backup selecionado. Verifique se o backup contém a chave excluída eoutros usuários e chaves que o cluster requer.

3. Desconecte o armazenamento de chaves personalizado (p. 148) para que você possa editar suaspropriedades.

4. Edite o ID do cluster (p. 146) do armazenamento de chaves personalizado. Insira o ID do cluster quevocê criou a partir do backup. Como o cluster compartilha um histórico de backup com o cluster original,o novo ID do cluster deve ser válido.

5. Reconecte o armazenamento de chaves personalizado (p. 148).

Como fazer login como kmsuserPara criar e gerenciar o material de chaves no cluster do AWS CloudHSM para o armazenamento dechaves personalizado, o AWS KMS usa a conta kmsuser do usuário de criptografia (CU) (p. 136). Vocêcria a conta CU kmsuser (p. 141) no seu cluster e fornece sua senha para o AWS KMS ao criar seuarmazenamento de chaves personalizado.

Em geral, o AWS KMS gerencia a conta kmsuser. No entanto, para algumas tarefas, você precisadesconectar o armazenamento de chaves personalizado, fazer login no cluster como CU kmsuser e usaras ferramentas da linha de comando cloudhsm_mgmt_util e key_mgmt_util.

Note

While a custom key store is disconnected, all attempts to create customer master keys (CMKs) inthe custom key store or to use existing CMKs in cryptographic operations will fail. This action canprevent users from storing and accessing sensitive data.

Este tópico explica como desconectar o armazenamento de chaves personalizado e fazer login (p. 172)como kmsuser, executar a ferramenta da linha de comando do AWS CloudHSM e desconectar ereconectar seu armazenamento de chaves personalizado (p. 174).

Tópicos• Como desconectar e fazer login (p. 172)• Como fazer logout e se reconectar (p. 174)

Como desconectar e fazer loginUse o procedimento a seguir sempre que precisar fazer login em um cluster associado como CU kmsuser.

1. Desconecte o armazenamento de chaves personalizado, caso ele ainda não tenha sido desconectado.Você pode usar o Console de gerenciamento da AWS ou a API do AWS KMS.

172

Page 180: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo fazer login como kmsuser

Enquanto sua chave personalizada estiver conectada, o AWS KMS estará conectado como kmsuser.Isso evita que você faça login como kmsuser ou altere a senha kmsuser.

Por exemplo, este comando usa DisconnectCustomKeyStore para desconectar um exemplo dearmazenamento de chaves. Substitua o ID de exemplo do armazenamento de chaves personalizadopor um ID válido.

$ aws kms disconnect-custom-key-store --custom-key-store-id cks-1234567890abcdef0

2. Iniciar cloudhsm_mgmt_util. Use o procedimento descrito na seção Preparar para executarcloudhsm_mgmt_util do AWS CloudHSM User Guide.

3. Faça login no cloudhsm_mgmt_util no cluster do AWS CloudHSM como responsável pela criptografia(CO).

Por exemplo, este comando efetua login como um CO chamado admin. Substitua o nome de usuário ea senha do CO de exemplo por valores válidos.

aws-cloudhsm>loginHSM CO admin <password>loginHSM success on server 0(10.0.2.9)loginHSM success on server 1(10.0.3.11)loginHSM success on server 2(10.0.1.12)

4. Use o comando changePswd para alterar a senha da conta kmsuser para a senha de suapreferência. (O AWS KMS altera a senha quando você se conecta ao armazenamento de chavespersonalizado.) A senha deve conter de 7 a 32 caracteres alfanuméricos. Ela diferencia maiúsculas deminúsculas e não pode conter caracteres especiais.

Por exemplo, este comando altera a senha kmsuser para tempPassword.

aws-cloudhsm>changePswd CU kmsuser tempPassword

*************************CAUTION********************************This is a CRITICAL operation, should be done on all nodes in thecluster. Cav server does NOT synchronize these changes with thenodes on which this operation is not executed or failed, pleaseensure this operation is executed on all nodes in the cluster.****************************************************************

Do you want to continue(y/n)?yChanging password for kmsuser(CU) on 3 nodes

5. Faça login no key_mgmt_util ou cloudhsm_mgmt_util como kmsuser usando a senha que vocêdefinir. Para obter instruções detalhadas, consulte Conceitos básicos cloudhsm_mgmt_util e Conceitosbásicos key_mgmt_util. A ferramenta que você usa depende da sua tarefa.

Por exemplo, este comando faz login em key_mgmt_util.

Command: loginHSM -u CU -s kmsuser -p tempPasswordCfm3LoginHSM returned: 0x00 : HSM Return: SUCCESS

Cluster Error StatusNode id 0 and err state 0x00000000 : HSM Return: SUCCESSNode id 1 and err state 0x00000000 : HSM Return: SUCCESSNode id 2 and err state 0x00000000 : HSM Return: SUCCESS

173

Page 181: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo fazer login como kmsuser

Como fazer logout e se reconectar1. Execute a tarefa e, em seguida, faça logout da ferramenta da linha de comando. Se você não fizer

logout, ocorrerá falha nas tentativas de se reconectar ao armazenamento de chaves personalizado.

Command: logoutHSMCfm3LogoutHSM returned: 0x00 : HSM Return: SUCCESS

Cluster Error StatusNode id 0 and err state 0x00000000 : HSM Return: SUCCESSNode id 1 and err state 0x00000000 : HSM Return: SUCCESS

2. Edite a configuração de senha kmsuser (p. 146) para o armazenamento de chaves personalizado.

Esse procedimento informa ao AWS KMS a senha atual do kmsuser no cluster. Se você pular essaetapa, o AWS KMS não poderá fazer login no cluster como kmsuser, e ocorrerá falha em todas astentativas de reconectá-lo ao armazenamento de chaves personalizado. Você pode usar o Console degerenciamento da AWS ou o parâmetro KeyStorePassword da operação UpdateCustomKeyStore.

Por exemplo, este comando informa ao AWS KMS que a senha atual é tempPassword. Substitua asenha de exemplo pela real.

$ aws kms update-custom-key-store --custom-key-store-id cks-1234567890abcdef0 --key-store-password tempPassword

3. Reconectar o armazenamento de chaves personalizado ao AWS KMS. Substitua o ID de exemplo doarmazenamento de chaves personalizado por um ID válido. Durante o processo de conexão, o AWSKMS altera a senha kmsuser para um valor que apenas ele conhece.

A operação ConnectCustomKeyStore retorna rapidamente, mas o processo de conexão pode demorarum período prolongado. A resposta inicial não indica o sucesso do processo de conexão.

$ aws kms connect-custom-key-store --custom-key-store-id cks-1234567890abcdef0

4. Use a operação DescribeCustomKeyStores para verificar se o armazenamento de chavespersonalizado está conectado. Substitua o ID de exemplo do armazenamento de chavespersonalizado por um ID válido.

Neste exemplo, o campo de estado da conexão mostra que agora o armazenamento de chavespersonalizado está conectado.

$ aws kms describe-custom-key-stores --custom-key-store-id cks-1234567890abcdef0{ "CustomKeyStores": [ "CustomKeyStoreId": "cks-1234567890abcdef0", "CustomKeyStoreName": "ExampleKeyStore", "CloudHsmClusterId": "cluster-1a23b4cdefg", "TrustAnchorCertificate": "<certificate string appears here>", "CreationDate": "1.499288695918E9", "ConnectionState": "CONNECTED" ],}

174

Page 182: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedor

Como o estado da chave afeta o usode uma chave mestra de cliente

Uma chave mestra de cliente (CMK) está sempre em um dos seguintes estados: Enabled, Disabled,PendingImport, PendingDeletion, ou Unavailable. A tabela a seguir mostra se as operaçõesde API do AWS KMS que são executadas em um CMK em cada estado devem ser bem-sucedidas (✓),falharem (X) ou serem bem-sucedidas somente em determinadas condições (?). O resultado muitas vezesé diferente para CMKs com material de chaves importadas.

O estado Unavailable se aplica apenas a uma CMK em custom key store (p. 133). Uma CMK emcustom key store fica Unavailable quando o custom key store é intencionalmente desconectado docluster do AWS CloudHSM. Você pode visualizar e gerenciar CMKs indisponíveis, mas não pode usá-lasem operações de criptografia.

As seguintes operações de API não são exibidas na tabela porque não usam uma CMK existente.

• ConnectCustomKeyStore• CreateCustomKeyStore• CreateKey• DeleteCustomKeyStore• DescribeCustomKeyStores• DisconnectCustomKeyStore• GenerateRandom• UpdateCustomKeyStore

API Ativado Desativado Importaçãopendente

Exclusãopendente

Indisponível

CancelKeyDeletion

[4] [4] [4] [4], [13]

CreateAlias

[3]

CreateGrant

[1] [5] [2] ou [3]

Decrypt

[1] [5] [2] ou [3] [11]

DeleteAlias

175

Page 183: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedor

API Ativado Desativado Importaçãopendente

Exclusãopendente

Indisponível

DeleteImportedKeyMaterial

[9] [9] (sem efeito) [9] [9]

DescribeKey

DisableKey

[5] [3] [12]

DisableKeyRotation

[7] [1] ou [7] [6] [3] ou [7] [7]

EnableKey

[5] [3] [12]

EnableKeyRotation

[7] [1] ou [7] [6] [3] ou [7] [7]

Encrypt

[1] [5] [2] ou [3] [11]

GenerateDataKey

[1] [5] [2] ou [3] [11]

GenerateDataKeyWithoutPlaintext

[1] [5] [2] ou [3] [11]

GetKeyPolicy

GetKeyRotationStatus

[7] [7] [6] [7] [7]

176

Page 184: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedor

API Ativado Desativado Importaçãopendente

Exclusãopendente

Indisponível

GetParametersForImport

[9] [9] [8] ou [9] [9]

ImportKeyMaterial

[9] [9] [8] ou [9] [9]

ListAliases

ListGrants

ListKeyPolicies

ListKeys

ListResourceTags

ListRetirableGrants

PutKeyPolicy

ReEncrypt

[1] [5] [2] ou [3] [11]

RetireGrant

RevokeGrant

ScheduleKeyDeletion

[3]

TagResource

[3]

177

Page 185: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedor

API Ativado Desativado Importaçãopendente

Exclusãopendente

Indisponível

UnTagResource

[3]

UpdateAlias

[10]

UpdateKeyDescription

[3]

Detalhes da tabela

• [1] DisabledException: <CMK ARN> is disabled.• [2] DisabledException: <CMK ARN> is pending deletion.• [3] KMSInvalidStateException: <CMK ARN> is pending deletion.• [4] KMSInvalidStateException: <CMK ARN> is not pending deletion.• [5] KMSInvalidStateException: <CMK ARN> is pending import.• [6] UnsupportedOperationException: <CMK ARN> origin is EXTERNAL which is notvalid for this operation.

• [7] Se a CMK possui material de chaves importadas ou está em um armazenamento de chavespersonalizado: UnsupportedOperationException.

• [8] Se a CMK importou material de chaves: KMSInvalidStateException• [9] Se a CMK não puder ou não tiver importado material de chaves:UnsupportedOperationException.

• [10] Se a exclusão da CMK de origem está pendente, o comando foi bem-sucedido. Se a exclusão daCMK de destino está pendente, o comando falha com o erro: KMSInvalidStateException : <CMKARN> is pending deletion.

• [11] KMSInvalidStateException: <CMK ARN> is unavailable. Você não pode executar estaoperação em uma CMK indisponível.

• [12] A operação é bem-sucedida, mas o estado de chave da CMK não muda até se tornar disponível.• [13] Enquanto a exclusão de uma CMK em um armazenamento de chaves personalizado está pendente,

seu estado de chave permanece PendingDeletion, ainda que a CMK se torne indisponível. Issopermite que você cancele a exclusão da CMK a qualquer momento durante o período de espera.

178

Page 186: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAWS CloudTrail

Como os serviços da AWS, usam oAWS KMS

Muitos serviços da AWS usam o AWS KMS para oferecer suporte à criptografia de seus dados. Quandoum serviço da AWS está integrado com o AWS KMS, você pode usar as chaves mestras de cliente (CMKs)em sua conta para proteger os dados que o serviço recebe, armazena ou gerencia para você. Para obter alista completa de serviços da AWS que estão integrados com o AWS KMS, consulte Integração de serviçosda AWS.

Os tópicos a seguir discutem em detalhes como determinados serviços usam o AWS KMS, incluindo asCMKs com as quais são compatíveis, como eles gerenciam chaves de dados, as permissões de queprecisam e como rastrear o uso das CMKs de cada serviço em sua conta.

Tópicos• Como o AWS CloudTrail usa o AWS KMS (p. 179)• Como o Amazon DynamoDB usa o AWS KMS (p. 184)• Como o Amazon Elastic Block Store (Amazon EBS) usa o AWS KMS (p. 192)• Como o Amazon Elastic Transcoder usa o AWS KMS (p. 194)• Como o Amazon EMR usa o AWS KMS (p. 199)• Como o Amazon Redshift usa o AWS KMS (p. 203)• Como o Amazon Relational Database Service (Amazon RDS) usa o AWS KMS (p. 204)• Como o AWS Secrets Manager usa o AWS KMS (p. 205)• Como o Amazon Simple Email Service (Amazon SES) usa o AWS KMS (p. 213)• Como o Amazon Simple Storage Service (Amazon S3) usa o AWS KMS (p. 215)• Como o AWS Systems Manager Parameter Store usa o AWS KMS (p. 217)• Como o Amazon WorkMail usa o AWS KMS (p. 222)• Como o Amazon WorkSpaces usa o AWS KMS (p. 224)

Como o AWS CloudTrail usa o AWS KMSUse o AWS CloudTrail para registrar chamadas à API da AWS e outras atividades de sua conta da AWS esalvar as informações registradas nos arquivos de log em um bucket do Amazon Simple Storage Service(Amazon S3) de sua escolha. Por padrão, os arquivos de log entregues pelo CloudTrail a seu bucket doS3 são criptografados usando a criptografia do lado do servidor com chaves de criptografia gerenciadaspelo Amazon S3 (SSE-S3). Mas você pode optar por usar a criptografia do lado do servidor com chavesgerenciadas pelo AWS KMS (SSE-KMS). Para saber como criptografar seus arquivos de log do CloudTrailcom o AWS KMS, consulte Criptografia de arquivos de log do CloudTrail com chaves gerenciadas peloAWS KMS (SSE-KMS) no AWS CloudTrail User Guide.

Tópicos• Compreender quando sua CMK é usada (p. 180)• Compreender a frequência com que sua CMK é usada (p. 184)

179

Page 187: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCompreender quando sua CMK é usada

Compreender quando sua CMK é usadaA criptografia dos arquivos de log do CloudTrail com o AWS KMS se baseia no recurso do AmazonS3 chamado criptografia do lado do servidor com chaves gerenciadas pelo (SSE-KMS). Para sabermais sobre o SSE-KMS, consulte Como o Amazon Simple Storage Service (Amazon S3) usa o AWSKMS (p. 215) neste guia ou Proteção de dados usando criptografia do lado do servidor com chavesgerenciadas pelo AWS KMS (SSE-KMS) no Guia do desenvolvedor do Amazon Simple Storage Service.

Quando você configura o AWS CloudTrail para usar o SSE-KMS para criptografar seus arquivos de log,o CloudTrail e o Amazon S3 usam sua chave mestra de cliente (CMK) do KMS quando você executadeterminadas ações com esses serviços. As seções a seguir explicam quando e como esses serviçospodem usar sua CMK e fornecer informações adicionais que podem validar essa explicação.

Ações que fazem o CloudTrail e o Amazon S3 usarem sua CMK• Você configura o CloudTrail para criptografar arquivos de log com sua chave mestra de cliente

(CMK) (p. 180)• O CloudTrail coloca um arquivo de log no bucket do S3 (p. 181)• Você recebe um arquivo de log criptografado do seu bucket do S3 (p. 182)

Você configura o CloudTrail para criptografar arquivos de log comsua chave mestra de cliente (CMK)Quando você atualiza a configuração do CloudTrail para usar sua CMK, o CloudTrail envia uma solicitaçãoGenerateDataKey ao AWS KMS para verificar se a CMK existe e se o CloudTrail tem permissão parausá-la na criptografia. O CloudTrail não usa a chave de dados resultante.

A solicitação GenerateDataKey inclui as seguintes informações para o contexto decriptografia (p. 305):

• O nome de recurso da Amazon (ARN) da trilha do CloudTrail• O ARN do bucket do S3 e o caminho onde são entregues os arquivos de log do CloudTrail

A solicitação GenerateDataKey resulta em uma entrada em seus logs do CloudTrail semelhante ao

exemplo a seguir. Ao ver uma entrada de log como essa, você pode determinar que o CloudTrail ( )

chamou a API do () ( ) para uma trilha específica ( ). O AWS KMS criou a chave de dados em uma

determinada CMK ( ).

Note

You might need to scroll to the right to see some of the callouts in the following example log entry.

{ "eventVersion": "1.02", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE",

"arn": "arn:aws:iam::086441151436:user/AWSCloudTrail", "accountId": "086441151436", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "userName": "AWSCloudTrail", "sessionContext": {"attributes": { "mfaAuthenticated": "false", "creationDate": "2015-11-11T21:15:33Z"

180

Page 188: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCompreender quando sua CMK é usada

}}, "invokedBy": "internal.amazonaws.com" }, "eventTime": "2015-11-11T21:15:33Z",

"eventSource": "kms.amazonaws.com",

"eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "internal.amazonaws.com", "userAgent": "internal.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:111122223333:alias/ExampleAliasForCloudTrailCMK", "encryptionContext": {

"aws:cloudtrail:arn": "arn:aws:cloudtrail:us-west-2:111122223333:trail/Default", "aws:s3:arn": "arn:aws:s3:::example-bucket-for-CT-logs/AWSLogs/111122223333/" }, "keySpec": "AES_256" }, "responseElements": null, "requestID": "581f1f11-88b9-11e5-9c9c-595a1fb59ac0", "eventID": "3cdb2457-c035-4890-93b6-181832b9e766", "readOnly": true, "resources": [{ "ARN": "arn:aws:kms:us-

west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333" }], "eventType": "AwsServiceEvent", "recipientAccountId": "111122223333"}

O CloudTrail coloca um arquivo de log no bucket do S3Toda vez que o CloudTrail coloca um arquivo de log em seu bucket do S3, o Amazon S3 envia umasolicitação GenerateDataKey ao AWS KMS em nome do CloudTrail. Em resposta a essa solicitação, oAWS KMS gera uma chave de dados exclusiva e, em seguida, envia ao Amazon S3 duas cópias da chavede dados, uma em texto não criptografado e uma criptografada com a CMK especificada. O Amazon S3usa a chave de dados de texto não criptografado para criptografar o arquivo de log do CloudTrail e, emseguida, remove a chave de dados de texto não criptografado da memória assim que possível após ouso. O Amazon S3 armazena a chave de dados criptografada como metadados com o arquivo de log doCloudTrailcriptografado.

A solicitação GenerateDataKey inclui as seguintes informações para o contexto decriptografia (p. 305):

• O nome de recurso da Amazon (ARN) da trilha do CloudTrail• O ARN do objeto do S3 (o arquivo de log do CloudTrail)

Cada solicitação GenerateDataKey resulta em uma entrada em seus logs do CloudTrail semelhante

ao exemplo a seguir. Ao ver uma entrada de log como essa, você pode determinar que CloudTrail ( )

chamou API () do () para uma trilha específica ( ) para proteger um determinado arquivo de log ( ).

O AWS KMS criou a chave de dados na CMK especificada ( ), mostrada duas vezes na mesma entradade log.

Note

You might need to scroll to the right to see some of the callouts in the following example log entry.

181

Page 189: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCompreender quando sua CMK é usada

{ "eventVersion": "1.02", "userIdentity": { "type": "AssumedRole", "principalId": "AROACKCEVSQ6C2EXAMPLE:i-34755b85",

"arn": "arn:aws:sts::086441151436:assumed-role/AWSCloudTrail/i-34755b85", "accountId": "086441151436", "accessKeyId": "AKIAI44QH8DHBEXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2015-11-11T20:45:25Z" }, "sessionIssuer": { "type": "Role", "principalId": "AROACKCEVSQ6C2EXAMPLE", "arn": "arn:aws:iam::086441151436:role/AWSCloudTrail", "accountId": "086441151436", "userName": "AWSCloudTrail" } }, "invokedBy": "internal.amazonaws.com" }, "eventTime": "2015-11-11T21:15:58Z",

"eventSource": "kms.amazonaws.com",

"eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "internal.amazonaws.com", "userAgent": "internal.amazonaws.com", "requestParameters": { "encryptionContext": {

"aws:cloudtrail:arn": "arn:aws:cloudtrail:us-west-2:111122223333:trail/Default", "aws:s3:arn": "arn:aws:s3:::example-bucket-for-CT-logs/AWSLogs/111122223333/CloudTrail/us-west-2/2015/11/11/111122223333_CloudTrail_us-

west-2_20151111T2115Z_7JREEBimdK8d2nC9.json.gz" }, "keyId": "arn:aws:kms:us-

west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "keySpec": "AES_256" }, "responseElements": null, "requestID": "66f3f74a-88b9-11e5-b7fb-63d925c72ffe", "eventID": "7738554f-92ab-4e27-83e3-03354b1aa898", "readOnly": true, "resources": [{ "ARN": "arn:aws:kms:us-

west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333" }], "eventType": "AwsServiceEvent", "recipientAccountId": "111122223333"}

Você recebe um arquivo de log criptografado do seu bucket doS3Cada vez que você recebe um arquivo de log do CloudTrail criptografado de seu bucket do S3, oAmazon S3 envia uma solicitação Decrypt ao AWS KMS em seu nome para descriptografar a chave de

182

Page 190: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCompreender quando sua CMK é usada

dados criptografada do arquivo de log. Em resposta a essa solicitação, o AWS KMS usa sua CMK paradescriptografar a chave de dados e, em seguida, envia a chave de dados de texto não criptografado aoAmazon S3. O Amazon S3 usa a chave de dados de texto não criptografado para descriptografar o arquivode log do CloudTrail e, em seguida, remove a chave de dados de texto não criptografado da memóriaassim que possível após o uso.

A solicitação Decrypt inclui as seguintes informações para o contexto de criptografia (p. 305):

• O nome de recurso da Amazon (ARN) da trilha do CloudTrail• O ARN do objeto do S3 (o arquivo de log do CloudTrail)

Cada solicitação Decrypt resulta em uma entrada em seus logs do CloudTrail semelhante ao exemploa seguir. Ao ver uma entrada de log como essa, você pode determinar que um usuário do IAM em sua

conta da AWS ( ) chamou a API () do () para uma trilha específica ( ) e um arquivo de log específico

( ). O AWS KMS descriptografou a chave de dados sob uma CMK específica ( ).

Note

You might need to scroll to the right to see some of the callouts in the following example log entry.

{ "eventVersion": "1.02", "userIdentity": { "type": "IAMUser", "principalId": "AIDACKCEVSQ6C2EXAMPLE",

"arn": "arn:aws:iam::111122223333:user/cloudtrail-admin", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "userName": "cloudtrail-admin", "sessionContext": {"attributes": { "mfaAuthenticated": "false", "creationDate": "2015-11-11T20:48:04Z" }}, "invokedBy": "signin.amazonaws.com" }, "eventTime": "2015-11-11T21:20:52Z",

"eventSource": "kms.amazonaws.com",

"eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "internal.amazonaws.com", "userAgent": "internal.amazonaws.com", "requestParameters": { "encryptionContext": {

"aws:cloudtrail:arn": "arn:aws:cloudtrail:us-west-2:111122223333:trail/Default", "aws:s3:arn": "arn:aws:s3:::example-bucket-for-CT-logs/AWSLogs/111122223333/CloudTrail/us-west-2/2015/11/11/111122223333_CloudTrail_us-

west-2_20151111T2115Z_7JREEBimdK8d2nC9.json.gz" } }, "responseElements": null, "requestID": "16a0590a-88ba-11e5-b406-436f15c3ac01", "eventID": "9525bee7-5145-42b0-bed5-ab7196a16daa", "readOnly": true, "resources": [{ "ARN": "arn:aws:kms:us-

west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333"

183

Page 191: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCompreender a frequência com que sua CMK é usada

}], "eventType": "AwsApiCall", "recipientAccountId": "111122223333"}

Compreender a frequência com que sua CMK é usadaPara prever custos e entender melhor sua fatura da AWS, talvez você queira saber com que frequênciao CloudTrail usa sua CMK. O AWS KMS cobra por todas as solicitações da API ao serviço que excedemo nível gratuito. Para obter as cobranças exatas, consulte Definição de preço do AWS Key ManagementService.

Quando você criptografa arquivos de log do CloudTrail com chaves gerenciadas pelo AWS KMS (SSE-KMS), toda vez que o coloca um arquivo de log em seu bucket do S3 (p. 181), é gerada uma solicitaçãoda API do . Normalmente, o CloudTrail coloca um arquivo de log em seu bucket do S3 uma vez a cadacinco minutos, o que resulta em aproximadamente 288 solicitações da API do AWS KMS por dia, porregião e por conta da AWS. Por exemplo:

• Se você habilitar esse recurso em duas regiões em uma única conta da AWS, serão aproximadamente576 solicitações da API do AWS KMS por dia (2 x 288).

• Se você habilitar esse recurso em duas regiões em cada uma das três contas da AWS, serãoaproximadamente 1.728 solicitações da API do AWS KMS por dia (6 x 288).

Esses números representam apenas as solicitações da API do AWS KMS que ocorrem quando oCloudTrail coloca um arquivo de log em seu bucket do S3. Toda vez que você receber um arquivo de logcriptografado de seu bucket do S3, (p. 182) será gerada uma solicitação da API do AWS KMS.

Como o Amazon DynamoDB usa o AWS KMSAmazon DynamoDB é um serviço de banco de dados NoSQL totalmente gerenciado e dimensionável. ODynamoDB integra-se ao AWS Key Management Service (AWS KMS) para oferecer suporte a um recursode criptografia opcional criptografia em repouso no lado do servidor.

Com a criptografia em repouso, o DynamoDB criptografa de forma transparente todos os dados do clienteem uma tabela criptografada, inclusive sua chave primária e índices secundários locais e globais, sempreque a tabela for mantida em disco. (Se sua tabela tem uma chave de classificação, algumas dessaschaves que marcam os limites de intervalo são armazenadas em textos simples nos metadados da tabela.)Quando você acessa uma tabela criptografada, o DynamoDB descriptografa os dados da tabela de formatransparente. Você não precisa alterar seus aplicativos para usar ou gerenciar tabelas criptografadas.

Você ativa a criptografia em repouso ao criar uma tabela. Toda tabela é criptografada de formaindependente; portanto, você pode habilitar a criptografia em tabelas específicas e ao mesmo tempo deixaroutras sem criptografia.

A criptografia em repouso usa chaves mestras de cliente do AWS KMS em sua AWS para proteger astabelas do DynamoDB em disco. Essa integração também permite que você audite o acesso às tabelas doDynamoDB examinando as chamadas à API do DynamoDB ao AWS KMS em logs e trilhas de auditoria.

Criptografia do lado do cliente para o DynamoDB

Além de criptografia em repouso, que é um recurso de criptografia no servidor, a AWS fornece o AmazonDynamoDB Encryption Client. Essa biblioteca de criptografia no lado do cliente permite que você protejaseus dados antes de enviá-los ao DynamoDB. Com a criptografia do lado do servidor, os dados são

184

Page 192: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorUso de CMKs e chaves de dados

criptografados em trânsito em uma conexão HTTPS, descriptografados no endpoint do DynamoDB e,depois, criptografados novamente antes de serem armazenados no DynamoDB. A criptografia do lado docliente fornece proteção de ponta a ponta para seus dados, desde sua origem até o armazenamento noDynamoDB.

Você pode usar a criptografia em repouso, o Cliente de criptografia do DynamoDB ou ambos. Para ajudá-lo a determinar qual método é ideal para seus dados do DynamoDB consulte Criptografia no lado docliente ou do servidor? no Guia do desenvolvedor do Cliente de criptografia do Amazon DynamoDB.

Tópicos• Uso de CMKs e chaves de dados (p. 185)• Autorização de uso da chave de serviço padrão (p. 186)• Contexto de criptografia do DynamoDB (p. 188)• Monitorar interação do DynamoDB com o AWS KMS (p. 189)

Uso de CMKs e chaves de dadosO recurso de criptografia em repouso do DynamoDB usa uma CMK do AWS KMS e uma hierarquia dechaves de dados para proteger os dados da tabela.

Chave de serviço padrão

Quando você cria uma tabela criptografada, o DynamoDB cria uma chave mestra do cliente (p. 2)(CMK) gerenciada do AWS em cada região de sua conta da AWS, se ainda não existir uma. EssaCMK, aws/dynamodb, é conhecida como chave de serviço padrão. Assim como todas as CMKs, achave de serviço padrão nunca deixa o AWS KMS descriptografado. O recurso de criptografia emrepouso não é compatível com o uso de CMKs gerenciadas de cliente.

A chave de serviço padrão em cada região protege as chaves de tabela para tabelas nessa região.Chaves de tabela

O DynamoDB usa o serviço de chave padrão no AWS KMS para gerar e criptografar uma chavede dados (p. 4) exclusiva para cada tabela, conhecida como chave de tabela. A chave de tabela émantida durante a vida útil da tabela criptografada.

A chave de tabela é usada como uma chave mestra. O DynamoDB gera chaves de criptografiade dados e usa-as para criptografar dados de tabela. Em seguida, ele usa a chave de tabela paraproteger as chaves de criptografia de dados. O DynamoDB gera uma chave de criptografia de dadosexclusiva para cada estrutura subjacente em uma tabela, mas vários itens de tabela podem serprotegidos com a mesma chave de criptografia de dados.

185

Page 193: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAutorização de uso da chave de serviço padrão

Quando você acessa uma tabela criptografada, o DynamoDB envia uma solicitação ao AWS KMSpara usar a chave de serviço padrão no AWS KMS para descriptografar a chave de tabela. Emseguida, usa a chave de tabela de texto simples para descriptografar as chaves de criptografia dedados e usa as chaves de criptografia de dados de texto simples para descriptografar os dados databela.

O DynamoDB gera, usa e armazena a chave de tabela e as chaves de criptografia de dados fora doAWS KMS. Ele protege todas as chaves com a criptografia Advanced Encryption Standard (AES)e chaves de criptografia de 256 bits. E remove as chaves de texto simples da memória o maisrápido possível depois de usá-las. Em seguida, armazena as chaves criptografadas com os dadoscriptografados para que estejam disponíveis para descriptografar os dados da tabela sob demanda.

Armazenamento em cache de chaves de tabela

Para evitar chamar o AWS KMS para cada operação do DynamoDB, o DynamoDB armazena chavesde texto não criptografado para cada principal na memória. Quando o DynamoDB recebe umasolicitação para a chave de tabela armazenada em cache após cinco minutos de inatividade, ele enviauma nova solicitação ao AWS KMS para descriptografar a chave de tabela. Essa chamada capturaquaisquer alterações no contexto de autorização do serviço de chave padrão.

O DynamoDB armazena a chave de tabela em cache na memória por até 12 horas. Isso permite queo DynamoDB mantenha o acesso aos dados da tabela na situação extraordinária em que o AWS KMSdeixa de responder durante um longo período.

Autorização de uso da chave de serviço padrãoO contexto de autorização na chave de serviço padrão (p. 185) do DynamoDB inclui sua política dechaves e concessões que delegam permissões para usá-la.

186

Page 194: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAutorização de uso da chave de serviço padrão

Política de chaves de serviço padrãoQuando o DynamoDB usa a chave de serviço padrão em operações de criptografia, ele o faz em nome dousuário que está acessando recursos do DynamoDB. A política de chaves de serviço padrão oferece aosusuários na conta permissão para usar a chave de serviço padrão para operações especificadas. Mas apermissão é concedida somente quando o DynamoDB faz a solicitação em nome do usuário. A política dechaves não permite que nenhum usuário use a chave de serviço padrão diretamente.

Essa política de chaves, como as políticas de todas as chaves gerenciadas pela AWS (p. 2), éestabelecida pelo serviço. Você não pode alterá-la, mas pode visualizá-la a qualquer momento. Paraobter a política de chaves para a chave de serviço padrão do DynamoDB em sua conta, use a operaçãoGetKeyPolicy.

As declarações de política na política de chaves têm os seguintes efeitos:

• Permitir que os usuários na conta usem a chave de serviço padrão para operações de criptografiaquando a solicitação provém do DynamoDB em seu nome. A política também permite que os usuárioscriem concessões (p. 188) para a CMK.

• Permitir que o usuário raiz da conta da AWS visualize as propriedades da CMK e revogue a concessãoque permite que o DynamoDB use a chave de serviço padrão. O DynamoDB usa concessões (p. 188)para operações de manutenção contínuas.

• Permitir que o DynamoDB execute operações somente leitura para obter a chave de serviço padrão emsua conta.

{ "Version" : "2012-10-17", "Id" : "auto-dynamodb-1", "Statement" : [ { "Sid" : "Allow access through Amazon DynamoDB for all principals in the account that are authorized to use Amazon DynamoDB", "Effect" : "Allow", "Principal" : { "AWS" : "*" }, "Action" : [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey" ], "Resource" : "*", "Condition" : { "StringEquals" : { "kms:CallerAccount" : "111122223333", "kms:ViaService" : "dynamodb.us-west-2.amazonaws.com" } } }, { "Sid" : "Allow direct access to key metadata to the account", "Effect" : "Allow", "Principal" : { "AWS" : "arn:aws:iam::111122223333:root" }, "Action" : [ "kms:Describe*", "kms:Get*", "kms:List*", "kms:RevokeGrant" ], "Resource" : "*" }, { "Sid" : "Allow DynamoDB Service with service principal name dynamodb.amazonaws.com to describe the key directly", "Effect" : "Allow", "Principal" : { "Service" : "dynamodb.amazonaws.com" }, "Action" : [ "kms:Describe*", "kms:Get*", "kms:List*" ], "Resource" : "*"

187

Page 195: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorContexto de criptografia do DynamoDB

} ]}

Uso de concessões para autorizar o DynamoDBAlém das políticas de chaves, o DynamoDB usa concessões para definir permissões no serviço dechave padrão (p. 185) do DynamoDB. Para visualizar as concessões no serviço de chave padrão doDynamoDB em sua conta, use a operação ListGrants.

O DynamoDB usa as permissões de concessão ao executar manutenção do sistema e tarefas de proteçãode dados contínua em segundo plano. Usa também concessões para gerar chaves de tabela (p. 185).

Cada concessão é específica a uma tabela. Quando a conta inclui várias tabelas criptografadas, háuma concessão de cada tipo para cada tabela. A concessão é restrita pelo contexto da criptografia doDynamoDB (p. 188), que inclui o nome da tabela e o ID da conta da AWS, bem como permissão pararetirar a concessão se ela não for mais necessária.

Para criar as concessões, o DynamoDB chama CreateGrant em nome do usuário que criou a tabelacriptografada. A permissão para criar a concessão provém da política de chaves (p. 187), que permiteque os usuários da conta chamem CreateGrant no serviço de chave padrão somente quando o DynamoDBfaz a solicitação em nome de um usuário autorizado.

A política de chaves também permite que a conta raiz revogue a concessão no serviço de chaves padrão.No entanto, se você revogar a concessão em uma tabela criptografada ativa, o DynamoDB não poderáproteger e manter a tabela.

Contexto de criptografia do DynamoDBUm contexto de criptografia (p. 6) é um conjunto de pares de chave-valor que contêm dados arbitráriosnão secretos. Quando você inclui um contexto de criptografia em uma solicitação para criptografar dados,o AWS KMS vincula de forma criptográfica o contexto de criptografia aos dados criptografados. Paradescriptografar os dados, você deve passar o mesmo contexto de criptografia.

O DynamoDB usa o mesmo contexto de criptografia em todas as operações de criptografia do KMS. Vocêtambém pode usar o contexto de criptografia para identificar uma operação de criptografia em registrose log de auditoria. Ele também aparece em texto não criptografado em logs, como o AWS CloudTrail eAmazon CloudWatch Logs.

O contexto de criptografia também pode ser usado como uma condição para autorização em políticase concessões. O DynamoDB o utiliza para restringir as concessões (p. 188) que permitem acesso aoserviço de chaves padrão.

Em suas solicitações ao AWS KMS, o DynamoDB usa um contexto de criptografia com dois pares dechave-valor.

"encryptionContextSubset": { "aws:dynamodb:tableName": "Books" "aws:dynamodb:subscriberId": "111122223333"}

• Tabela – o primeiro par de chave-valor identifica a tabela que o está criptografando. A chave éaws:dynamodb:tableName. O valor é o nome da tabela.

"aws:dynamodb:tableName": "<table-name>"

Por exemplo:

188

Page 196: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorMonitorar interação do DynamoDB com o AWS KMS

"aws:dynamodb:tableName": "Books"

• Conta – o segundo par de chave-valor identifica a conta da . A chave éaws:dynamodb:subscriberId. O valor é o ID de conta da

"aws:dynamodb:subscriberId": "<account-id>"

Por exemplo:

"aws:dynamodb:subscriberId": "111122223333"

Monitorar interação do DynamoDB com o AWS KMSVocê pode usar o AWS CloudTrail e o Amazon CloudWatch Logs para rastrear as solicitações que oDynamoDB envia para o AWS KMS em seu nome.

As solicitações GenerateDataKey, Decrypt e CreateGrant são discutidas nesta seção. Alémdisso, o DynamoDB usa uma operação DescribeKey para determinar se um serviço de chave padrãodo DynamoDB existe na conta e na região. Usa também uma operação RetireGrant para remover umaconcessão quando você exclui uma tabela.

GenerateDataKey

Quando você habilita a criptografia em repouso em uma tabela, o DynamoDB cria uma chave detabela exclusiva. Ele envia uma solicitação GenerateDataKey ao AWS KMS que especifica a chave deserviço padrão do aws/dynamodb em sua conta.

O evento que registra a operação GenerateDataKey é semelhante ao evento de exemplo a seguir.O usuário é o DynamoDB. Os parâmetros incluem o nome de recurso da Amazon (ARN) da chavede serviço padrão, um especificador de chave que requer uma chave de 256 bits e o contexto decriptografia (p. 188) que identifica a tabela e a conta da AWS.

{ "eventVersion": "1.05", "userIdentity": { "type": "AWSService", "invokedBy": "dynamodb.amazonaws.com" }, "eventTime": "2018-02-14T00:15:17Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "dynamodb.amazonaws.com", "userAgent": "dynamodb.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:dynamodb:tableName": "Services", "aws:dynamodb:subscriberId": "111122223333" }, "keySpec": "AES_256", "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, "responseElements": null, "requestID": "229386c1-111c-11e8-9e21-c11ed5a52190", "eventID": "e3c436e9-ebca-494e-9457-8123a1f5e979", "readOnly": true,

189

Page 197: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorMonitorar interação do DynamoDB com o AWS KMS

"resources": [ { "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333", "type": "AWS::KMS::Key" } ], "eventType": "AwsApiCall", "recipientAccountId": "111122223333", "sharedEventID": "bf915fa6-6ceb-4659-8912-e36b69846aad"}

Decrypt

Quando você acessa uma tabela criptografada do DynamoDB, o DynamoDB precisa descriptografara chave da tabela para que possa descriptografar as chaves abaixo dela na hierarquia. Em seguida,descriptografa os dados na tabela. Para descriptografar a tabela. O DynamoDB envia uma solicitaçãoDecrypt ao AWS KMS que especifica a chave de serviço padrão do aws/dynamodb em sua conta.

O evento que registra a operação Decrypt é semelhante ao evento de exemplo a seguir. O usuárioé o principal em sua conta da AWS que está acessando a tabela. Os parâmetros incluem a chave detabela criptografada (como um texto cifrado blob) e o contexto de criptografia (p. 188) que identificaa tabela e a conta da AWS. O AWS KMS deriva o ID da chave de serviço padrão do texto cifrado.

{ "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:user01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/user01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-02-14T16:42:15Z" }, "sessionIssuer": { "type": "Role", "principalId": "AROAIGDT3HGFQZX4RY6RU", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" } }, "invokedBy": "dynamodb.amazonaws.com" }, "eventTime": "2018-02-14T16:42:39Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "dynamodb.amazonaws.com", "userAgent": "dynamodb.amazonaws.com", "requestParameters": { "encryptionContext": { "aws:dynamodb:tableName": "Books", "aws:dynamodb:subscriberId": "111122223333" } }, "responseElements": null, "requestID": "11cab293-11a6-11e8-8386-13160d3e5db5",

190

Page 198: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorMonitorar interação do DynamoDB com o AWS KMS

"eventID": "b7d16574-e887-4b5b-a064-bf92f8ec9ad3", "readOnly": true, "resources": [ { "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333", "type": "AWS::KMS::Key" } ], "eventType": "AwsApiCall", "recipientAccountId": "111122223333"}

CreateGrant

O DynamoDB usa concessões (p. 188) para permitir que o serviço realize a proteção de dados etarefas de manutenção e durabilidade contínuas.

As concessões que o DynamoDB cria são específicas a uma tabela. O principal na solicitaçãoCreateGrant é o usuário que criou a tabela.

O evento que registra a operação CreateGrant é semelhante ao evento de exemplo a seguir. Osparâmetros incluem o nome de recurso da Amazon (ARN) da chave de serviço padrão, o principalfavorecido e o principal que está sendo desativado (o serviço do DynamoDB) e as operaçõesque a concessão abrange. Incluem também uma restrição que requer que todas as operações decriptografia usem o contexto de criptografia (p. 188).

{ "eventVersion": "1.05", "userIdentity": { "type": "AssumedRole", "principalId": "AROAIGDTESTANDEXAMPLE:user01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/user01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-02-14T00:12:02Z" }, "sessionIssuer": { "type": "Role", "principalId": "AROAIGDTESTANDEXAMPLE", "arn": "arn:aws:iam::111122223333:role/Admin", "accountId": "111122223333", "userName": "Admin" } }, "invokedBy": "dynamodb.amazonaws.com" }, "eventTime": "2018-02-14T00:15:15Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-west-2", "sourceIPAddress": "dynamodb.amazonaws.com", "userAgent": "dynamodb.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "retiringPrincipal": "dynamodb.us-west-2.amazonaws.com", "constraints": {

191

Page 199: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAmazon Elastic Block Store (Amazon EBS)

"encryptionContextSubset": { "aws:dynamodb:tableName": "Books", "aws:dynamodb:subscriberId": "111122223333" } }, "granteePrincipal": "dynamodb.us-west-2.amazonaws.com", "operations": [ "DescribeKey", "GenerateDataKey", "Decrypt", "Encrypt", "ReEncryptFrom", "ReEncryptTo", "RetireGrant" ] }, "responseElements": { "grantId": "5c5cd4a3d68e65e77795f5ccc2516dff057308172b0cd107c85b5215c6e48bde" }, "requestID": "2192b82a-111c-11e8-a528-f398979205d8", "eventID": "a03d65c3-9fee-4111-9816-8bf96b73df01", "readOnly": false, "resources": [ { "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333", "type": "AWS::KMS::Key" } ], "eventType": "AwsApiCall", "recipientAccountId": "111122223333"}

Como o Amazon Elastic Block Store (Amazon EBS)usa o AWS KMS

Este tópico discute em detalhes como o Amazon Elastic Block Store (Amazon EBS) usa o AWS KMSpara criptografar volumes e snapshots. Para obter instruções básicas sobre a criptografia de volumes doAmazon EBS, consulte Criptografia do Amazon EBS.

Tópicos• Criptografia do Amazon EBS (p. 192)• Uso de CMKs e chaves de dados (p. 193)• Contexto de criptografia do Amazon EBS (p. 193)• Detecção de falhas do Amazon EBS (p. 194)• Uso do AWS CloudFormation para criar volumes criptografados do Amazon EBS (p. 194)

Criptografia do Amazon EBSQuando você anexa um volume do Amazon EBS criptografado a um tipo de instância do Amazon ElasticCompute Cloud (Amazon EC2) com suporte, os dados são armazenados em repouso no volume, E/S dedisco e snapshots criados do volume são todos criptografados. A criptografia ocorre nos servidores quehospedam as instâncias do Amazon EC2.

192

Page 200: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorUso de CMKs e chaves de dados

Esse recurso tem suporte em todos os tipos de volume do Amazon EBS. Você acessa os volumescriptografados da mesma forma que acessa outros volumes; a criptografia e a descriptografia sãomanipuladas de forma transparente e elas não exigem ações adicionais de você, sua instância do EC2 ouseu aplicativo. Snapshots de volumes criptografados são criptografados automaticamente, e os volumesque são criados dos snapshots criptografados também são criptografados automaticamente.

O status da criptografia de um volume do EBS é determinado quando você cria o volume. Não é possívelalterar o status de criptografia de um volume existente. No entanto, você pode migrar dados entre osvolumes criptografados e não criptografados, e aplicar um novo status de criptografia enquanto copia umsnapshot.

Uso de CMKs e chaves de dadosAo criar um volume do Amazon EBS criptografado, você especifica uma chave mestra do cliente (CMK) doAWS KMS. Por padrão, o Amazon EBS usa a CMK gerenciada pela AWS (p. 2) para o Amazon EBS emsua conta. No entanto, você pode especificar uma chave mestra do cliente (CMK) (p. 2).

O Amazon EBS usa a CMK que você especifica para gerar uma chave de dados exclusiva para cadavolume. Ele armazena uma cópia criptografada da chave de dados com o volume. Em seguida, quandovocê anexa o volume a uma instância do Amazon EC2, o Amazon EBS usa a chave de dados paracriptografar toda a E/S do disco no volume.

O seguinte é uma explicação de como o Amazon EBS usa sua CMK:

1. Quando você cria um volume do EBS criptografado, o Amazon EBS envia uma solicitaçãoGenerateDataKeyWithoutPlaintext ao AWS KMS especificando a CMK que você escolheu para acriptografia do volume do EBS.

2. O AWS KMS gera uma nova chave de dados, criptografa-a com a CMK especificada e envia a chave dedados criptografada ao Amazon EBS para armazenamento com os metadados do volume.

3. Quando você anexa o volume criptografado a uma instância do EC2, o Amazon EC2 envia a chave dedados criptografada ao AWS KMS com uma solicitação Decrypt.

4. O AWS KMS descriptografa a chave de dados criptografada e, em seguida, envia a chave de dadosdescriptografada (texto não criptografado) ao Amazon EC2.

5. O Amazon EC2 usa a chave de dados de texto não criptografado na memória do hipervisor paracriptografar a E/S de disco para o volume do EBS. A chave de dados de texto simples persiste namemória, enquanto o volume do EBS está conectado à instância do EC2.

Contexto de criptografia do Amazon EBSEm suas solicitações GenerateDataKeyWithoutPlaintext e Decrypt para o KMS da AWS, o Amazon EBSusa um contexto de criptografia com um par de nome e valor que identifica o volume ou snapshot nasolicitação. O nome no contexto de criptografia não varia.

Um contexto de criptografia é um conjunto de pares de chave-valor que contêm dados arbitrários nãosecretos. Quando você inclui um contexto de criptografia em uma solicitação para criptografar dados,o AWS KMS vincula de forma criptográfica o contexto de criptografia aos dados criptografados. Paradescriptografar os dados, você deve passar o mesmo contexto de criptografia.

Para todos os volumes e para os snapshots criptografados criados com a operação CreateSnapshotdo Amazon EBS, o Amazon EBS usa o ID de volume como valor de contexto de criptografia. No camporequestParameters de uma entrada de log do CloudTrail, o contexto de criptografia é parecido com oseguinte:

"encryptionContext": {

193

Page 201: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorDetecção de falhas do Amazon EBS

"aws:ebs:id": "vol-0cfb133e847d28be9"}

O Amazon EC2 usa o ID do snapshot como valor de contexto de criptografia para os snapshotscriptografados criados com a operação CopySnapshot do Amazon EBS. No campo requestParametersde uma entrada de log do CloudTrail, o contexto de criptografia é parecido com o seguinte:

"encryptionContext": { "aws:ebs:id": "snap-069a655b568de654f"}

Detecção de falhas do Amazon EBSPara criar um volume criptografado do EBS ou anexar o volume a uma instância do EC2, o AmazonEBS e a infraestrutura do Amazon EC2 devem poder usar a CMK especificada para criptografia devolume do EBS. Quando a CMK não pode ser utilizada, por exemplo, quando ela não está no estado dechave (p. 175) Enabled há falha na criação ou na anexação do volume.

Nesse caso, o Amazon EBS envia um evento ao Eventos do Amazon CloudWatch para notificarvocê sobre a falha. Com o Eventos do CloudWatch, você pode estabelecer regras que acionamações automáticas em resposta a esses eventos. Para obter mais informações, consulte Eventos doAmazon CloudWatch para Amazon EBS no Guia do usuário do Amazon EC2 para instâncias do Linux,especialmente as seguintes seções:

• Chave de criptografia inválida em Anexar ou reanexar volume• Chave de criptografia inválida em Criar volume

Para corrigir essas falhas, garanta que a CMK especificada para criptografia de volume do EBS estáhabilitada. Para fazer isso, primeiro visualize a CMK (p. 13) para determinar o estado de sua chave atual (acoluna Status no Console de gerenciamento da AWS). Em seguida, veja as informações em um dos links aseguir:

• Se o estado de chave da CMK for desabilitado, habilite-o (p. 30).• Se o estado de chave da CMK for importação pendente, importe o material de chaves (p. 102).• Se o estado de chave da CMK for exclusão pendente, cancele a exclusão da chave (p. 121).

Uso do AWS CloudFormation para criar volumescriptografados do Amazon EBSVocê pode usar o AWS CloudFormation para criar volumes criptografados do Amazon EBS. Para obtermais informações, consulte AWS::EC2::Volume no Guia do usuário do AWS CloudFormation.

Como o Amazon Elastic Transcoder usa o AWSKMS

Você pode usar o Amazon Elastic Transcoder para converter arquivos de mídia armazenados em umbucket do Amazon S3 em formatos exigidos pelos dispositivos de reprodução do consumidor. Ambos osarquivos de entrada e saída podem ser criptografados e descriptografados. As seções a seguir discutemcomo o AWS KMS é usado nos dois processos.

194

Page 202: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCriptografia do arquivo de entrada

Tópicos• Criptografia do arquivo de entrada (p. 195)• Descriptografia do arquivo de entrada (p. 195)• Criptografia do arquivo de saída (p. 196)• Proteção de conteúdo HLS (p. 198)• Contexto de criptografia do Elastic Transcoder (p. 198)

Criptografia do arquivo de entradaAntes de usar o Elastic Transcoder, crie um bucket do Amazon S3 e faça upload do arquivo de mídia nele.Você pode criptografar o arquivo antes de enviá-lo usando a criptografia do cliente do AES ou após oupload usando a criptografia do servidor do Amazon S3.

Caso escolha a criptografia do cliente usando o AES, você será responsável por criptografar o arquivoantes de fazer upload dele no Amazon S3 e deverá fornecer acesso ao Elastic Transcoder à chave decriptografia. Faça isso usando uma chave mestra de cliente (CMK) do AWS KMS para proteger a chave decriptografia do AES usada para criptografar o arquivo de mídia.

Ao optar pela criptografia do lado do servidor, você permite que o Amazon S3 realize toda a criptografiae a descriptografia de arquivos em seu nome. Você pode configurar o Amazon S3 para usar uma de trêschaves mestras diferentes para proteger a chave de dados exclusiva usada para criptografar o arquivo:

• A chave mestra do Amazon S3, uma chave que pertence e é gerenciada pela AWS.• A CMK gerenciada pela AWS para o Amazon S3, uma chave mestra que pertence à sua conta, mas é

gerenciada pela AWS• Qualquer CMK gerenciada pelo cliente que você cria usando o AWS KMS

Você pode solicitar a criptografia e a chave mestra desejadas usando o console do Amazon S3 ou as APIsapropriadas do Amazon S3. Para obter mais informações sobre como o Amazon S3 realiza a criptografia,consulte Proteção de dados usado criptografia no Guia do desenvolvedor do Amazon Simple StorageService.

Quando você usa uma CMK do AWS KMS como a chave mestra (a CMK gerenciada pela AWS para oAmazon S3 em sua conta ou uma CMK gerenciada pelo cliente) para proteger o arquivo de entrada, oAmazon S3 e o AWS KMS interagem da seguinte maneira:

1. O Amazon S3 solicita uma chave de dados de texto não criptografado e uma cópia da chave de dadoscriptografada na CMK especificada.

2. O AWS KMS cria uma chave de dados, criptografa-a com a CMK especificada e envia a chave de dadosde texto não criptografada e a chave de dados criptografada ao Amazon S3.

3. O Amazon S3 usa a chave de dados de texto não criptografado para criptografar o arquivo de mídia earmazena o arquivo no bucket do Amazon S3 especificado.

4. O Amazon S3 armazena a chave de dados criptografada junto com o arquivo de mídia criptografado.

Descriptografia do arquivo de entradaSe você optar pela criptografia do lado do servidor do Amazon S3 para criptografar o arquivo de entrada,o Elastic Transcoder não descriptografará o arquivo. Em vez disso, o Elastic Transcoder depende doAmazon S3 para executar a descriptografia de acordo com as configurações que você especifica ao criarum trabalho e um pipeline.

Está disponível a seguinte combinação de configurações:

195

Page 203: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCriptografia do arquivo de saída

Modo de criptografia Chave do AWS KMS Significado

S3 Padrão O Amazon S3 cria e gerencia aschaves usadas para criptografare descriptografar o arquivo demídia. O processo não é visívelpara o usuário.

S3-AWS-KMS Padrão Por padrão, o Amazon S3usa uma chave de dadoscriptografada pela CMKgerenciada pela AWS para oAmazon S3 em sua conta paracriptografar o arquivo de mídia.

S3-AWS-KMS Personalizar (com o ARN) O Amazon S3 usa uma chavede dados criptografada pelaCMK gerenciada pelo clienteespecificada para criptografar oarquivo de mídia.

Quando o S3-AWS-KMS está especificado, o Amazon S3 e o AWS KMS trabalham em conjunto daseguinte maneira para executar a descriptografia:

1. O Amazon S3 envia a chave de dados criptografada ao AWS KMS.2. O AWS KMS descriptografa a chave de dados usando a CMK apropriada e envia a chave de dados de

texto não criptografado de volta ao Amazon S3.3. O Amazon S3 usa a chave de dados de texto não criptografado para descriptografar o texto cifrado.

Quando você escolhe a criptografia do lado do cliente usando uma chave do AES, o Elastic Transcoderrecupera o arquivo criptografado do bucket do Amazon S3 e descriptografa-o. O Elastic Transcoder usa aCMK que você especificou ao criar o pipeline para descriptografar a chave do AES e usa a chave do AESpara descriptografar o arquivo de mídia.

Criptografia do arquivo de saídaO Elastic Transcoder criptografa o arquivo de saída, dependendo de como você especifica asconfigurações de criptografia ao criar um trabalho e um pipeline. As seguintes opções estão disponíveis:

Modo de criptografia Chave do AWS KMS Significado

S3 Padrão O Amazon S3 cria e gerencia aschaves usadas para criptografaro arquivo de saída.

S3-AWS-KMS Padrão O Amazon S3 usa uma chavede dados criada pelo AWSKMS e criptografada pela CMKgerenciada pela AWS para oAmazon S3 em sua conta.

S3-AWS-KMS Personalizar (com o ARN) O Amazon S3 usa uma chavede dados criptografada usandoa CMK gerenciada pelo cliente

196

Page 204: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCriptografia do arquivo de saída

Modo de criptografia Chave do AWS KMS Significadoespecificada pelo ARN paracriptografar o arquivo de mídia.

AES- Padrão O Elastic Transcoder usa a CMKgerenciada pela AWS para oAmazon S3 em sua conta paradescriptografar a chave do AESfornecida por você e usa essachave para criptografar o arquivode saída.

AES- Personalizar (com o ARN) O Elastic Transcoder usa aCMK gerenciada pelo clienteespecificada pelo ARN paradescriptografar a chave do AESfornecida por você e usa essachave para criptografar o arquivode saída.

Quando você especifica que uma CMK do AWS KMS (a CMK gerenciada pela AWS para o Amazon S3em sua conta ou uma CMK gerenciada pelo cliente) deve ser usada para criptografar o arquivo de saída, oAmazon S3 e o AWS KMS interagem da seguinte maneira:

1. O Amazon S3 solicita uma chave de dados de texto não criptografado e uma cópia da chave de dadoscriptografada usando a CMK especificada.

2. O AWS KMS cria uma chave de dados, criptografa-a com a CMK e envia a chave de dados de texto nãocriptografado e a chave de dados criptografada ao Amazon S3.

3. O Amazon S3 criptografa a mídia usando a chave de dados e armazena-a no bucket do Amazon S3especificado.

4. O Amazon S3 armazena a chave de dados criptografada junto com o arquivo de mídia criptografado.

Quando você especifica que sua chave do AES fornecida deve ser usada para criptografar o arquivo desaída, a chave do AES deve ser criptografada usando uma CMK no AWS KMS. O Elastic Transcoder,AWS KMS e você interagem da seguinte maneira.

1. Você criptografa a chave do AES chamando a operação Encrypt na API do AWS KMS. O AWS KMScriptografa a chave usando a CMK especificada. Você especifica qual CMK será usada quando criar opipeline.

2. Você especifica o arquivo que contém a chave do AES criptografada ao criar o trabalho do ElasticTranscoder.

3. O Elastic Transcoder descriptografa a chave chamando a operação Decrypt na API do AWS KMSpassando a chave criptografada como texto cifrado.

4. O Elastic Transcoder usa a chave do AES descriptografada para criptografar o arquivo de mídiade saída e exclui da memória a chave do AES descriptografada. Somente a cópia criptografadaoriginalmente definida no trabalho é salva no disco.

5. Você pode fazer download do arquivo de saída criptografado e descriptografá-lo localmente usando achave AES original que você definiu.

197

Page 205: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorProteção de conteúdo HLS

Important

Suas chaves de criptografia privadas nunca são armazenadas pela AWS. Portanto, é importanteque você gerencie as chaves com segurança. Se perdê-las, você não poderá descriptografar osseus dados.

Proteção de conteúdo HLSO HTTP Live Streaming (HLS) é um protocolo de streaming adaptável. O Elastic Transcoder oferecesuporte ao HLS, dividindo seu arquivo de entrada em arquivos individuais menores, chamados segmentosde mídia. Um conjunto de segmentos de mídia individuais correspondentes contêm o mesmo materialcodificado com diferentes taxas de bits, permitindo que o player selecione o streaming que melhor seadapta à largura de banda disponível. O Elastic Transcoder também cria listas de reprodução que contêmmetadados dos vários segmentos disponíveis para serem transmitidos.

Você pode usar a criptografia AES-128 para proteger os segmentos de mídia transcodificados. Quandovocê habilita a proteção de conteúdo HLS, cada segmento de mídia é criptografado usando uma chave decriptografia AES-128. Quando o conteúdo é visualizado, o jogador faz download da chave e descriptografaos segmentos de mídia durante o processo de reprodução.

São usados dois tipos de chave: uma CMK do AWS KMS e uma chave de dados. Crie uma CMK paracriptografar e descriptografar a chave de dados. O Elastic Transcoder usa a chave de dados paracriptografar e descriptografar segmentos de mídia. A chave de dados deve AES-128. Todas as variações esegmentos do mesmo conteúdo são criptografados usando a mesma chave de dados. Forneça uma chavede dados ou deixe que o Elastic Transcoder crie-a para você.

A CMK pode ser usada para criptografar a chave de dados nos seguintes pontos:

• Se você fornecer sua própria chave de dados, deverá criptografá-la antes de passá-la para o ElasticTranscoder.

• Se você solicitar que o Elastic Transcoder gere a chave de dados, o Elastic Transcoder criptografará achave de dados para você.

A CMK pode ser usada para descriptografar a chave de dados nos seguintes pontos:

• O Elastic Transcoder descriptografa a chave de dados fornecida quando precisa usá-la para criptografaro arquivo de saída ou descriptografar o arquivo de entrada.

• Você descriptografa uma chave de dados gerada pelo Elastic Transcoder e usa-a para descriptografararquivos de saída.

Para obter mais informações, consulte Proteção de conteúdo HLS no Amazon Elastic TranscoderDeveloper Guide.

Contexto de criptografia do Elastic TranscoderUm contexto de criptografia (p. 305) é um conjunto de pares de chave-valor que contêm dados arbitráriosnão secretos. Quando você inclui um contexto de criptografia em uma solicitação para criptografar dados,o AWS KMS vincula de forma criptográfica o contexto de criptografia aos dados criptografados. Paradescriptografar os dados, você deve passar o mesmo contexto de criptografia.

O Elastic Transcoder usa o mesmo contexto de criptografia em todas as solicitações de API do AWS KMSpara gerar chaves de dados, criptografar e descriptografar.

"service" : "elastictranscoder.amazonaws.com"

198

Page 206: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAmazon EMR

O contexto de criptografia é gravado nos logs do CloudTrail para ajudá-lo a compreender como uma CMKdo AWS KMS foi usada. No campo requestParameters de um arquivo de log do CloudTrail, o contextode criptografia é parecido com este:

"encryptionContext": { "service" : "elastictranscoder.amazonaws.com"}

Para obter mais informações sobre como configurar trabalhos do Elastic Transcoder para usar umadas opções de criptografia com suporte, consulte Opções de criptografia de dados no Amazon ElasticTranscoder Developer Guide.

Como o Amazon EMR usa o AWS KMSAo usar um cluster Amazon EMR, você pode configurá-lo para criptografar dados em repouso antes desalvá-los em um local de armazenamento persistente. Você pode criptografar dados em repouso no EMRFile System (EMRFS), nos volumes de armazenamento de nós de cluster, ou em ambos. Para criptografardados em repouso, você pode usar uma chave mestra de cliente (CMK) no AWS KMS. Os tópicos a seguirexplicam como um cluster do Amazon EMR usa uma CMK para criptografar dados em repouso.

Os clusters Amazon EMR também criptografam dados em trânsito, o que significa que o cluster criptografaos dados antes de enviá-los pela rede. Você não pode usar uma CMK para criptografar dados em trânsito.Para obter mais informações, consulte Criptografia de dados em trânsito no Guia de release do AmazonEMR.

Para obter mais informações sobre todas as opções de criptografia disponíveis no Amazon EMR, consulteCompreensão das opções de criptografia com o Amazon EMR no Guia da versão do Amazon EMR.

Tópicos• Como criptografar dados no EMR File System (EMRFS) (p. 199)• Como criptografar dados nos volumes de armazenamento dos nós de cluster (p. 201)• Contexto de criptografia (p. 202)

Como criptografar dados no EMR File System(EMRFS)Os clusters do Amazon EMR usam dois sistemas de arquivos distribuídos:

• O Hadoop Distributed File System (HDFS). A criptografia do HDFS não usa uma CMK no AWS KMS.

 • O EMR File System (EMRFS). O EMRFS é uma implementação do HDFS que permite que os clusters

do Amazon EMR armazenem dados no Amazon Simple Storage Service (Amazon S3). O EMRFSoferece suporte a quatro opções de criptografia, duas das quais usam uma CMK no AWS KMS. Paraobter mais informações sobre todas as quatro opções de criptografia EMRFS, consulte Criptografia emrepouso para o Amazon S3 com o EMRFS no Guia da versão do Amazon EMR.

As duas opções de criptografia do EMRFS que usam uma CMK usam os seguintes recursos de criptografiaoferecidos pelo Amazon S3:

• Criptografia do lado do servidor com chaves gerenciadas pelo AWS KMS (SSE-KMS). Com o SSE-KMS,o cluster do Amazon EMR envia dados ao Amazon S3 e, em seguida, o Amazon S3 usa uma CMK para

199

Page 207: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo criptografar dados no EMR File System (EMRFS)

criptografar os dados antes de enviá-los a um bucket do S3. Para obter mais informações sobre comoisso funciona, consulte Processo para criptografar dados no EMRFS com o SSE-KMS (p. 200).

 • Criptografia do lado do cliente com chaves gerenciadas pelo AWS KMS (CSE-KMS). Com o CSE-KMS,

o cluster do Amazon EMR usa uma CMK para criptografar os dados antes de enviá-los ao AmazonS3 para storage. Para obter mais informações sobre como isso funciona, consulte Processo paracriptografar dados no EMRFS com o CSE-KMS (p. 201).

Ao configurar um cluster do Amazon EMR para criptografar dados no EMRFS com o SSE-KMS ou oCSE-KMS, você escolhe a CMK no AWS KMS que deseja que o cluster do Amazon S3 ou do AmazonEMR use. Com o SSE-KMS, você pode escolher a CMK gerenciada pela AWS para o Amazon S3 como alias aws/s3 ou uma CMK personalizada criada por você. Com o CSE-KMS, é preciso escolher umaCMK personalizada que você cria. Ao escolher uma CMK personalizada, você deve garantir que o clusterdo Amazon EMR tenha permissão para usar a CMK. Para obter mais informações, consulte Adicionar afunção de instância do EMR a uma CMK do AWS KMS no Guia da versão do Amazon EMR.

Para o SSE-KMS e o CSE-KMS, a CMK que você escolhe é a chave mestra em um fluxo de trabalho decriptografia de envelope (p. 5). Os dados são criptografados com uma única chave de criptografia de dados(ou chave de dados), e essa chave é criptografada com a CMK no AWS KMS. Os dados criptografadose uma cópia criptografada de sua chave de dados são armazenados em conjunto como um único objetocriptografado em um bucket do S3. Para obter mais informações sobre como isso funciona, consulte ostópicos a seguir.

Tópicos• Processo para criptografar dados no EMRFS com o SSE-KMS (p. 200)• Processo para criptografar dados no EMRFS com o CSE-KMS (p. 201)

Processo para criptografar dados no EMRFS com o SSE-KMSQuando você configura um cluster do Amazon EMR para usar o SSE-KMS, o processo de criptografiafunciona da seguinte forma:

1. O cluster envia os dados a Amazon S3 para storage em um bucket do S3.2. O Amazon S3 envia uma solicitação GenerateDataKey ao AWS KMS, especificando o ID de chave da

CMK que você escolheu ao configurar o cluster para usar o SSE-KMS. A solicitação inclui o contexto decriptografia, para obter mais informações, consulte Contexto de criptografia (p. 202).

3. O AWS KMS gera uma chave de criptografia de dados exclusiva (chave de dados) e envia duas cópiasdessa chave de dados ao Amazon S3. Uma cópia é não criptografada (texto simples), e a outra cópia écriptografada sob a CMK.

4. O Amazon S3 usa a chave de dados de texto não criptografado para criptografar os dados que elarecebeu na etapa 1 e, em seguida, remove a chave de dados de texto não criptografado da memória,assim que possível, após o uso.

5. O Amazon S3 armazena os dados criptografados e a cópia criptografada da chave de dados emconjunto como um único objeto criptografado em um bucket do S3.

O processo de descriptografia funciona desta forma:

1. O cluster solicita um objeto de dados criptografado de um bucket do S3.2. O Amazon S3 extrai a chave de dados criptografada do objeto do S3 e, em seguida, envia a chave

de dados criptografada ao AWS KMS com uma solicitação Decrypt. A solicitação inclui o contexto decriptografia, para obter mais informações, consulte Contexto de criptografia (p. 202).

200

Page 208: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo criptografar dados nos volumesde armazenamento dos nós de cluster

3. O AWS KMS descriptografa a chave de dados criptografada usando a mesma CMK que foi usada paracriptografá-la e, em seguida, envia a chave de dados descriptografada (texto não criptografado) aoAmazon S3.

4. O Amazon S3 usa a chave de dados de texto não criptografado para descriptografar os dadoscriptografados e, em seguida, remove a chave de dados de texto não criptografado da memória, assimque possível, após o uso.

5. O Amazon S3 envia os dados descriptografados ao cluster.

Processo para criptografar dados no EMRFS com o CSE-KMSQuando você configura um cluster do Amazon EMR para usar o CSE-KMS, o processo de criptografiafunciona da seguinte forma:

1. Quando estiver pronto para armazenar os dados no Amazon S3, o cluster enviará uma solicitaçãoGenerateDataKey ao AWS KMS especificando o ID da chave do CMK que você escolheu ao configuraro cluster para usar o CSE-KMS. A solicitação inclui o contexto de criptografia, para obter maisinformações, consulte Contexto de criptografia (p. 202).

2. O AWS KMS gera uma chave de criptografia de dados exclusiva (chave de dados) e envia duas cópiasdessa chave de dados ao cluster. Uma cópia é não criptografada (texto simples), e a outra cópia écriptografada sob a CMK.

3. O cluster usa a chave de dados de texto simples para criptografar os dados e, em seguida, remove achave de dados de texto simples da memória, assim que possível após o uso.

4. O cluster combina os dados criptografados e a cópia criptografada da chave de dados em conjunto emum único objeto criptografado.

5. O cluster envia o objeto criptografado ao Amazon S3 para storage.

O processo de descriptografia funciona desta forma:

1. O cluster solicita o objeto de dados criptografado de um bucket do S3.2. O Amazon S3 envia o objeto criptografado ao cluster.3. O cluster extrai a chave de dados criptografada do objeto criptografado e, em seguida, envia a chave

de dados criptografada ao AWS KMS com uma solicitação Decrypt. A solicitação inclui o contexto decriptografia, para obter mais informações, consulte Contexto de criptografia (p. 202).

4. O AWS KMS descriptografa a chave de dados criptografada usando a mesma CMK que foi usada paracriptografá-la e, em seguida, envia a chave de dados descriptografada (texto não criptografado) aocluster.

5. O cluster usa a chave de dados de texto simples para descriptografar os dados criptografados e, emseguida, remove a chave de dados de texto simples da memória, assim que possível após o uso.

Como criptografar dados nos volumes dearmazenamento dos nós de clusterUm cluster do Amazon EMR é uma coleção de instâncias do Amazon Elastic Compute Cloud (AmazonEC2). Cada instância no cluster é chamada de um nó de cluster ou nó. Cada nó pode ter dois tipos devolumes de sotrage: volumes de armazenamento de instâncias e volumes do Amazon Elastic Block Store(Amazon EBS). Você pode configurar o cluster para usar Linux Unified Key Setup (LUKS) para criptografarambos os tipos de volumes de armazenamento nos nós (mas não o volume de inicialização de cada nó).Isso é chamado de criptografia de disco local.

Ao habilitar a criptografia de disco local para um cluster, você pode optar por criptografar a chave mestrade LUKS com uma CMK no AWS KMS. Escolha uma CMK personalizada criada por você. Não é possível

201

Page 209: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorContexto de criptografia

usar uma CMK gerenciada pela AWS. Ao escolher uma CMK personalizada, você deve garantir queo cluster do Amazon EMR tenha permissão para usar a CMK. Para obter mais informações, consulteAdicionar a função de instância do EMR a uma CMK do AWS KMS no Guia da versão do Amazon EMR.

Quando você habilita a criptografia de disco local usando uma CMK, o processo de criptografia funcionadesta forma:

1. Quando cada nó de cluster é iniciado, ele envia uma solicitação GenerateDataKey ao AWS KMSespecificando o ID de chave da CMK que você escolheu ao habilitar a criptografia de disco local para ocluster.

2. O AWS KMS gera uma chave de criptografia de dados exclusiva (chave de dados) e, em seguida, enviaduas cópias dessa chave de dados ao nó. Uma cópia é não criptografada (texto simples), e a outracópia é criptografada sob a CMK.

3. O nó usa uma versão codificada em base64 da chave de dados de texto simples como a senha queprotege a chave mestra de LUKS. O nó salva a cópia criptografada da chave de dados em seu volumede inicialização.

4. Se o nó for reinicializado, ele enviará a chave de dados criptografada ao AWS KMS com uma solicitaçãoDecrypt.

5. O AWS KMS descriptografa a chave de dados criptografada usando a mesma CMK que foi usada paracriptografá-la e, em seguida, envia a chave de dados descriptografada (texto não criptografado) ao nó.

6. O nó usa uma versão codificada em base64 da chave de dados de texto simples como a senha paradesbloquear a chave mestra de LUKS.

Contexto de criptografiaCada serviço da AWS integrado com o AWS KMS pode especificar o contexto de criptografia ao usar oAWS KMS para gerar chaves de dados, criptografar ou descriptografar dados. O contexto de criptografiasão informações adicionais autenticadas que o AWS KMS usa para verificar a integridade dos dados.Quando um serviço especifica um contexto de criptografia para uma operação de criptografia, ele deveespecificar o mesmo contexto de criptografia para a operação de descriptografia correspondente ou adescriptografia não terá êxito. O contexto de criptografia também é gravado em arquivos de log do AWSCloudTrail, o que pode ajudá-lo a entender por que uma determinada CMK foi usada. Para obter maisinformações sobre contexto de criptografia, consulte Contexto de criptografia (p. 305).

A seção a seguir explica o contexto de criptografia usado em cada cenário de criptografia do Amazon EMRque usa uma CMK.

Contexto de criptografia para criptografia EMRFS com o SSE-KMSCom o SSE-KMS, o cluster do Amazon EMR envia dados ao Amazon S3 e, em seguida, o Amazon S3 usauma CMK para criptografar os dados antes de enviá-los a um bucket do S3. Neste caso, o Amazon S3 usao nome de recurso da Amazon (ARN) do objeto do S3 como contexto de criptografia com cada solicitaçãoGenerateDataKey e Decrypt que envia ao AWS KMS. O exemplo a seguir mostra uma representaçãoJSON do contexto de criptografia que o Amazon S3 usa.

{ "aws:s3:arn" : "arn:aws:s3:::S3_bucket_name/S3_object_key" }

Contexto de criptografia para criptografia EMRFS com o CSE-KMSCom o CSE-KMS, o cluster do Amazon EMR usa uma CMK para criptografar os dados antes de enviá-losao Amazon S3 para storage. Nesse caso, o cluster usa o nome de recurso da Amazon (ARN) do contexto

202

Page 210: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAmazon Redshift

de criptografia da CMK com cada solicitação GenerateDataKey e Decrypt que envia ao AWS KMS. Oexemplo a seguir mostra uma representação JSON do contexto de criptografia que o cluster usa.

{ "kms_cmk_id" : "arn:aws:kms:us-east-2:111122223333:key/0987ab65-43cd-21ef-09ab-87654321cdef" }

Contexto de criptografia para criptografia de disco local comLUKSQuando um cluster do Amazon EMR usa criptografia de disco local com o LUKS, os nós de cluster nãoespecificam o contexto de criptografia com as solicitações GenerateDataKey e Decrypt que enviam aoAWS KMS.

Como o Amazon Redshift usa o AWS KMSEste tópico discute como o Amazon Redshift usa o AWS KMS para criptografar dados.

Tópicos• Criptografia do Amazon Redshift (p. 203)• Contexto de criptografia (p. 203)

Criptografia do Amazon RedshiftUm data warehouse do Amazon Redshift é um conjunto de recursos de computação chamados nós, quesão organizados em um grupo chamado cluster. Cada cluster executa um mecanismo do Amazon Redshifte contém um ou mais bancos de dados.

O Amazon Redshift usa uma arquitetura de quatro níveis baseada em chaves na criptografia. A arquiteturaconsiste em chaves de criptografia de dados, uma chave de banco de dados, uma chave de cluster e umachave mestra.

As chaves de criptografia de dados criptografam blocos de dados do cluster. Cada bloco de dados recebeuma chave AES-256 gerada aleatoriamente. Essas chaves são criptografadas com a chave do banco dedados do cluster.

A chave do banco de dados criptografa as chaves de criptografia de dados do cluster. A chave do bancode dados é uma chave AES-256 gerada aleatoriamente. Ela é armazenada em disco em uma redeseparada do cluster do Amazon Redshift e passada para o cluster por meio de um canal seguro.

A chave do cluster criptografa a chave do banco de dados do cluster do Amazon Redshift. Você pode usaro AWS KMS, o AWS CloudHSM ou um módulo de segurança de hardware (HSM) externo para gerenciar achave do cluster. Para obter mais detalhes, consulte a documentação de Criptografia de banco de dadosdo Amazon Redshift .

Se a chave mestra residir no AWS KMS, ela criptografará a chave do cluster. Para solicitar criptografia,marque a caixa apropriada no console do Amazon Redshift. Para especificar uma chave mestragerenciada pelo cliente a ser usada, escolha uma na lista que aparece abaixo da caixa de criptografia. Sevocê não especificar uma CMK gerenciada pelo cliente, será usada a chave gerenciada pela AWS paraAmazon Redshift em sua conta.

Contexto de criptografiaCada serviço que é integrado ao AWS KMS especifica um contexto de criptografia ao solicitar chavesde dados, criptografia e descriptografia. O contexto de criptografia significa informações adicionais

203

Page 211: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAmazon Relational Database Service (Amazon RDS)

autenticadas que o AWS KMS usa para verificar a integridade dos dados. Ou seja, quando um contextode criptografia é especificado para uma operação de criptografia, o serviço deve especificar essemesmo contexto para a operação de descriptografia, caso contrário, a descriptografia não terá êxito.O Amazon Redshift usa o ID do cluster e a hora de criação para o contexto de criptografia. No camporequestParameters de um arquivo de log do CloudTrail, o contexto de criptografia será semelhante aeste:

"encryptionContext": { "aws:redshift:arn": "arn:aws:redshift:region:account_ID:cluster:cluster_name", "aws:redshift:createtime": "20150206T1832Z"},

Você pode pesquisar o nome do cluster nos logs do CloudTrail para saber quais operações foramexecutadas usando uma chave mestra de cliente (CMK). As operações incluem a criptografia edescriptografia do cluster e a geração de chaves de dados.

Para obter mais informações, consulte Contexto de criptografia (p. 305).

Como o Amazon Relational Database Service(Amazon RDS) usa o AWS KMS

Use o Amazon Relational Database Service (Amazon RDS) para configurar, operar e dimensionar umbanco de dados relacional na nuvem. Como opção, você pode criptografar os dados armazenados em suainstância de banco de dados do Amazon RDS sob uma chave mestra de cliente (CMK) no AWS KMS. Parasaber como criptografar seus recursos do Amazon RDS sob uma CMK do KMS, consulte Criptografia derecursos do Amazon RDS no Guia do usuário da Amazon RDS.

O Amazon RDS baseia-se na criptografia do Amazon Elastic Block Store (Amazon EBS) para fornecercriptografia total de disco para volumes de banco de dados. Para obter mais informações sobre como oAmazon EBS usa o AWS KMS para criptografar volumes, consulte Como o Amazon Elastic Block Store(Amazon EBS) usa o AWS KMS (p. 192).

Quando você cria uma instância de banco de dados criptografada com o Amazon RDS, o AmazonRDS cria um volume do EBS criptografado em seu nome para armazenar o banco de dados. Os dadosarmazenados em repouso no volume, os snapshots de banco de dados, os backups automatizados e asréplicas de leitura são criptografados sob a CMK do KMS que você especificou quando criou a instância debanco de dados.

Contexto de criptografia do Amazon RDSQuando o Amazon RDS usa a CMK do KMS, ou quando o Amazon EBS a utiliza em nome do AmazonRDS, o serviço especifica um contexto de criptografia (p. 305). O contexto de criptografia sãoinformações adicionais autenticadas que o AWS KMS usa para garantir a integridade dos dados. Ou seja,quando um contexto de criptografia é especificado para uma operação de criptografia, o serviço deveespecificar esse mesmo contexto para a operação de descriptografia, caso contrário, a descriptografianão terá êxito. O contexto de criptografia é também gravado nos logs do AWS CloudTrail para ajudá-loa compreender por que uma determinada CMK foi usada. Os logs do CloudTrail podem conter muitasentradas que descrevem o uso de uma CMK, mas o contexto de criptografia em cada entrada de log podeajudá-lo a determinar o motivo desse uso específico.

No mínimo, o Amazon RDS sempre usa o ID da instância de banco de dados para o contexto decriptografia, como no seguinte exemplo em formato JSON:

{ "aws:rds:db-id": "db-CQYSMDPBRZ7BPMH7Y3RTDG5QY" }

204

Page 212: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAWS Secrets Manager

Esse contexto de criptografia pode ajudar a identificar a instância de banco de dados para a qual a CMK foiusada.

Quando sua CMK é usada em uma determinada instância de banco de dados e um volume do EBSespecífico, o ID da instância de banco de dados e o ID do volume do EBS são usados no contexto decriptografia, como no seguinte exemplo em formato JSON:

{ "aws:rds:db-id": "db-BRG7VYS3SVIFQW7234EJQOM5RQ", "aws:ebs:id": "vol-ad8c6542"}

Como o AWS Secrets Manager usa o AWS KMSAWS Secrets Manager é um serviço da AWS que criptografa e armazena seus segredos e, de formatransparente, descriptografa e os devolve para você em texto simples. Ele é projetado especialmente paraarmazenar segredos de aplicativo, como credenciais de login, que mudam periodicamente e não devemser codificados ou armazenados em texto simples no aplicativo. Em vez de credenciais codificadas oupesquisas de tabela, o aplicativo chama o Secrets Manager.

O Secrets Manager também suporta recursos que periodicamente giram os segredos associados aosbancos de dados usados com mais frequência. Ele sempre criptografa os segredos que acabaram de seralternados antes de serem armazenados.

O Secrets Manager se integra ao AWS Key Management Service (AWS KMS) para criptografar todasas versões de cada segredo com uma chave de criptografia de dados (p. 4) exclusiva protegida por umachave mestra de cliente do AWS KMS (p. 2) (CMK). Essa integração protege seus segredos em chavesde criptografia que nunca saem do AWS KMS sem estarem criptografadas. Ele também permite que vocêdefina permissões personalizadas na chave mestra e audite as operações que geram, criptografam edescriptografam as chaves de dados que protegem seus segredos.

Tópicos• Proteção do valor do segredo (p. 205)• Criptografia e descriptografia de segredos (p. 206)• Usar a CMK do AWS KMS (p. 207)• Autorização do uso da CMK (p. 208)• Contexto de criptografia do Secrets Manager (p. 210)• Monitorar interação do Secrets Manager com o AWS KMS (p. 211)

Proteção do valor do segredoPara proteger um segredo, o Secrets Manager criptografa o valor do segredo em um segredo.

No Secrets Manager, um segredo consiste em um valor do seguro, também conhecido como texto secretoprotegido ou dados secretos criptografados e informações sobre a versão e os metadados relacionados.O valor do segredo pode ser qualquer string ou dados binários de até 4.096 bytes, mas geralmente é umacoleção de pares de nome e valor que compõem as informações de login de um servidor ou banco dedados.

O Secrets Manager sempre criptografa todo o valor do segredo antes de armazenar o segredo. Eledescriptografa o valor do segredo de forma transparente sempre que você obtém ou altera o valor. Nãohá opção para ativar ou desativar a criptografia. Para criptografar e descriptografar o valor do segredo, oSecrets Manager usa o AWS KMS.

205

Page 213: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCriptografia e descriptografia de segredos

Criptografia e descriptografia de segredosPara proteger os segredos, o Secrets Manager usa criptografia de envelope (p. 5) com AWS KMSchavesmestras de cliente (CMKs) do ??? (p. 2) e chaves de dados (p. 4).

O Secrets Manager usa uma chave de dados exclusiva para proteger cada valor do segredo. Sempreque o valor do segredo em um segredo muda, o Secrets Manager gera uma nova chave de dados paraprotegê-lo. A chave de dados é criptografada sob uma CMK do AWS KMS e armazenada nos metadadosdo segredo, conforme mostrado na imagem a seguir. Para descriptografar o segredo, o Secrets Managerdeve primeiro descriptografar a chave de dados criptografada usando a CMK no AWS KMS.

Uma CMK do AWS KMS para cada segredoCada segredo é associado a uma chave mestra do cliente (CMK) AWS gerenciada pelo cliente oupela (p. 2). CMKs gerenciadas pelo cliente permitem que usuários autorizados controlem o acesso (p. 32)à CMK por meio de políticas e concessões, gerenciem a alternância automática (p. 95) e usem o materialde chaves importadas (p. 101).

Ao criar um novo segredo, você pode especificar qualquer CMK gerenciada pelo cliente na conta e naregião ou a CMK gerenciada pela AWS para Secrets Manager, aws/secretsmanager. Se você nãoespecificar uma CMK ou selecionar o valor padrão do console, DefaultEncryptionKey, o Secrets Managercriará a CMK aws/secretsmanager, se ela não existir, e a associará ao segredo. Você pode usar amesma CMK ou CMKs diferentes para cada segredo na sua conta.

É possível alterar a CMK de um segredo a qualquer momento, seja no console do Secrets Managerou usando a operação UpdateSecret. Quando você altera a CMK, o Secrets Manager não criptografanovamente o valor do segredo existente na nova CMK. No entanto, na próxima vez que o valor do segredomudar, o Secrets Manager o criptografará com a nova CMK.

Para encontrar a CMK associada a um segredo, use a operação ListSecrets ou DescribeSecret. Quando osegredo é associado à CMK gerenciada pela AWS para Secrets Manager (aws/secretsmanager), essasoperações não geram um identificador de CMK.

O Secrets Manager não usa a CMK para criptografar o valor do segredo diretamente. Em vez disso,ele usa a CMK para gerar e criptografar uma chave de dados exclusiva e usa a chave de dados paracriptografar o valor do segredo.

206

Page 214: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorUsar a CMK do AWS KMS

Uma chave de dados exclusiva para cada valor do segredoToda vez que você cria ou altera o valor do segredo em um segredo, o Secrets Manager usa a CMKassociada ao segredo para gerar e criptografar uma chave de dados (p. 4) simétrica AES (AdvancedEncryption Standard) de 256 bits exclusiva. O Secrets Manager usa a chave de dados de texto simplespara criptografar o valor do segredo fora do AWS KMS e, em seguida, a remove da memória. Elearmazena a cópia criptografada da chave de dados nos metadados do segredo.

O valor do segredo é, em última análise, protegido pela CMK, que nunca sai do AWS KMS sem estarcriptografada. Antes de descriptografar o segredo, o Secrets Manager deve solicitar ao AWS KMS quedescriptografe a chave de dados criptografada.

Como criptografar um valor do segredoPara criptografar o valor do segredo em um segredo, o Secrets Manager usa o processo descrito a seguir.

1. O Secrets Manager chama a operação AWS KMS GenerateDataKey com o ID da CMK do segredo euma solicitação para uma chave simétrica AES de 256 bits. O AWS KMS gera uma chave de dados detexto simples e uma cópia dessa chave de dados criptografada sob a CMK.

2. O Secrets Manager usa a chave de dados de texto simples e o algoritmo AES (Advanced EncryptionStandard) para criptografar o valor do segredo fora do AWS KMS. Ele remove a chave de texto simplesda memória o mais rápido possível após o uso.

3. O Secrets Manager armazena a chave de dados criptografada nos metadados do segredo para quefique disponível para descriptografar o valor do segredo. No entanto, nenhuma das APIs do SecretsManager gera o segredo criptografado ou a chave de dados criptografada.

Como descriptografar um valor do segredoPara descriptografar um valor do segredo criptografado, o Secrets Manager deve primeiro descriptografara chave de dados criptografada. Como a chave de dados é criptografada sob a CMK do segredo no AWSKMS, o Secrets Manager deve fazer uma solicitação para o AWS KMS.

Para descriptografar um valor do segredo criptografado:

1. O Secrets Manager chama a operação AWS KMS Decrypt e passa a chave de dados criptografada.2. O AWS KMS usa a CMK do segredo para descriptografar a chave de dados. Ele gera a chave de dados

de texto simples.3. O Secrets Manager usa a chave de dados de texto simples para descriptografar o valor do segredo.

Então, ele remove a chave de dados da memória o mais rápido possível.

Usar a CMK do AWS KMSO Secrets Manager usa a chave mestra de cliente (p. 2) (CMK) que está associada a um segredo paragerar uma chave de dados para cada valor do segredo. Ele também usa a CMK para descriptografar achave de dados quando precisa descriptografar o valor do segredo criptografado. Você pode acompanharas solicitações e as respostas em eventos do AWS CloudTrail, Amazon CloudWatch Logs (p. 211) etrilhas de auditoria.

As seguintes operações do Secrets Manager acionam uma solicitação para usar sua CMK do AWS KMS.

GenerateDataKey

O Secrets Manager chama a operação AWS KMS GenerateDataKey em resposta às seguintesoperações do Secrets Manager.

207

Page 215: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAutorização do uso da CMK

• CreateSecret – Se o novo segredo incluir um valor do segredo, o Secrets Manager solicitará umanova chave de dados para criptografá-lo.

• PutSecretValue– O Secrets Manager solicita uma nova chave de dados para criptografar o valor dosegredo especificado.

• UpdateSecret – Se a atualização mudar o valor do segredo, o Secrets Manager solicitará uma novachave de dados para criptografar o novo valor.

Note

A operação RotateSecret não chama GenerateDataKey, pois não altera o valor dosegredo. No entanto, se a função do Lambda que invoca RotateSecret mudar o valordo segredo, sua chamada para a operação PutSecretValue acionará uma solicitaçãoGenerateDataKey.

Decrypt

Para descriptografar um valor do segredo criptografado, o Secrets Manager chama a operação AWSKMS Decrypt para descriptografar a chave de dados criptografada no segredo. Em seguida, ele usa achave de dados de texto simples para descriptografar o valor do segredo criptografado.

O Secrets Manager chama a operação Decrypt em resposta às seguintes operações do SecretsManager.• GetSecretValue – O Secrets Manager descriptografa o valor do segredo antes de retorná-lo para o

chamador.• PutSecretValue e UpdateSecret – A maioria das solicitações PutSecretValue e UpdateSecret

não aciona uma operação Decrypt. No entanto, quando uma solicitação PutSecretValue ouUpdateSecret tenta alterar o valor do segredo em uma versão existente de um segredo, o SecretsManager descriptografa o valor do segredo existente e o compara com o valor do segredo nasolicitação para confirmar se são iguais. Essa ação garante que as operações do Secrets Managersejam idempotentes.

 Como validar o acesso à CMK

Ao estabelecer ou alterar a CMK associada ao segredo, o Secrets Manager chamará as operaçõesGenerateDataKey e Decrypt com a CMK especificada. Essas chamadas confirmam que ochamador tem permissão para usar a CMK para essas operação. O Secrets Manager descarta osresultados dessas operações; ele não as usa em nenhuma operação criptográfica.

Você pode identificar essas chamadas de validação, pois o valor da chave SecretVersionId comcontexto de criptografia (p. 210) nessas solicitações é RequestToValidateKeyAccess.

Note

No passado, as chamadas de validação do Secrets Manager não incluíam um contexto decriptografia. Você pode encontrar chamadas sem contexto de criptografia em logs do AWSCloudTrail mais antigos.

Autorização do uso da CMKQuando o Secrets Manager usa uma chave mestra de cliente (p. 2) (CMK) em operações de criptografia,ele atua em nome do usuário que está criando ou alterando o valor do segredo.

Para usar a chave mestra de cliente (CMK) do AWS KMS para um segredo em seu nome, o usuário deveter as seguintes permissões. Você pode especificar essas permissões necessárias em uma política do IAMou uma política de chaves.

• kms:GenerateDataKey• kms:Decrypt

208

Page 216: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAutorização do uso da CMK

Para permitir que a CMK seja usada apenas para solicitações que são originárias doSecrets Manager, você pode usar a chave de condição kms:ViaService (p. 81) com o valorsecretsmanager.<region>.amazonaws.com.

Você também pode usar as chaves ou valores no contexto de criptografia (p. 210) como uma condiçãopara usar a CMK para operações de criptografia. Por exemplo, você pode usar um operador de condiçãode string em um documento do IAM ou de uma política de chaves, ou usar uma restrição de concessão emuma concessão.

Política de chaves da chave mestra de cliente da AWSA política de chaves da CMK gerenciada pela AWS para Secrets Manager oferece aos usuários permissãopara usar a CMK para operações especificadas somente quando o Secrets Manager faz a solicitação emnome do usuário. A política de chaves não permite que nenhum usuário use a CMK diretamente.

Essa política de chaves, como as políticas de todas as chaves gerenciadas pela AWS (p. 2), éestabelecida pelo serviço. Você não pode alterá-la, mas pode visualizá-la a qualquer momento. Para obtera política de chaves da CMK do Secrets Manager em sua conta, use a operação GetKeyPolicy.

As declarações de política na política de chaves têm os seguintes efeitos:

• Permitir que os usuários na conta usem a CMK para operações de criptografia somente quando asolicitação provém do Secrets Manager em seu nome. A chave de condição kms:ViaService impõeessa restrição.

• Permite que a conta da AWS crie políticas do IAM que permitem que os usuários visualizem aspropriedades da CMK e revoguem concessões.

• Embora o Secrets Manager não use concessões para obter acesso à CMK, a política também permiteque o Secrets Manager crie concessões (p. 84) para a CMK em nome do usuário e que a conta revogueconcessões que permitem que o Secrets Manager use a CMK. Esses são elementos padrão dodocumento de políticas de uma CMK gerenciada pela AWS.

Veja a seguir uma política de chaves de um exemplo de CMK gerenciada pela AWS para SecretsManager.

{ "Version" : "2012-10-17", "Id" : "auto-secretsmanager-1", "Statement" : [ { "Sid" : "Allow access through AWS Secrets Manager for all principals in the account that are authorized to use AWS Secrets Manager", "Effect" : "Allow", "Principal" : { "AWS" : "*" }, "Action" : [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:CreateGrant", "kms:DescribeKey" ], "Resource" : "*", "Condition" : { "StringEquals" : { "kms:ViaService" : "secretsmanager.us-west-2.amazonaws.com", "kms:CallerAccount" : "111122223333" } } },{ "Sid" : "Allow direct access to key metadata to the account", "Effect" : "Allow", "Principal" : {

209

Page 217: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorContexto de criptografia do Secrets Manager

"AWS" : "arn:aws:iam::111122223333:root" }, "Action" : [ "kms:Describe*", "kms:Get*", "kms:List*", "kms:RevokeGrant" ], "Resource" : "*" } ]}

Contexto de criptografia do Secrets ManagerUm contexto de criptografia (p. 6) é um conjunto de pares de chave-valor que contêm dados arbitráriosnão secretos. Quando você inclui um contexto de criptografia em uma solicitação para criptografar dados,o AWS KMS vincula de forma criptográfica o contexto de criptografia aos dados criptografados. Paradescriptografar os dados, você deve passar o mesmo contexto de criptografia.

Nas solicitações GenerateDataKey e Decrypt para o AWS KMS, o Secrets Manager usa um contexto decriptografia com dois pares de nome–valor que identificam o segredo e sua versão, como mostrado noexemplo a seguir. Os nomes não variam, mas os valores de contexto de criptografia combinados serãodiferentes para cada valor de segredo.

"encryptionContext": { "SecretARN": "arn:aws:secretsmanager:us-west-2:111122223333:secret:test-secret-a1b2c3", "SecretVersionId": "EXAMPLE1-90ab-cdef-fedc-ba987SECRET1"}

Você pode usar o contexto de criptografia para identificar essas operações de criptografia em logs eregistros de auditoria, como AWS CloudTrail e Amazon CloudWatch Logs, e como uma condição para aautorização em políticas e concessões.

O contexto de criptografia do Secrets Manager consiste em dois pares de nome e valor.

• SecretARN – O par de nome–valor identifica o segredo. A chave é SecretARN. O valor é o nome derecurso da Amazon (ARN) do segredo.

"SecretARN": "ARN of an Secrets Manager secret"

Por exemplo, se o ARN do segredo fosse arn:aws:secretsmanager:us-west-2:111122223333:secret:test-secret-a1b2c3, o contexto de criptografia incluiria oseguinte par.

"SecretARN": "arn:aws:secretsmanager:us-west-2:111122223333:secret:test-secret-a1b2c3"

• SecretVersionId – O segundo par de nome–valor identifica a versão do segredo. A chave éSecretVersionId. O valor é o ID da versão.

"SecretVersionId": "<version-id>"

Por exemplo, se o ID de versão do segredo fosse EXAMPLE1-90ab-cdef-fedc-ba987SECRET1, ocontexto de criptografia incluiria o seguinte par.

"SecretVersionId": "EXAMPLE1-90ab-cdef-fedc-ba987SECRET1"

Ao estabelecer ou alterar a CMK de um segredo, o Secrets Manager envia solicitações GenerateDataKeye Decrypt para o AWS KMS para confirmar que o chamador tem permissão para usar a CMK para essasoperações. Ele descarta as respostas; não as usa no valor do segredo.

210

Page 218: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorMonitorar interação do Secrets Manager com o AWS KMS

Nessas solicitações de validação, o valor do SecretARN é o ARN real do segredo, mas o valorSecretVersionId é RequestToValidateKeyAccess, como mostrado no seguinte exemplo decontexto de criptografia. Esse valor especial ajuda você a identificar solicitações de validação em logs etrilhas de auditoria.

"encryptionContext": { "SecretARN": "arn:aws:secretsmanager:us-west-2:111122223333:secret:test-secret-a1b2c3", "SecretVersionId": "RequestToValidateKeyAccess"}

Note

No passado, as solicitações de validação do Secrets Manager não incluíam um contexto decriptografia. Você pode encontrar chamadas sem contexto de criptografia em logs do AWSCloudTrail mais antigos.

Monitorar interação do Secrets Manager com o AWSKMSVocê pode usar o AWS CloudTrail e o Amazon CloudWatch Logs para rastrear as solicitações que oSecrets Manager envia para o AWS KMS em seu nome.

GenerateDataKey

Quando você cria ou altere (p. 207) o valor de um segredo, o Secrets Manager envia uma solicitaçãoGenerateDataKey para o AWS KMS that que especifica a CMK do segredo.

O evento que registra a operação GenerateDataKey é semelhante ao evento de exemplo a seguir. Asolicitação foi invocada por secretsmanager.amazonaws.com. Os parâmetros incluem o nome derecurso da Amazon (ARN) da CMK do segredo, um especificador de chaves que requer uma chave de256 bits e o contexto de criptografia (p. 210) que identifica o segredo e a versão.

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AROAIGDTESTANDEXAMPLE:user01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/user01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-05-31T23:23:41Z" } }, "invokedBy": "secretsmanager.amazonaws.com" }, "eventTime": "2018-05-31T23:23:41Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-west-2", "sourceIPAddress": "secretsmanager.amazonaws.com", "userAgent": "secretsmanager.amazonaws.com", "requestParameters": { "keyId": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "keySpec": "AES_256", "encryptionContext": {

211

Page 219: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorMonitorar interação do Secrets Manager com o AWS KMS

"SecretARN": "arn:aws:secretsmanager:us-west-2:111122223333:secret:test-secret-a1b2c3", "SecretVersionId": "EXAMPLE1-90ab-cdef-fedc-ba987SECRET1" } }, "responseElements": null, "requestID": "a7d4dd6f-6529-11e8-9881-67744a270888", "eventID": "af7476b6-62d7-42c2-bc02-5ce86c21ed36", "readOnly": true, "resources": [ { "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333", "type": "AWS::KMS::Key" } ], "eventType": "AwsApiCall", "recipientAccountId": "111122223333"}

Decrypt

Sempre que você obtém ou altera (p. 207) o valor de um segredo, o Secrets Manager envia umasolicitação Decrypt para o AWS KMS para descriptografar a chave de dados criptografada.

O evento que registra a operação Decrypt é semelhante ao evento de exemplo a seguir. O usuárioé o principal em sua conta da AWS que está acessando a tabela. Os parâmetros incluem a chave detabela criptografada (como um texto cifrado blob) e o contexto de criptografia (p. 210) que identificaa tabela e a conta da AWS. O AWS KMS deriva o ID da CMK do texto cifrado.

{ "eventVersion": "1.05", "userIdentity": { "type": "IAMUser", "principalId": "AROAIGDTESTANDEXAMPLE:user01", "arn": "arn:aws:sts::111122223333:assumed-role/Admin/user01", "accountId": "111122223333", "accessKeyId": "AKIAIOSFODNN7EXAMPLE", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2018-05-31T23:36:09Z" } }, "invokedBy": "secretsmanager.amazonaws.com" }, "eventTime": "2018-05-31T23:36:09Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-west-2", "sourceIPAddress": "secretsmanager.amazonaws.com", "userAgent": "secretsmanager.amazonaws.com", "requestParameters": { "encryptionContext": { "SecretARN": "arn:aws:secretsmanager:us-west-2:111122223333:secret:test-secret-a1b2c3", "SecretVersionId": "EXAMPLE1-90ab-cdef-fedc-ba987SECRET1" } }, "responseElements": null, "requestID": "658c6a08-652b-11e8-a6d4-ffee2046048a", "eventID": "f333ec5c-7fc1-46b1-b985-cbda13719611", "readOnly": true,

212

Page 220: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAmazon Simple Email Service (Amazon SES)

"resources": [ { "ARN": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "accountId": "111122223333", "type": "AWS::KMS::Key" } ], "eventType": "AwsApiCall", "recipientAccountId": "111122223333"}

Como o Amazon Simple Email Service (AmazonSES) usa o AWS KMS

Você pode usar o Amazon Simple Email Service (Amazon SES) para receber e-mail, e (opcionalmente)para criptografar as mensagens de e-email recebidas antes de armazená-las em um bucket do AmazonSimple Storage Service (Amazon S3) de sua escolha. Ao configurar o Amazon SES para criptografar asmensagens de e-mail, você deve escolher a chave mestra de cliente (CMK) do KMS sob a qual o AmazonSES criptografa as mensagens. Você pode escolher a CMK padrão em sua conta para o Amazon SEScom o alias aws/ses ou pode escolher uma CMK personalizada que criou separadamente no AWS KMS.

Para obter mais informações sobre o recebimento de e-mail usando o Amazon SES, visite Recebimento dee-mail com o Amazon SES no Guia do desenvolvedor do Amazon Simple Email Service.

Tópicos• Visão geral da criptografia do Amazon SES usando o AWS KMS (p. 213)• Contexto de criptografia do Amazon SES (p. 214)• Concessão de permissão do Amazon SES para usar sua chave mestra de cliente (CMK) do AWS

KMS (p. 214)• Como recuperar e descriptografar mensagens de e-mail (p. 215)

Visão geral da criptografia do Amazon SES usando oAWS KMSQuando você configura o Amazon SES para receber e-mail e criptografar as mensagens de e-mail antesde salvá-las em seu bucket do S3, o processo funciona da seguinte forma:

1. Você cria uma regra de recebimento para o Amazon SES, especificando a ação do S3, um bucket doS3 para storage e uma chave mestra de cliente (CMK) do KMS para criptografia.

2. O Amazon SES recebe uma mensagem de e-mail que corresponde à regra de recebimento.3. O Amazon SES solicita uma chave de dados exclusiva criptografada com a CMK do KMS que você

especificou na regra de recebimento aplicável.4. O AWS KMS cria uma nova chave de dados, criptografa-a com a CMK especificada e, em seguida,

envia as cópias criptografada e de texto não criptografado da chave de dados ao Amazon SES.5. O Amazon SES usa a chave de dados de texto não criptografado para criptografar a mensagem de

e-mail e, em seguida, remove a chave de dados de texto não criptografado da memória, assim quepossível, após o uso.

6. O Amazon SES coloca a mensagem de e-mail criptografada e a chave de dados criptografada nobucket do S3 especificado. A chave de dados criptografada é armazenada como metadados com amensagem de e-email criptografada.

213

Page 221: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorContexto de criptografia do Amazon SES

Para realizar Step 3 (p. 213) por meio de Step 6 (p. 213), o Amazon SES usa o cliente de criptografiaAWSfornecido por –Amazon S3. Use o mesmo cliente para recuperar suas mensagens de e-mailcriptografadas do Amazon S3 e descriptografe-as. Para obter mais informações, consulte Como recuperare descriptografar mensagens de e-mail (p. 215).

Contexto de criptografia do Amazon SESQuando o Amazon SES solicita uma chave de dados para criptografar suas mensagens de e-mail recebidas (Step 3 (p. 213) no Visão geral da criptografia do Amazon SES usando o AWSKMS (p. 213)), ele inclui um contexto de criptografia na solicitação. O contexto de criptografia forneceinformações adicionais autenticadas que o AWS KMS usa para garantir a integridade dos dados. Ocontexto de criptografia também é gravado nos arquivos de log do AWS CloudTrail, que podem ajudá-lo a entender por que uma determinada chave mestra de cliente (CMK) foi usada. O Amazon SES usa oseguinte para o contexto de criptografia.

• O ID da conta da AWS na qual você configurou o Amazon SES para receber mensagens de e-mail• O nome da regra do Amazon SES que invocou a ação do S3 na mensagem de e-mail• O ID da mensagem de e-mail do Amazon SES

O exemplo a seguir mostra uma representação JSON do contexto de criptografia que o Amazon SES usa:

{ "aws:ses:source-account": "111122223333", "aws:ses:rule-name": "example-receipt-rule-name", "aws:ses:message-id": "d6iitobk75ur44p8kdnnp7g2n800"}

Para obter mais informações sobre contexto de criptografia, vá para Contexto de criptografia (p. 305).

Concessão de permissão do Amazon SES para usarsua chave mestra de cliente (CMK) do AWS KMSVocê pode usar a chave mestra de cliente (CMK) padrão em sua conta para o Amazon SES com o aliasaws/ses ou usar uma CMK personalizada que você cria. Se você usar a CMK padrão para o Amazon SES,não será necessário executar nenhuma etapa para conceder permissão ao Amazon SES para usá-la. Noentanto, para especificar uma CMK personalizada quando você adicionar a ação do S3 à sua regra derecebimento do Amazon SES, é necessário garantir que o Amazon SES tenha permissão para usar a CMKpara criptografar suas mensagens de e-mail. Para conceder permissão ao Amazon SES para usar suaCMK personalizada, adicione a declaração a seguir à sua política de chaves (p. 36) do CMK:

{ "Sid": "Allow SES to encrypt messages using this master key", "Effect": "Allow", "Principal": {"Service": "ses.amazonaws.com"}, "Action": [ "kms:Encrypt", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "Null": { "kms:EncryptionContext:aws:ses:rule-name": false, "kms:EncryptionContext:aws:ses:message-id": false }, "StringEquals": {"kms:EncryptionContext:aws:ses:source-account": "ACCOUNT-ID-WITHOUT-HYPHENS"} }

214

Page 222: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo recuperar e descriptografar mensagens de e-mail

}

Substitua ACCOUNT-ID-WITHOUT-HYPHENS pelo ID de 12 dígitos da conta da AWS na qual vocêconfigurou o Amazon SES para receber mensagens de e-mail. Esta declaração de política permite que oAmazon SES criptografe os dados com esta CMK somente sob estas condições:

• O Amazon SES deve especificar aws:ses:rule-name e aws:ses:message-id noEncryptionContext das solicitações de API do AWS KMS.

• O Amazon SES deve especificar aws:ses:source-account no EncryptionContext dassolicitações de API do AWS KMS, e o valor de aws:ses:source-account deve coincidir com o ID daconta da AWS especificada na política de chaves.

Para obter mais informações sobre o contexto de criptografia que o Amazon SES usa ao criptografar suasmensagens de e-mail, vá para Contexto de criptografia do Amazon SES (p. 214). Para obter informaçõesgerais sobre contexto de criptografia, vá para Contexto de criptografia (p. 305).

Como recuperar e descriptografar mensagens de e-mailO Amazon SES não tem permissão para descriptografar suas mensagens de e-mail criptografadas enão pode descriptografá-las para você. Você deve escrever o código para recuperar suas mensagensde e-mail do Amazon S3 e descriptografá-las. Para tornar isso mais fácil, use o cliente de criptografia doAmazon S3. Os SDKs da AWS a seguir incluem o cliente de criptografia do Amazon S3:

• AWS SDK for Java – Consulte AmazonS3EncryptionClient no AWS SDK for Java API Reference.• AWS SDK para Ruby – Consulte Aws::S3::Encryption::Client no AWS SDK para Ruby API Reference.• AWS SDK para .NET – Consulte AmazonS3EncryptionClient no AWS SDK para .NET API Reference.• AWS SDK para Go – Consulte s3crypto no Referência da API do AWS SDK para Go.

O cliente de criptografia do Amazon S3 simplifica o trabalho de construção das solicitações necessáriaspara o Amazon S3 recuperar a mensagem de e-mail criptografada e o AWS KMS descriptografar achave de dados criptografada da mensagem, e descriptografar a mensagem de e-mail. Por exemplo,para descriptografar com êxito a chave de dados criptografada, você deve passar o mesmo contexto decriptografia que o Amazon SES passou ao solicitar a chave de dados do AWS KMS (Step 3 (p. 213) noVisão geral da criptografia do Amazon SES usando o AWS KMS (p. 213)). O cliente de criptografia doAmazon S3 lida com isso, e muito mais das outras tarefas, para você.

Para o código de exemplo que usa o cliente de criptografia do Amazon S3 no AWS SDK for Java parafazer a descriptografia do lado do cliente, consulte o seguinte:

• Exemplo: Criptografia no lado do cliente (Opção 1: Usar uma chave mestra do cliente gerenciada peloAWS KMS (AWS SDK for Java)) no Guia do desenvolvedor do Amazon Simple Storage Service.

• Criptografia do Amazon S3 com o AWS Key Management Service no blog de desenvolvedores da AWS.

Como o Amazon Simple Storage Service (AmazonS3) usa o AWS KMS

Este tópico discute como proteger dados em repouso nos datacenters do Amazon S3 usando o AWSKMS. Há duas maneiras de usar o AWS KMS com o Amazon S3. Você pode usar a criptografia do lado doservidor para proteger seus dados com uma chave mestra ou usar uma chave mestra de cliente (CMK) doAWS KMS com o cliente de criptografia do Amazon S3 para proteger os dados no lado do cliente.

215

Page 223: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCriptografia do servidor: usando SSE-KMS

Tópicos• Criptografia do servidor: usando SSE-KMS (p. 216)• Uso do cliente de criptografia do Amazon S3 (p. 216)• Contexto de criptografia (p. 217)

Criptografia do servidor: usando SSE-KMSVocê pode proteger dados em repouso no Amazon S3 usando três modos diferentes de criptografia dolado do servidor: SSE-S3, SSE-C ou SSE-KMS.

• O SSE-S3 requer que o Amazon S3 gerencie as chaves mestras de criptografia e de dados. Para obtermais informações sobre SSE-S3, consulte Proteção de dados usando criptografia do servidor comchaves de criptografia gerenciadas por AWS.

• SSE-C requer que você gerencie a chave de criptografia. Para obter mais informações sobre SSE-C,consulte Proteção de dados usando criptografia do servidor com chaves de criptografia fornecidas pelocliente (SSE-C).

• O SSE-KMS requer que a AWS gerencie a chave de dados, mas que você gerencie a chave mestrano AWS KMS. O restante deste tópico discute como proteger dados usando a criptografia do lado doservidor com chaves gerenciadas pelo AWS KMS (SSE-KMS).

Você pode solicitar a criptografia e a chave mestra desejadas usando o console ou a API do Amazon S3.No console, marque a caixa apropriada para realizar a criptografia e selecione a chave na lista. Para a APIdo Amazon S3, especifique a criptografia e escolha a chave, definindo os cabeçalhos apropriados em umasolicitação GET ou PUT. Para obter mais informações, consulte Proteção de dados usando criptografia doservidor com chaves gerenciadas pelo KMS da AWS (SSE-KMS).

Você pode escolher uma CMK gerenciada pelo cliente específico ou aceitar a CMK gerenciada pela AWSpara Amazon S3 em sua conta. Se você optar por criptografar seus dados, o AWS KMS e o Amazon S3executarão as seguintes ações:

• O Amazon S3 solicita uma chave de dados de texto simples e uma cópia da chave criptografada usandoa CMK gerenciada pelo cliente especificada ou a CMK gerenciada pela AWS.

• O AWS KMS cria uma chave de dados, criptografa-a usando a chave mestra e envia a chave de dadosde texto não criptografado e a chave de dados criptografada ao Amazon S3.

• O Amazon S3 criptografa os dados usando a chave de dados e remove a chave de texto nãocriptografado da memória assim que possível, após o uso.

• O Amazon S3 armazena a chave de dados criptografada como metadados com os dados criptografados.

O Amazon S3 e o AWS KMS executam as seguintes ações quando você solicita a descriptografia dedados.

• O Amazon S3 envia a chave de dados criptografada ao AWS KMS.• O AWS KMS descriptografa a chave usando a chave mestra apropriada e envia a chave de texto não

criptografado de volta para o Amazon S3.• O Amazon S3 descriptografa o texto cifrado e remove a chave de dados de texto não criptografado da

memória assim que possível.

Uso do cliente de criptografia do Amazon S3Você pode usar o cliente de criptografia do Amazon S3 no SDK da AWS de seu próprio aplicativopara criptografar objetos e fazer upload deles no Amazon S3. Este método permite criptografar dados

216

Page 224: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorContexto de criptografia

localmente para garantir sua segurança, conforme passa para o serviço do Amazon S3. O serviço de S3recebe os dados criptografados e não atua na criptografia ou descriptografia deles.

O cliente de criptografia do Amazon S3 criptografa o objeto usando a criptografia de envelope. O clientechama AWS KMS como parte da chamada de criptografia que você faz ao passar os dados para o cliente.O AWS KMS verifica se você está autorizado a usar a chave mestra de cliente e, em caso afirmativo,retorna uma nova chave de dados de texto não criptografado e a chave de dados criptografada sob achave mestra de cliente. O cliente de criptografia criptografa os dados usando a chave de texto simplese, em seguida, exclui a chave da memória. A chave de dados criptografada é enviada para o Amazon S3para armazenamento junto com os dados criptografados.

Contexto de criptografiaCada serviço que é integrado ao AWS KMS especifica um contexto de criptografia ao solicitar chavesde dados, criptografia e descriptografia. O contexto de criptografia significa informações adicionaisautenticadas que o AWS KMS usa para verificar a integridade dos dados. Ou seja, quando um contextode criptografia é especificado para uma operação de criptografia, o serviço também o especifica para aoperação de descriptografia ou a descriptografia não terá êxito. Se você estiver usando o SSE-KMS ou ocliente de criptografia do Amazon S3 para executar a criptografia, o Amazon S3 usará o caminho do bucketcomo o contexto de criptografia. No campo requestParameters de um arquivo de log do CloudTrail, ocontexto de criptografia será semelhante a este:

"encryptionContext": { "aws:s3:arn": "arn:aws:s3:::bucket_name/file_name"},

Para obter mais informações, consulte Contexto de criptografia (p. 305).

Como o AWS Systems Manager Parameter Storeusa o AWS KMS

Com o AWS Systems Manager Parameter Store, você pode criar parâmetros Secure String, que sãoparâmetros com um nome de parâmetro em texto não criptografado e um valor de parâmetro criptografado.O Parameter Store usa o AWS KMS para criptografar e descriptografar os valores de parâmetros SecureString.

Com o Parameter Store você pode criar, armazenar e gerenciar dados como parâmetros com valores.Você pode criar um parâmetro no Parameter Store e usá-lo em vários aplicativos e serviços, de acordocom políticas e permissões que você define. Quando você precisa alterar um valor de parâmetro, vocêaltera uma instância, em vez de gerenciar uma alteração sujeita a erros em várias origens. O ParameterStore oferece suporte a uma estrutura hierárquica para nomes de parâmetros, de modo que você podequalificar um parâmetro para usos específicos.

Para gerenciar dados confidenciais, crie parâmetros Secure String. O Parameter Store usa chaves mestrasde cliente (CMKs) do AWS KMS para criptografar os valores de parâmetros Secure String quando vocêos cria ou altera. Ele também usa as CMKs para descriptografar os valores de parâmetro quando vocêos acessa. Você pode usar a CMK padrão que o Parameter Store cria para sua conta ou especificar suaprópria CMK gerenciada pelo cliente.

Tópicos• Criptografar e descriptografar parâmetros Secure String (p. 218)• Definir permissões para criptografar e descriptografar valores de parâmetro (p. 219)• Contexto de criptografia do Parameter Store (p. 220)

217

Page 225: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCriptografar e descriptografar parâmetros Secure String

• Solução de problemas de CMKs no Parameter Store (p. 221)

Criptografar e descriptografar parâmetros SecureStringO Parameter Store não executa nenhuma operação de criptografia. Em vez disso, ele se baseia no AWSKMS para criptografar e descriptografar valores de parâmetros Secure String. Quando você cria ou alteraum valor de parâmetro Secure String, o Parameter Store chama a operação da API Encrypt do AWS KMS.Essa operação usa uma CMK do AWS KMS diretamente para criptografar o valor do parâmetro em vez deusar a CMK para gerar uma chave de dados (p. 4).

Você pode selecionar a CMK que o Parameter Store usa para criptografar o valor do parâmetro. Se vocênão especificar uma CMK, o Parameter Store usa a CMK padrão do aws/ssm que o Systems Managercria automaticamente em sua conta.

Para visualizar a CMK padrão do aws/ssm de sua conta, use a operação DescribeKey na API do AWSKMS. O exemplo a seguir usa o comando describe-key na AWS Command Line Interface (AWS CLI)com o nome de alias aws/ssm.

aws kms describe-key --key-id alias/aws/ssm

Para criar um parâmetro Secure String, use a operação PutParameter na API do Systems Manager. Incluaum parâmetro Type com um valor de SecureString. Para especificar uma CMK do AWS KMS use oparâmetro KeyId. O padrão é a CMK aws/ssm padrão para sua conta.

Em seguida, o Parameter Store chama a API Encrypt do AWS KMS com a CMK e o valor do parâmetroem texto não criptografado. O AWS KMS retorna o valor do parâmetro criptografado, que o ParameterStore armazena com o nome do parâmetro.

O exemplo a seguir usa o comando put-parameter do Systems Manager e seu parâmetro --type na AWSCLI para criar um parâmetro Secure String. Como o comando omite o parâmetro opcional --key-id, oParameter Store usa a CMK padrão do aws/ssm para criptografar o valor do parâmetro.

aws ssm put-parameter --name MyParameter --value "secret_value" --type SecureString

O exemplo semelhante a seguir usa o parâmetro --key-id para especificar uma CMK gerenciadapelo cliente. Este exemplo usa um ID de CMK para identificar a CMK, mas você pode usar qualqueridentificador válido de CMK.

aws ssm put-parameter --name param1 --value "secret" --type SecureString --key-id 1234abcd-12ab-34cd-56ef-1234567890ab

Quando você obtém um parâmetro Secure String do Parameter Store, seu valor está criptografado. Paraobter um parâmetro, use a operação GetParameter na API do Systems Manager.

O exemplo a seguir usa o comando get-parameter do Systems Manager na AWS CLI para obter oparâmetro MyParameter no Parameter Store sem descriptografar seu valor.

$ aws ssm get-parameter --name MyParameter

{ "Parameter": { "Type": "SecureString", "Name": "MyParameter", "Value": "AQECAHgnOkMROh5LaLXkA4j0+vYi6tmM17Lg/9E464VRo68cvwAAAG8wbQYJKoZIhvcNAQcGoGAwXgIBADBZBgkqhkiG9w0BBwEwHgYJYZZIAWUDBAEuMBEEDImYOw44gna0Jm00hAIBEIAsjgr7mum1EnnXzE3xM8bGle0oKYcfVCHtBkfjIeZGTgL6Hg0fSDnpMHdcSXY="

218

Page 226: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorDefinir permissões para criptografar edescriptografar valores de parâmetro

}}

Para descriptografar o valor de parâmetro antes de retorná-lo, defina o parâmetro WithDecryption deGetParameter como true. Quando você usa WithDecryption, o Parameter Store chama a operaçãoda API Decrypt do AWS KMS em seu nome para descriptografar o valor do parâmetro. Como resultado,a solicitação de GetParameter retorna o parâmetro com um valor de parâmetro em texto simples, comomostrado no exemplo a seguir.

$ aws ssm get-parameter --name MyParameter --with-decryption

{ "Parameter": { "Type": "SecureString", "Name": "MyParameter", "Value": "secret_value" }}

O fluxo de trabalho a seguir mostra como o Parameter Store usa uma CMK do AWS KMS.

Criptografar ao enviar parâmetro:

1. Quando você cria um parâmetro Secure String, o Parameter Store envia uma solicitação Encrypt aoAWS KMS que inclui o valor de parâmetro em texto não criptografado e a CMK que você escolheu.Durante a transmissão ao AWS KMS, o valor em texto não criptografado no parâmetro Secure String éprotegido pelo Transport Layer Security (TLS).

2. O AWS KMS criptografa o valor do parâmetro com a CMK especificada e retorna o texto cifrado aoParameter Store, que armazena o nome do parâmetro e seu valor criptografado.

Descriptografar ao obter parâmetro:

1. Quando você inclui o parâmetro WithDecryption em uma solicitação para obter um parâmetroSecure String, o Parameter Store envia uma solicitação Decrypt ao AWS KMS com o valor doparâmetro Secure String criptografado.

2. O AWS KMS usa a mesma CMK para descriptografar o valor criptografado. Ele retorna o valor doparâmetro em texto não criptografado (descriptografado) ao Parameter Store. Durante a transmissão, osdados em texto simples são protegidos por TLS.

3. O Parameter Store retorna o valor do parâmetro em texto não criptografado na resposta deGetParameter.

Definir permissões para criptografar e descriptografarvalores de parâmetroVocê pode usar políticas do IAM para permitir ou negar permissão para um usuário chamar as operaçõesPutParameter e GetParameter do Systems Manager.

Além disso, se estiver usando CMKs gerenciadas pelo cliente, você poderá usar políticas do IAM epolíticas de chaves para criptografar e descriptografar permissões. No entanto, você não pode estabelecerpolíticas de controle de acesso para a CMK aws/ssm padrão. Para obter informações detalhadas sobrecomo controlar o acesso a CMKs gerenciadas pelo cliente, consulte Autenticação e controle de acesso doAWS KMS (p. 32).

O exemplo a seguir mostra uma política do IAM que permite que o usuário chame a operaçãoGetParameter do Systems Manager em todos os parâmetros no caminho /ReadableParameters. A

219

Page 227: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorContexto de criptografia do Parameter Store

política também permite que o usuário chame a operação Decrypt do AWS KMS na CMK gerenciadapelo cliente especificada.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetParameter*" ], "Resource": "arn:aws:ssm:us-west-2:111122223333:parameter/ReadableParameters/*" }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" } ]}

Contexto de criptografia do Parameter StoreUm contexto de criptografia é um conjunto de pares de chave-valor que contêm dados arbitrários nãosecretos. Quando você inclui um contexto de criptografia em uma solicitação para criptografar dados,o AWS KMS vincula de forma criptográfica o contexto de criptografia aos dados criptografados. Paradescriptografar os dados, você deve passar o mesmo contexto de criptografia.

Você também pode usar o contexto de criptografia para identificar uma operação de criptografia emregistros de auditoria e logs. O contexto de criptografia aparece em texto simples em logs, como logs doAWS CloudTrail.

O Parameter Store usa o seguinte contexto de criptografia em suas operações de criptografia:

• Chave: PARAMETER_ARN• Valor: O nome de recurso da Amazon (ARN) do parâmetro que está sendo criptografado.

O formato do contexto de criptografia é o seguinte:

"PARAMETER_ARN":"arn:aws:ssm:<REGION_NAME>:<ACCOUNT_ID>:parameter/<parameter-name>"

Por exemplo, a Parameter Store inclui esse contexto de criptografia em chamadas para criptografar edescriptografar o parâmetro MyParameter em um exemplo de conta e região da AWS.

"PARAMETER_ARN":"arn:aws:ssm:us-west-2:111122223333:parameter/MyParameter"

Se o parâmetro estiver em um caminho hierárquico do Parameter Store, o caminho e o nome serãoincluídos no contexto de criptografia. Por exemplo, esse contexto de criptografia é usado ao criptografarou descriptografar o parâmetro MyParameter no caminho /ReadableParameters em um exemplo deconta e região da AWS.

"PARAMETER_ARN":"arn:aws:ssm:us-west-2:111122223333:parameter/ReadableParameters/MyParameter"

220

Page 228: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorSolução de problemas de CMKs no Parameter Store

Você pode descriptografar um valor de parâmetro Secure String criptografado chamando a operaçãoDecrypt do AWS KMS com o contexto de criptografia correto e o valor do parâmetro criptografado que aoperação do GetParameter do Systems Manager retorna. No entanto, recomendamos que você use aoperação GetParameter com o parâmetro WithDecryption para descriptografar valores do parâmetrodo Parameter Store.

Você também pode incluir o contexto de criptografia em uma política do IAM. Por exemplo, você podepermitir que um usuário descriptografe apenas determinado valor de parâmetro ou conjunto de valores deparâmetro.

O exemplo a seguir de declaração de política do IAM permite que o usuário obtenha o valor do parâmetroMyParameter e descriptografe o valor usando a CMK especificada. No entanto, as permissões sãoaplicáveis somente quando o contexto de criptografia corresponde à string especificada. Essas permissõesnão são aplicáveis a qualquer outro parâmetro ou CMK e a chamada para GetParameter falha se ocontexto de criptografia não corresponder à string.

Antes de usar uma declaração de política como essa, substitua o exemplo da conta da AWS, a região e onome do parâmetro com valores válidos.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:GetParameter*" ], "Resource": "arn:aws:ssm:us-west-2:111122223333:parameter/MyParameter", }, { "Effect": "Allow", "Action": [ "kms:Decrypt" ], "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab", "Condition": { "StringEquals": { "kms:EncryptionContext:PARAMETER_ARN":"arn:aws:ssm:us-west-2:111122223333:parameter/MyParameter" } } } ]}

Solução de problemas de CMKs no Parameter StorePara executar qualquer operação em um parâmetro Secure String, o Parameter Store deve ser capazde usar a CMK do AWS KMS que você especifica para a operação desejada. A maioria das falhas doParameter Store relacionadas a CMKs é causada pelos seguintes problemas:

• As credenciais que um aplicativo está usando não têm permissão para executar a ação especificada naCMK.

Para corrigir este erro, execute o aplicativo com credenciais diferentes ou revise a política da IAM ou dechaves que está impedindo a operação. Para obter ajuda com políticas do IAM e chaves do AWS KMS,consulte Autenticação e controle de acesso do AWS KMS (p. 32).

• A CMK não foi encontrada.

221

Page 229: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAmazon WorkMail

Isso geralmente acontece quando você usa um identificador incorreto para a CMK. Encontre osidentificadores corretos (p. 18) para a CMK e tente o comando novamente.

• A CMK não foi habilitada. Quando isso ocorre, o Parameter Store retorna uma exceção InvalidKeyId comuma mensagem de erro detalhada do AWS KMS. Se o estado da CMK for Disabled, habilite-o (p. 30).Se for Pending Import, conclua o procedimento de importação (p. 101). Se o estado da chave forPending Deletion, cancele a exclusão da chave (p. 121) ou use uma CMK diferente.

Para encontrar o estado de chave (p. 175) de uma CMK no console do AWS KMS, na página Customermanaged keys (Chaves gerenciadas pelo cliente) ou AWS managed keys (Chaves gerenciadas pelaAWS), consulte a Coluna status (p. 13). Para localizar o status de uma CMK usando a API do AWSKMS, use a operação DescribeKey.

Como o Amazon WorkMail usa o AWS KMSEste tópico discute como o Amazon WorkMail usa o AWS KMS para criptografar mensagens de e-mail.

Tópicos• Visão geral do Amazon WorkMail (p. 222)• Criptografia do Amazon WorkMail (p. 222)• Contexto de criptografia do Amazon WorkMail (p. 224)

Visão geral do Amazon WorkMailO Amazon WorkMail é um serviço de e-mail na nuvem que oferece uma maneira econômica para a suaorganização receber e enviar e-mails, e usar calendários. O Amazon WorkMail fornece suporte a clientesmóveis e de desktop e se integra ao seu diretório corporativo existente. Os usuários podem utilizar suascredenciais existentes para fazer login em seu e-mail usando o Microsoft Outlook, um dispositivo móvel ouum navegador.

Usando o console do Amazon WorkMail, você pode criar uma organização do Amazon WorkMail e,opcionalmente, atribuí-la a um ou mais domínios de e-email que você possui. Em seguida, você podecriar novos grupos de distribuição de e-mail e usuários de e-mail. Os usuários podem, então, enviar ereceber mensagens. As mensagens são criptografadas e armazenadas até que estejam prontas paraserem visualizadas.

Criptografia do Amazon WorkMailCada usuário final criado é associado a uma caixa de correio. O Amazon WorkMail cria um par dechaves assimétricas para cada caixa de correio e envia a parte da chave privada do par de chaves parao AWS KMS para ser criptografada sob uma chave mestra de cliente (CMK). A CMK pode ser umachave personalizada que você escolhe para a sua organização ou a CMK padrão do serviço do AmazonWorkMail. A chave privada criptografada e a chave pública não criptografada são, em seguida, salvas parauso posterior.

222

Page 230: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCriptografia do Amazon WorkMail

Cada mensagem recebida é criptografada usando uma chave simétrica gerada dinamicamente peloAmazon WorkMail. A chave simétrica é, em seguida, criptografada usando a chave pública associada coma caixa de correio do usuário. A chave simétrica criptografada, a mensagem criptografada e anexos sãoarmazenados.

Na criptografia assimétrica, os dados que são criptografados por meio da chave pública podem serdescriptografados apenas usando a chave privada correspondente. Como mencionado acima, no entanto,o Amazon WorkMail criptografa a chave privada usando uma CMK do AWS KMS. Para tornar a chaveprivada pronta para usar, ela deve, portanto, ser descriptografada usando a mesma CMK usada paracriptografá-la. Portanto, quando um usuário está pronto para recuperar mensagens de e-mail, o AmazonWorkMail envia a chave privada para o AWS KMS para descriptografia e usa a chave privada de textosimples retornada pelo AWS KMS para descriptografar a chave simétrica que foi usada para criptografar amensagem de e-mail. O Amazon WorkMail usa a chave simétrica para descriptografar a mensagem antesde apresentá-la para o usuário.

223

Page 231: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorContexto de criptografia do Amazon WorkMail

Contexto de criptografia do Amazon WorkMailCada serviço que é integrado ao AWS KMS especifica um contexto de criptografia ao solicitar chavesde dados, criptografia e descriptografia. O contexto de criptografia significa informações adicionaisautenticadas que o AWS KMS usa para verificar a integridade dos dados. Ou seja, quando um contextode criptografia é especificado para uma operação de criptografia, o serviço também o especifica paraa operação de descriptografia ou a descriptografia não terá êxito. O contexto de criptografia é gravadonos logs do CloudTrail ara ajudá-lo a compreender por que uma determinada chave do AWS KMSfoi usada. O Amazon WorkMail usa o ID da organização como contexto de criptografia. No camporequestParameters de um arquivo de log do CloudTrail, o contexto de criptografia será semelhante aeste:

"encryptionContext": { "aws:workmail:arn": "arn:aws:workmail:region:account ID:organization/organization ID"}

O ID da organização é um identificador exclusivo que o Amazon WorkMail gera quando uma organização écriada. Um cliente pode ter várias organizações em uma conta da AWS. O exemplo a seguir mostra o ARNde uma organização na região us-east-2.

arn:aws:workmail:us-east-2:111122223333:organization/m-68755160c4cb4e29a2b2f8fb58f359d7

Para obter mais informações sobre o contexto de criptografia, consulte Contexto de criptografia (p. 305).

Como o Amazon WorkSpaces usa o AWS KMSVocê pode usar o Amazon WorkSpaces para provisionar um desktop baseado em nuvem (um WorkSpace)para cada um de seus usuários finais. Ao ativar um novo WorkSpace, é possível criptografar seus volumese decidir qual chave mestra de cliente (CMK) do AWS KMS deve ser usada para a criptografia. Vocêpode escolher a CMK gerenciada pela AWS para o Amazon WorkSpaces (aws/workspaces) ou uma CMKgerenciada pelo cliente.

224

Page 232: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorVisão geral da criptografia do Amazon

WorkSpaces usando o AWS KMS

Para obter mais informações sobre a criação de WorkSpaces com volumes criptografados, acesseCriptografar um WorkSpace no Amazon WorkSpaces Administration Guide.

Tópicos• Visão geral da criptografia do Amazon WorkSpaces usando o AWS KMS (p. 225)• Contexto de criptografia do Amazon WorkSpaces (p. 226)• Conceder permissão ao Amazon WorkSpaces para usar uma CMK em seu nome (p. 226)

Visão geral da criptografia do Amazon WorkSpacesusando o AWS KMSQuando você cria WorkSpaces com volumes criptografados, o Amazon WorkSpaces usa o Amazon ElasticBlock Store (Amazon EBS) para criar e gerenciar esses volumes. Os dois serviços usam a chave mestrade cliente (CMK) do KMS para trabalhar com os volumes criptografados. Para obter mais informaçõessobre criptografia de volume do EBS, consulte a documentação a seguir:

• Como o Amazon Elastic Block Store (Amazon EBS) usa o AWS KMS (p. 192) neste guia• Criptografia do Amazon EBS no Guia do usuário do Amazon EC2 para instâncias do Windows

Quando você executa WorkSpaces com volumes criptografados, o processo completo funciona destaforma:

1. Você especifica a CMK a ser usada para criptografia, bem como o usuário e o diretório do WorkSpace.Essa ação cria uma concessão (p. 84) que permite ao Amazon WorkSpaces usar sua CMK apenaspara esse WorkSpace—ou seja, apenas para o WorkSpace associado com o usuário e o diretórioespecificados.

2. O Amazon WorkSpaces cria um volume do EBS criptografado para o WorkSpace e especifica a CMKa ser usada, bem como o usuário e o diretório do volume (as mesmas informações especificadasem Step 1 (p. 225)). Essa ação cria uma concessão (p. 84) que permite ao Amazon EBS usar suaCMK apenas para esse WorkSpace e volume—ou seja, apenas para o WorkSpace associado com ousuário e o diretório especificados, e apenas para o volume especificado.

3. O Amazon EBS solicita uma chave de dados do volume que é criptografada com sua CMK eespecifica o usuário e o ID de diretório Sid do WorkSpace, bem como o ID do volume como contextode criptografia.

4. O AWS KMS cria uma nova chave de dados, criptografa a mesma com sua CMK e, em seguida, enviaa chave de dados criptografada para o Amazon EBS.

5. O Amazon WorkSpaces usa o Amazon EBS para anexar o volume criptografado ao seu WorkSpace,no momento em que o Amazon EBS envia a chave de dados criptografada para o AWS KMS comuma solicitação Decrypt e especifica o Sid e o ID de diretório do WorkSpace, bem como o ID devolume como contexto de criptografia.

6. O AWS KMS usa sua CMK para descriptografar a chave de dados e, em seguida, envia a chave dedados de texto simples para o Amazon EBS.

7. O Amazon EBS usa a chave de dados de texto simples para criptografar todos os dados enviados erecebidos do volume criptografado. O Amazon EBS mantém a chave de dados de texto simples namemória enquanto o volume está conectado ao WorkSpace.

8. O Amazon EBS armazena a chave de dados criptografada (recebida no Step 4 (p. 225)) com osmetadados do volume para uso futuro, caso você reinicialize ou recrie o WorkSpace.

9. Ao usar o Console de gerenciamento da AWS para remover um WorkSpace (ou usar uma açãoTerminateWorkspaces na API do Amazon WorkSpaces), o Amazon WorkSpaces e o Amazon EBSaposentam as concessões que os permitiram usar sua CMK para esse WorkSpace.

225

Page 233: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorContexto de criptografia do Amazon WorkSpaces

Contexto de criptografia do Amazon WorkSpacesO Amazon WorkSpaces não usa sua chave mestra de cliente (CMK) diretamente para operaçõescriptográficas (como Encrypt, Decrypt, GenerateDataKey etc.). Isso significa que o AmazonWorkSpaces não envia solicitações para o AWS KMS que incluem contexto de criptografia. No entanto,quando o Amazon EBS solicita uma chave de dados criptografada para os volumes criptografados deseus WorkSpaces (Step 3 (p. 225) no Visão geral da criptografia do Amazon WorkSpaces usando oAWS KMS (p. 225)) e quando ele solicita uma cópia de texto simples dessa chave de dados (Step5 (p. 225)), ele inclui o contexto de criptografia na solicitação. O contexto de criptografia forneceinformações adicionais autenticadas que o AWS KMS usa para garantir a integridade dos dados. Ocontexto de criptografia também é gravado nos arquivos de log do AWS CloudTrail, que podem ajudá-lo a entender por que uma determinada chave mestra de cliente (CMK) foi usada. O Amazon EBS usa oseguinte para o contexto de criptografia.

• O sid do usuário do AWS Directory Service que é associado ao WorkSpace• O ID do diretório do AWS Directory Service que é associado ao WorkSpace• O ID do volume criptografado

O exemplo a seguir mostra uma representação JSON do contexto de criptografia que o Amazon EBS usa:

{ "aws:workspaces:sid-directoryid": "[S-1-5-21-277731876-1789304096-451871588-1107]@[d-1234abcd01]", "aws:ebs:id": "vol-1234abcd"}

Para obter mais informações sobre contexto de criptografia, consulte Contexto de criptografia (p. 305).

Conceder permissão ao Amazon WorkSpaces parausar uma CMK em seu nomeVocê pode proteger os dados do seu workspace na CMK gerenciada pela AWS para o AmazonWorkSpaces (aws/workspaces) ou em uma CMK gerenciada pelo cliente. Se você usa uma CMKgerenciada pelo cliente, você precisa conceder permissão ao Amazon WorkSpaces para usar a CMK emnome dos administradores do Amazon WorkSpaces em sua conta. A CMK gerenciada pela AWS para oAmazon WorkSpaces tem as permissões necessárias por padrão.

Para preparar para uso com o Amazon WorkSpaces a sua CMK gerenciada pelo cliente, use oprocedimento a seguir.

1. Adicione os administradores de WorkSpaces à lista de usuários de chave na política de chaves daCMK (p. 227)

2. Conceder aos administradores de WorkSpaces permissões adicionais com uma política doIAM (p. 227)

Os administradores de Amazon WorkSpaces também precisam de permissão para usar o AmazonWorkSpaces. Para obter mais informações sobre essas permissões, acesse Controlar acesso a recursosdo Amazon WorkSpaces no Amazon WorkSpaces Administration Guide.

226

Page 234: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorConceder permissão ao Amazon WorkSpaces

para usar uma CMK em seu nome

Parte 1: adicionar administradores de WorkSpaces aos usuáriosde chave da CMKPara conceder aos administradores do Amazon WorkSpaces as permissões que eles exigem, você podeusar o Console de gerenciamento da AWS ou a API do AWS KMS.

Tópicos• Para adicionar administradores de WorkSpaces como usuários de chave de uma CMK

(Console) (p. 227)• Para adicionar administradores de WorkSpaces como usuários de chave de uma CMK (KMS

API) (p. 227)

Para adicionar administradores de WorkSpaces como usuários de chave de umaCMK (Console)

1. Faça login no Console de gerenciamento da AWS e abra o console do AWS Key Management Service(AWS KMS) em https://console.aws.amazon.com/kms.

2. To change the AWS Region, use the Region selector in the upper-right corner of the page.3. In the navigation pane, choose Customer managed keys.4. Escolha o ID de chave ou alias da CMK gerenciada pelo cliente de sua preferência.5. Na seção Key policy (Política de chaves), em Key users (Usuários de chaves), escolha Add

(Adicionar).6. Na lista de usuários e funções do IAM, selecione os usuários e as funções que correspondem aos

seus administradores de WorkSpaces e, em seguida, escolha Anexar.

Para adicionar administradores de WorkSpaces como usuários de chave de umaCMK (KMS API)

1. Use a operação GetKeyPolicy para obter a política de chaves existente e salve o documento em umarquivo.

2. Abra o documento de política no editor de texto de sua preferência. Adicione os usuários e as funçõesdo IAM que correspondem aos seus administradores de WorkSpaces às declarações de política quedão permissão para usuários de chave (p. 41). Em seguida, salve o arquivo.

3. Use a operação PutKeyPolicy para aplicar a política de chaves à CMK.

Parte 2: conceder aos administradores de WorkSpacespermissões extrasSe você estiver usando uma CMK gerenciada pelo cliente para proteger seus dados do AmazonWorkSpaces, além das permissões na seção de usuários de chaves da política de chaves padrão (p. 37),os administradores de WorkSpaces precisam de permissão para criar concessões (p. 84) na CMK.Além disso, se eles usam o Console de gerenciamento da AWS para criar WorkSpaces com volumescriptografados, os administradores de WorkSpaces precisam de permissão para listar aliases e chaves.Para obter informações sobre a criação e a edição de políticas de usuário do IAM, acesse Trabalhar compolíticas gerenciadas e Trabalhar com políticas em linha no Guia do usuário do IAM.

Para conceder essas permissões aos administradores de WorkSpaces, use uma política do IAM.Adicione uma declaração de política semelhante ao exemplo a seguir à política do IAM paracada administrador de WorkSpaces. Substitua o ARN da CMK de exemplo (arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab) por um URL válido.

227

Page 235: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorConceder permissão ao Amazon WorkSpaces

para usar uma CMK em seu nome

Se os seus administradores de WorkSpaces usam apenas a API do Amazon WorkSpaces (não com oconsole), você pode omitir a segunda declaração de política com as permissões "kms:ListAliases" e"kms:ListKeys".

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "kms:CreateGrant", "Resource": "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" }, { "Effect": "Allow", "Action": [ "kms:ListAliases", "kms:ListKeys" ], "Resource": "*" } ]}

228

Page 236: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorFerramentas de monitoramento

Como monitorar chaves mestras decliente

O monitoramento é uma parte importante da compreensão da disponibilidade, estado e utilização desuas chaves mestras de cliente (CMKs) no AWS KMS e manutenção da confiabilidade, disponibilidadee performance de suas soluções da AWS. Coletar dados de monitoramento de todas as partes de suasolução da AWS irá ajudá-lo a depurar uma falha de vários pontos, caso ocorra. Porém, para começar amonitorar suas CMKs, é necessário criar um plano de monitoramento que inclua respostas às seguintesperguntas:

• Quais são seus objetivos de monitoramento?• Quais recursos você vai monitorar?• Com que frequência você vai monitorar esses recursos?• Quais ferramentas de monitoramento (p. 229) você usará?• Quem realizará o monitoramento das tarefas?• Quem deve ser notificado quando algo acontece?

A próxima etapa é monitorar suas CMKs ao longo do tempo para estabelecer uma linha de base para autilização normal do AWS KMS e as expectativas em seu ambiente. À medida que você monitora suasCMKs, armazene dados de monitoramento históricos para compará-los com os dados atuais, identificarpadrões normais e anomalias de desempenho e elaborar métodos para resolver problemas.

Por exemplo, você pode monitorar as atividades e eventos de API do AWS KMS que afetam suas CMKs.Quando os dados ficam acima ou abaixo das normas estabelecidas, pode ser necessário investigar ouexecutar a ação corretiva.

Para estabelecer uma linha de base para padrões normais, monitore os seguintes itens:

• A atividade da API do AWS KMS para as operações do plano de dados. Essas são operações decriptografia que usam uma CMK, como Decrypt, Encrypt, ReEncrypt e GenerateDataKey.

• A atividade da API do AWS KMS para operações do plano de controle que são importantes paravocê. Essas operações gerenciam uma CMK, e você talvez queira monitorar aquelas que alteram adisponibilidade de uma CMK (como ScheduleKeyDeletion, CancelKeyDeletion, DisableKey, EnableKey,ImportKeyMaterial e DeleteImportedKeyMaterial) ou modifiquem o controle de acesso de uma CMK(como PutKeyPolicy e RevokeGrant).

• Outras métricas do AWS KMS (como o tempo restante até que seu material de chavesimportadas (p. 101) expire) e eventos (como a expiração do material de chaves importadas, a exclusãoou a alternância de chaves de uma CMK).

Ferramentas de monitoramentoA AWS fornece várias ferramentas que você pode usar para monitorar suas CMKs. É possível configuraralgumas dessas ferramentas para fazer o monitoramento em seu lugar, e, ao mesmo tempo, algumasdas ferramentas exigem intervenção manual. Recomendamos que as tarefas de monitoramento sejamautomatizadas ao máximo possível.

Ferramentas de monitoramento automatizadasUse as seguintes ferramentas de monitoramento automatizadas para observar suas CMKs e gerarrelatórios quando algo tiver sido alterado:

229

Page 237: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorFerramentas manuais

• Alarmes do Amazon CloudWatch – observe uma única métrica ao longo de um período de tempoque você especificar e realize uma ou mais ações com base no valor da métrica em relação a umdeterminado limite ao longo de vários períodos. A ação é uma notificação enviada a um tópico doAmazon Simple Notification Service (Amazon SNS) ou a uma política do Amazon EC2 Auto Scaling.Os alarmes do CloudWatch não invocam ações simplesmente porque estão em um estado específico.O estado deve ter sido alterado e mantido por um número específico de períodos. Para obter maisinformações, consulte Monitorar com o Amazon CloudWatch (p. 231).

• Eventos do Amazon CloudWatch – corresponder eventos e roteá-los para uma ou mais funções oufluxos de destino para capturar informações de estado e, se necessário, fazer alterações ou executarações corretivas. Para obter mais informações, consulte Eventos AWS KMS (p. 234) e o Guia dousuário do Eventos do Amazon CloudWatch.

• Amazon CloudWatch Logs – monitore, armazene e acesse seus arquivos de log de instâncias do AWSCloudTrail ou de outras origens. Para obter mais informações, consulte o Guia do usuário do AmazonCloudWatch Logs.

• Monitoramento de log do AWS CloudTrail – Compartilhe arquivos de log entre contas, monitore osarquivos de log do CloudTrail em tempo real enviando-os para o CloudWatch Logs, escreva aplicaçõesde processamento de logs em Java e confirme se os arquivos de log não foram alterados após adistribuição pelo CloudTrail. Para obter mais informações, consulte Working with CloudTrail Log Files noAWS CloudTrail User Guide.

Ferramentas de monitoramento manualOutra parte importante do monitoramento de CMKs é o monitoramento manual dos itens que os alarmes eos eventos do CloudWatch não abrangem. Os painéis dos consoles do AWS KMS, do CloudWatch, o AWSTrusted Advisor e outros da AWS fornecem uma visualização rápida do estado de seu ambiente da AWS.

Você pode personalizar (p. 13) o painel do console do AWS KMS para exibir as seguintes informaçõessobre cada CMK:

• Status• Data de criação• Origem• Data de expiração (para CMKs cuja origem é EXTERNAL)• Data de exclusão programada (para CMKs que estão com exclusão pendente)

O painel do console do CloudWatch mostra o seguinte:

• Alertas e status atual• Gráficos de alertas e recursos• Estado de integridade do serviço

Além disso, você pode usar o CloudWatch para fazer o seguinte:

• Criar painéis personalizados para monitorar os serviços com os quais você se preocupa• Colocar em gráfico dados de métrica para solucionar problemas e descobrir tendências• Pesquisar e procurar todas as métricas de recursos da AWS• Criar e editar alertas para ser notificado sobre problemas

O AWS Trusted Advisor pode ajudar a monitorar os recursos da AWSpara melhorar a performance, aconfiabilidade, a segurança e a economia. Quatro verificações do Trusted Advisor estão disponíveis

230

Page 238: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorMonitorar com o CloudWatch

para todos os usuários. Mais de 50 verificações estão disponíveis para os usuários que têm um plano desuporte Business ou empresarial. Para obter mais informações, consulte AWS Trusted Advisor.

Monitorar com o Amazon CloudWatchVocê pode monitorar suas chaves mestras de cliente (CMKs) usando o Amazon CloudWatch, que coletae processa dados brutos do AWS KMS em métricas legíveis, quase em tempo real. Esses dados sãoregistrados por um período de duas semanas, para que você possa acessar informações históricas e terum melhor entendimento do uso de suas CMKs e suas alterações ao longo do tempo. Para obter maisinformações sobre o Amazon CloudWatch, consulte o Guia do usuário do Amazon CloudWatch.

Tópicos• Métricas e dimensões do AWS KMS (p. 231)• Como criar alarmes do CloudWatch para monitorar métricas do AWS KMS (p. 232)• Eventos AWS KMS (p. 234)

Métricas e dimensões do AWS KMSQuando você importa material de chave para uma CMK (p. 101) e o define para expirar, o AWS KMSenvia métricas e dimensões para o CloudWatch. É possível visualizar as métricas do AWS KMS usando oconsole do Console de gerenciamento da AWS e a API do Amazon CloudWatch.

Métricas do AWS KMSO namespace AWS/KMS inclui as métricas a seguir.

SecondsUntilKeyMaterialExpiration

Essa métrica acompanha o número de segundos restantes até o material da chave importada expirar.Essa métrica só é válida para CMKs cuja origem seja EXTERNAL e cujo material da chave expirou oufoi definido para expirar. A estatística mais útil para essa métrica é Minimum, que informa o menortempo restante para todos os pontos de dados no período estatístico especificado. A única unidadeválida para essa métrica é Seconds.

Use essa métrica para acompanhar o tempo restante até o material da chave importada expirar.Quando esse tempo fica abaixo de um limite definido por você, convém realizar uma ação comoreimportar o material da chave com uma nova data de expiração. Você pode criar um alarme doCloudWatch para notificá-lo quando isso acontece. Para obter mais informações, consulte Como criaralarmes do CloudWatch para monitorar métricas do AWS KMS (p. 232).

Dimensões para métricas do AWS KMSAs métricas do AWS KMS usam o namespace AWS/KMS e só têm uma dimensão válida: KeyId. Épossível usar essa dimensão para visualizar dados da métrica para um CMK específico ou um conjunto deCMKs.

Como faço para visualizar as métricas do AWS KMS?É possível visualizar as métricas do AWS KMS usando o console do Console de gerenciamento da AWS ea API do Amazon CloudWatch.

Para visualizar as métricas usando o console do CloudWatch

1. Abra o console do CloudWatch em https://console.aws.amazon.com/cloudwatch/.

231

Page 239: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCriação de alarmes

2. Se necessário, altere a região. Na barra de navegação, selecione a região em que os seus recursosda AWS residem.

3. No painel de navegação, selecione Métricas.4. No painel de conteúdo, escolha a guia Todas as métricas. Em seguida, abaixo de Namespaces da

AWS, escolha KMS.5. Escolha Métricas por chave para visualizar as métricas e as dimensões individuais.

Para visualizar métricas usando a API do Amazon CloudWatch

Para visualizar as métricas do AWS KMS usando a API do CloudWatch, envie uma solicitação ListMetricscom Namespace definido como AWS/KMS. O exemplo a seguir mostra como fazer isso com a AWSCommand Line Interface (AWS CLI).

$ aws cloudwatch list-metrics --namespace AWS/KMS

Como criar alarmes do CloudWatch para monitorarmétricas do AWS KMSÉ possível criar um alarme do CloudWatch que envie uma mensagem do Amazon SNS quando o valorda métrica é alterado e faz com que o estado do alarme mude. Um alarme observa uma única métrica aolongo de um período especificado por você e realiza uma ou mais ações com base no valor da métricarelativo a um determinado limite ao longo de vários períodos. A ação é uma notificação enviada para umtópico do Amazon SNS ou por uma política do Auto Scaling. Os alarmes invocam ações apenas paraalterações de estado sustentado. Os alarmes do CloudWatch não invocam ações simplesmente porqueestão em um estado específico. O estado deve ter sido alterado e mantido por um número específico deperíodos.

Tópicos• Crie um alarme do CloudWatch para monitorar a expiração do material de chave importada (p. 232)• Crie um alarme do CloudWatch para monitorar o uso de CMKs com exclusão pendente (p. 233)

Crie um alarme do CloudWatch para monitorar a expiração domaterial de chave importadaAo importar o material de chave para uma CMK (p. 101), você pode opcionalmente especificar uma horana qual o material de chave expira. Quando o material de chave expirar, o AWS KMS exclui o material dechave e a CMK torna-se inutilizável. Para usar a CMK novamente, você deverá reimportar o material dechave. Você pode criar um alarme do CloudWatch para notificá-lo quando a quantidade de tempo restante,até seu material de chave importada expirar, cai abaixo de um limite definido por você (por exemplo, 10dias). Se você recebe uma notificação de um alarme como esse, talvez deseje executar ações comoreimportar o material de chave com uma nova data de expiração.

Crie um alarme para monitorar a expiração do material de chave importada (Console degerenciamento da AWS)

1. Abra o console do CloudWatch em https://console.aws.amazon.com/cloudwatch/.2. Se necessário, altere a região. Na barra de navegação, selecione a região em que os seus recursos

da AWS residem.3. No painel de navegação, selecione Alarmes. Em seguida, escolha Criar alarme.4. Escolha Procurar métricas e, em seguida, selecione KMS.5. Marque a caixa de seleção ao lado do ID de chave da CMK para monitorar.

232

Page 240: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCriação de alarmes

6. No painel inferior, use os menus para alterar a estatística para Mínimo e o período de tempo para 1minuto. Em seguida, escolha Avançar.

7. Na janela Criar alarme, faça o seguinte:

a. Em Name, digite um nome de usuário, como KeyMaterialExpiresSoon.b. Depois de Sempre que:, para for:, escolha <= e, em seguida, digite o número de segundos para o

valor do limite. Por exemplo, para ser notificado quando o tempo restante, até o material de chaveimportada expirar, for 10 dias ou menos, digite 864000.

c. Para para período(s) consecutivo(s), se necessário, digite 1.d. Para Enviar notificação para:, faça um dos seguintes procedimentos:

• Para usar um novo tópico do Amazon SNS, escolha Nova lista e digite o nome do novo tópico.Para Lista de e-mails:, digite pelo menos um endereço de e-mail. É possível digitar mais de umendereço de e-mail, basta separá-los com vírgulas.

• Para usar um tópico existente do Amazon SNS, escolha o nome do tópico a ser usado.e. Escolha Create Alarm.

8. Se você optar por enviar notificações para um endereço de e-mail, abra a mensagem de e-mail quevocê recebe de [email protected] com o assunto "Notificação da AWS – Confirmação deassinatura". Confirme o seu endereço de e-mail ao escolher o link Confirmar inscrição na mensagemde e-mail.

Important

Você não receberá notificações por e-mail até ter confirmado o seu endereço de e-mail.

Crie um alarme do CloudWatch para monitorar o uso de CMKscom exclusão pendenteQuando você agenda a exclusão da chave (p. 119) de uma CMK, o AWS KMS impõe um período deespera antes de excluir a CMK. Você pode usar o período de espera para garantir que não precisa da

233

Page 241: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorEventos AWS KMS

CMK agora ou no futuro. Você também pode configurar um alarme do CloudWatch para avisá-lo se umapessoa ou aplicativo tentar usar a CMK durante o período de espera. Se você receber uma notificação deum alarme desse tipo, poderá cancelar a exclusão da CMK.

Para obter mais informações, consulte Criação de alarme do Amazon CloudWatch para detectar o uso dechave mestra de cliente com exclusão pendente (p. 126).

Eventos AWS KMSO AWS KMS se integra com o Eventos do Amazon CloudWatch para notificá-lo de determinados eventosque afetam suas CMKs. Cada evento é representado em JSON (JavaScript Object Notation) e contém onome do evento, a data e a hora em que o evento ocorreu, a CMK afetada e muito mais. Você pode usaro Eventos do CloudWatch para coletar esses eventos e configurar regras que os roteiam para um ou maisdestinos, como funções do AWS Lambda, tópicos do Amazon SNS, filas do Amazon SQS, streamings noAmazon Kinesis Data Streams ou destinos integrados.

Para obter mais informações sobre como usar o Eventos do CloudWatch com outros tipos de eventos,incluindo aqueles emitidos pelo AWS CloudTrail quando ele registra uma solicitação de API de leitura/gravação, consulte o Guia do usuário do Eventos do Amazon CloudWatch.

Os tópicos a seguir descrevem o Eventos do CloudWatch que o AWS KMS cria.

Tópicos• Rotação da CMK do KMS (p. 234)• Expiração do material de chave importada do KMS (p. 234)• Exclusão da CMK do KMS (p. 235)

Rotação da CMK do KMSQuando você habilita a rotação anual do material de chave de uma CMK (p. 95), o AWS KMS cria umnovo material de chave para a CMK a cada ano e envia um evento correspondente para o Eventos doCloudWatch. A seguir há um exemplo deste evento.

{ "version": "0", "id": "6a7e8feb-b491-4cf7-a9f1-bf3703467718", "detail-type": "KMS CMK Rotation", "source": "aws.kms", "account": "111122223333", "time": "2016-08-25T21:05:33Z", "region": "us-west-2", "resources": [ "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" ], "detail": { "key-id": "1234abcd-12ab-34cd-56ef-1234567890ab" }}

Expiração do material de chave importada do KMSAo importar o material de chave para uma CMK (p. 101), você pode opcionalmente especificar uma horana qual o material de chave expira. Quando o material de chave expira, o AWS KMS o exclui e envia umevento correspondente para o Eventos do CloudWatch. A seguir há um exemplo deste evento.

{

234

Page 242: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorEventos AWS KMS

"version": "0", "id": "9da9af57-9253-4406-87cb-7cc400e43465", "detail-type": "KMS Imported Key Material Expiration", "source": "aws.kms", "account": "111122223333", "time": "2016-08-22T20:12:19Z", "region": "us-west-2", "resources": [ "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" ], "detail": { "key-id": "1234abcd-12ab-34cd-56ef-1234567890ab" }}

Exclusão da CMK do KMSQuando você agenda a exclusão da chave (p. 119) de uma CMK, o AWS KMS impõe um período deespera antes de excluir a CMK. Depois que o período de espera terminar, o AWS KMS excluirá a CMK eenviará um evento correspondente para o Eventos do CloudWatch. A seguir há um exemplo deste evento.

{ "version": "0", "id": "e9ce3425-7d22-412a-a699-e7a5fc3fbc9a", "detail-type": "KMS CMK Deletion", "source": "aws.kms", "account": "111122223333", "time": "2016-08-19T03:23:45Z", "region": "us-west-2", "resources": [ "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab" ], "detail": { "key-id": "1234abcd-12ab-34cd-56ef-1234567890ab" }}

235

Page 243: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorInformações do AWS KMS em CloudTrail

Registro em log de chamadas à APIdo AWS KMS com o AWS CloudTrail

O AWS KMS é integrado ao AWS CloudTrail, um serviço que fornece um registro das ações realizadas porum usuário, uma função ou um serviço da AWS no AWS KMS. O CloudTrail captura todas as chamadasde API do AWS KMS como eventos, incluindo as chamadas do console do AWS KMS e as chamadas decódigo para as APIs do AWS KMS. Se você criar uma trilha, poderá habilitar a entrega contínua de eventosdo CloudTrail para um bucket do Amazon S3, incluindo eventos para o AWS KMS. Se não configurar umatrilha, você ainda poderá visualizar os eventos mais recentes no console do CloudTrail em Event history.Com as informações coletadas pelo CloudTrail, determine a solicitação feita para o AWS KMS, o endereçoIP do qual a solicitação foi feita, quem fez a solicitação, quando ela foi feita e detalhes adicionais.

Para saber mais sobre CloudTrail, consulte o AWS CloudTrail User Guide. Para ver outras maneiras demonitorar o uso das CMKs, consulte Como monitorar chaves mestras de cliente (p. 229).

Informações do AWS KMS em CloudTrailO CloudTrail está habilitado na sua conta da AWS ao criá-la. Quando ocorre uma atividade no AWS KMS,ela é registrada em um evento do CloudTrail junto com outros eventos de serviços da AWS em Eventhistory (Histórico de eventos). Você pode visualizar, pesquisar e fazer download de eventos recentes emsua conta da AWS. Para obter mais informações, consulte Visualizar eventos com o histórico de eventosdo CloudTrail.

Para obter um registro contínuo de eventos em sua conta da AWS, incluindo eventos para o AWS KMS,crie uma trilha. Uma trilha permite CloudTrail para fornecer arquivos de log a um bucket do Amazon S3.Por padrão, quando você cria uma trilha no console, ela é aplicada a todas as regiões. A trilha registraeventos em log de todas as regiões na partição da AWS e entrega os arquivos de log ao bucket doAmazon S3 que você especificar. Além disso, é possível configurar outros serviços da AWS para analisarmais profundamente e agir sobre os dados de evento coletados nos logs do CloudTrail. Para obter maisinformações, consulte:

• Visão geral da criação de uma trilha• CloudTrail Serviços compatíveis e integrações do• Configuração de notificações do Amazon SNS para o CloudTrail• Recebimento de arquivos de log do CloudTrail de várias regiões e Recebimento de arquivos de log do

CloudTrail de várias contas

O CloudTrail registra todas as operações do AWS KMS, incluindo operações somente leitura, comoListAliases e GetKeyPolicy, operações que gerenciam CMKs, como CreateKey e PutKeyPolicy,e operações de criptografia, como GenerateDataKey, Encrypt e Decrypt. Cada operação gera umaentrada nos arquivos de log do CloudTrail.

Cada entrada de log ou evento contém informações sobre quem gerou a solicitação. As informações deidentidade ajudam a determinar:

• Se a solicitação foi feita com credenciais de usuário da raiz ou do IAM.• Se a solicitação foi feita com credenciais de segurança temporárias de uma função ou de um usuário

federado.• Se a solicitação foi feita por outro serviço da AWS.

236

Page 244: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorNoções básicas das entradas dos

arquivos de log do AWS KMS

Para obter mais informações, consulte Elemento userIdentity do CloudTrail.

Noções básicas das entradas dos arquivos de logdo AWS KMS

Uma trilha é uma configuração que permite a entrega de eventos como arquivos de log em um bucketdo Amazon S3 que você especificar. Os arquivos de log do CloudTrail contêm uma ou mais entradas delog. Um evento representa uma única solicitação de qualquer origem e inclui informações sobre a açãosolicitada, a data e hora da ação, parâmetros de solicitação e assim por diante. Os arquivos de log doCloudTrail não são um rastreamento de pilha ordenada das chamadas da API pública. Assim, elas não sãoexibidas em nenhuma ordem específica.

Para exemplos de como são essas entradas de registros do CloudTrail, consulte os tópicos a seguir.

Tópicos• CreateAlias (p. 237)• CreateGrant (p. 238)• CreateKey (p. 239)• Descriptografar (p. 240)• DeleteAlias (p. 240)• DescribeKey (p. 241)• DisableKey (p. 243)• EnableKey (p. 243)• Encrypt (p. 244)• GenerateDataKey (p. 245)• GenerateDataKeyWithoutPlaintext (p. 245)• GenerateRandom (p. 246)• GetKeyPolicy (p. 247)• ListAliases (p. 247)• ListGrants (p. 248)• ReEncrypt (p. 249)• Amazon EC2 Exemplo 1 (p. 249)• Amazon EC2 Exemplo 2 (p. 251)

CreateAliasO exemplo a seguir mostra um arquivo de log gerado, chamando CreateAlias.

{ "Records": [ { "eventVersion": "1.02", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID", "userName": "Alice", "sessionContext": {

237

Page 245: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCreateGrant

"attributes": { "mfaAuthenticated": "false", "creationDate": "2014-11-04T00:52:27Z" } } }, "eventTime": "2014-11-04T00:52:27Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateAlias", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.0", "userAgent": "AWS Internal", "requestParameters": { "aliasName": "alias/my_alias", "targetKeyId": "arn:aws:kms:us-east-1:123456789012:key/64e07f97-2489-4d04-bfdf-41723ad130bd" }, "responseElements": null, "requestID": "d9472f40-63bc-11e4-bc2b-4198b6150d5c", "eventID": "f72d3993-864f-48d6-8f16-e26e1ae8dff0", "readOnly": false, "resources": [{ "ARN": "arn:aws:kms:us-east-1:123456789012:key/64e07f97-2489-4d04-bfdf-41723ad130bd", "accountId": "123456789012" }, { "ARN": "arn:aws:kms:us-east-1:123456789012:alias/my_alias", "accountId": "123456789012" }], "eventType": "AwsApiCall", "recipientAccountId": "123456789012" } ]}

CreateGrantO exemplo a seguir mostra um arquivo de log gerado, chamando CreateGrant.

{ "Records": [ { "eventVersion": "1.02", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID", "userName": "Alice" }, "eventTime": "2014-11-04T00:53:12Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.0", "userAgent": "AWS Internal", "requestParameters": { "keyId": "arn:aws:kms:us-east-1:123456789012:key/65f61d18-c45c-41ca-90c9-179982e9b716", "constraints": { "encryptionContextSubset": {

238

Page 246: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCreateKey

"ContextKey1": "Value1" } }, "operations": ["Encrypt", "RetireGrant"], "granteePrincipal": "EX_PRINCIPAL_ID" }, "responseElements": { "grantId": "f020fe75197b93991dc8491d6f19dd3cebb24ee62277a05914386724f3d48758" }, "requestID": "f3c08808-63bc-11e4-bc2b-4198b6150d5c", "eventID": "5d529779-2d27-42b5-92da-91aaea1fc4b5", "readOnly": false, "resources": [{ "ARN": "arn:aws:kms:us-east-1:123456789012:key/65f61d18-c45c-41ca-90c9-179982e9b716", "accountId": "123456789012" }], "eventType": "AwsApiCall", "recipientAccountId": "123456789012" } ]}

CreateKeyO exemplo a seguir mostra um arquivo de log gerado, chamando CreateKey.

{ "Records": [ { "eventVersion": "1.02", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID", "userName": "Alice" }, "eventTime": "2014-11-04T00:52:59Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateKey", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.0", "userAgent": "AWS Internal", "requestParameters": { "policy": "{\n \"Version\":\"2012-10-17\",\n \"Statement\":[{\n \"Effect\":\"Allow\",\n \"Principal\":{\"AWS\":\"arn:aws:iam::123456789012:user/Alice\"},\n \"Action\":\"kms:*\",\n \"Resource\":\"*\"\n }, {\n \"Effect\":\"Allow\",\n \"Principal\":{\"AWS\":\"arn:aws:iam::012345678901:user/Bob\"},\n \"Action\":\"kms:CreateGrant\",\n \"Resource\":\"*\"\n }, {\n \"Effect\":\"Allow\",\n \"Principal\":{\"AWS\":\"arn:aws:iam::012345678901:user/Charlie\"},\n \"Action\":\"kms:Encrypt\",\n \"Resource\":\"*\"\n}]\n}", "description": "", "keyUsage": "ENCRYPT_DECRYPT" }, "responseElements": { "keyMetadata": { "AWSAccountId": "123456789012", "enabled": true, "creationDate": "Nov 4, 2014 12:52:59 AM", "keyId": "06dc80ca-1bdc-4d0b-be5b-b7009cd14f13",

239

Page 247: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorDescriptografar

"keyUsage": "ENCRYPT_DECRYPT", "description": "", "arn": "arn:aws:kms:us-east-1:123456789012:key/06dc80ca-1bdc-4d0b-be5b-b7009cd14f13" } }, "requestID": "ebe8ee68-63bc-11e4-bc2b-4198b6150d5c", "eventID": "ba116326-1792-4784-87dd-a688d1cb42ec", "readOnly": false, "resources": [{ "ARN": "arn:aws:kms:us-east-1:123456789012:key/06dc80ca-1bdc-4d0b-be5b-b7009cd14f13", "accountId": "123456789012" }], "eventType": "AwsApiCall", "recipientAccountId": "123456789012" } ]}

DescriptografarO exemplo a seguir mostra um arquivo de log gerado, chamando Decrypt.

{ "Records": [ { "eventVersion": "1.02", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID", "userName": "Alice" }, "eventTime": "2014-11-04T00:52:20Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.0", "userAgent": "AWS Internal", "errorCode": "InvalidCiphertextException", "requestParameters": null, "responseElements": null, "requestID": "d5239dea-63bc-11e4-bc2b-4198b6150d5c", "eventID": "954983cf-7da9-4adf-aeaa-261a1292c0aa", "readOnly": true, "resources": [{ "ARN": "arn:aws:kms:us-east-1:123456789012:key/e17cebae-e7a6-4864-b92f-0365f2feff38", "accountId": "123456789012" }], "eventType": "AwsApiCall", "recipientAccountId": "123456789012" } ]}

DeleteAliasO exemplo a seguir mostra um arquivo de log gerado, chamando DeleteAlias.

240

Page 248: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorDescribeKey

{ "Records": [ { "eventVersion": "1.02", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID", "userName": "Alice", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2014-11-04T00:52:27Z" } } }, "eventTime": "2014-11-04T00:52:27Z", "eventSource": "kms.amazonaws.com", "eventName": "DeleteAlias", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.0", "userAgent": "AWS Internal", "requestParameters": { "aliasName": "alias/my_alias" }, "responseElements": null, "requestID": "d9542792-63bc-11e4-bc2b-4198b6150d5c", "eventID": "12f48554-bb04-4991-9cfc-e7e85f68eda0", "readOnly": false, "resources": [{ "ARN": "arn:aws:kms:us-east-1:123456789012:alias/my_alias", "accountId": "123456789012" }, { "ARN": "arn:aws:kms:us-east-1:123456789012:key/64e07f97-2489-4d04-bfdf-41723ad130bd", "accountId": "123456789012" }], "eventType": "AwsApiCall", "recipientAccountId": "123456789012" } ]}

DescribeKeyO exemplo a seguir mostra um arquivo de log que registra várias chamadas para DescribeKey. Essaschamadas são resultado das chaves de visualização (p. 13) no console de gerenciamento do AWS KMS.

{ "Records": [ { "eventVersion": "1.02", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID", "userName": "Alice", "sessionContext": {

241

Page 249: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorDescribeKey

"attributes": { "mfaAuthenticated": "false", "creationDate": "2014-11-05T20:51:21Z" } }, "invokedBy": "signin.amazonaws.com" }, "eventTime": "2014-11-05T20:51:34Z", "eventSource": "kms.amazonaws.com", "eventName": "DescribeKey", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.0", "userAgent": "signin.amazonaws.com", "requestParameters": { "keyId": "30a9a1e7-2a84-459d-9c61-04cbeaebab95" }, "responseElements": null, "requestID": "874d4823-652d-11e4-9a87-01af2a1ddecb", "eventID": "f715da9b-c52c-4824-99ae-88aa1bb58ae4", "readOnly": true, "resources": [ { "ARN": "arn:aws:kms:us-east-1:123456789012:key/30a9a1e7-2a84-459d-9c61-04cbeaebab95", "accountId": "123456789012" } ], "eventType": "AwsApiCall", "recipientAccountId": "123456789012" }, { "eventVersion": "1.02", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID", "userName": "Alice", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2014-11-05T20:51:21Z" } }, "invokedBy": "signin.amazonaws.com" }, "eventTime": "2014-11-05T20:51:55Z", "eventSource": "kms.amazonaws.com", "eventName": "DescribeKey", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.0", "userAgent": "signin.amazonaws.com", "requestParameters": { "keyId": "e7b6d35a-b551-4c8f-b51a-0460ebc04565" }, "responseElements": null, "requestID": "9400c720-652d-11e4-9a87-01af2a1ddecb", "eventID": "939fcefb-dc14-4a52-b918-73045fe97af3", "readOnly": true, "resources": [ { "ARN": "arn:aws:kms:us-east-1:123456789012:key/e7b6d35a-b551-4c8f-b51a-0460ebc04565", "accountId": "123456789012" }

242

Page 250: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorDisableKey

], "eventType": "AwsApiCall", "recipientAccountId": "123456789012" } ]}

DisableKeyO exemplo a seguir mostra um arquivo de log gerado, chamando DisableKey.

{ "Records": [ { "eventVersion": "1.02", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID", "userName": "Alice" }, "eventTime": "2014-11-04T00:52:43Z", "eventSource": "kms.amazonaws.com", "eventName": "DisableKey", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.0", "userAgent": "AWS Internal", "requestParameters": { "keyId": "262d9fcb-f1a0-4447-af16-3714cff61ec1" }, "responseElements": null, "requestID": "e26552bc-63bc-11e4-bc2b-4198b6150d5c", "eventID": "995c4653-3c53-4a06-a0f0-f5531997b741", "readOnly": false, "resources": [{ "ARN": "arn:aws:kms:us-east-1:123456789012:key/262d9fcb-f1a0-4447-af16-3714cff61ec1", "accountId": "123456789012" }], "eventType": "AwsApiCall", "recipientAccountId": "123456789012" } ]}

EnableKeyO exemplo a seguir mostra um arquivo de log gerado, chamando EnableKey.

{ "Records": [ { "eventVersion": "1.02", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012",

243

Page 251: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorEncrypt

"accessKeyId": "EXAMPLE_KEY_ID", "userName": "Alice" }, "eventTime": "2014-11-04T00:52:20Z", "eventSource": "kms.amazonaws.com", "eventName": "EnableKey", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.0", "userAgent": "AWS Internal", "requestParameters": { "keyId": "e17cebae-e7a6-4864-b92f-0365f2feff38" }, "responseElements": null, "requestID": "d528a6fb-63bc-11e4-bc2b-4198b6150d5c", "eventID": "be393928-3629-4370-9634-567f9274d52e", "readOnly": false, "resources": [{ "ARN": "arn:aws:kms:us-east-1:123456789012:key/e17cebae-e7a6-4864-b92f-0365f2feff38", "accountId": "123456789012" }], "eventType": "AwsApiCall", "recipientAccountId": "123456789012" } ]}

EncryptO exemplo a seguir mostra um arquivo de log gerado, chamando Encrypt.

{ "Records": [ { "eventVersion": "1.02", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID", "userName": "Alice" }, "eventTime": "2014-11-04T00:53:11Z", "eventSource": "kms.amazonaws.com", "eventName": "Encrypt", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.0", "userAgent": "AWS Internal", "requestParameters": { "encryptionContext": { "ContextKey1": "Value1" }, "keyId": "arn:aws:kms:us-east-1:012345678901:key/8d3acf57-6bba-480a-9459-ed1b8e79d3d0" }, "responseElements": null, "requestID": "f3423043-63bc-11e4-bc2b-4198b6150d5c", "eventID": "91235988-eb87-476a-ac2c-0cdc244e6dca", "readOnly": true, "resources": [{ "ARN": "arn:aws:kms:us-east-1:012345678901:key/8d3acf57-6bba-480a-9459-ed1b8e79d3d0",

244

Page 252: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorGenerateDataKey

"accountId": "012345678901" }], "eventType": "AwsServiceEvent", "recipientAccountId": "012345678901" } ]}

GenerateDataKeyO exemplo a seguir mostra um arquivo de log criado, chamando GenerateDataKey.

{ "Records": [ { "eventVersion": "1.02", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID", "userName": "Alice" }, "eventTime": "2014-11-04T00:52:40Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKey", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.0", "userAgent": "AWS Internal", "requestParameters": { "keyId": "637e8678-3d08-4922-a650-e77eb1591db5", "numberOfBytes": 32 }, "responseElements": null, "requestID": "e0eb83e3-63bc-11e4-bc2b-4198b6150d5c", "eventID": "a9dea4f9-8395-46c0-942c-f509c02c2b71", "readOnly": true, "resources": [{ "ARN": "arn:aws:kms:us-east-1:123456789012:key/637e8678-3d08-4922-a650-e77eb1591db5", "accountId": "123456789012" }], "eventType": "AwsApiCall", "recipientAccountId": "123456789012" } ]}

GenerateDataKeyWithoutPlaintextO exemplo a seguir mostra um arquivo de log criado, chamando GenerateDataKeyWithoutPlaintext.

{ "Records": [ { "eventVersion": "1.02", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Alice",

245

Page 253: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorGenerateRandom

"accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID", "userName": "Alice" }, "eventTime": "2014-11-04T00:52:23Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKeyWithoutPlaintext", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.0", "userAgent": "AWS Internal", "errorCode": "InvalidKeyUsageException", "requestParameters": { "keyId": "d4f2a88d-5f9c-4807-b71d-4d0ee5225156", "numberOfBytes": 16 }, "responseElements": null, "requestID": "d6b8e411-63bc-11e4-bc2b-4198b6150d5c", "eventID": "f7734272-9ec5-4c80-9f36-528ebbe35e4a", "readOnly": true, "resources": [{ "ARN": "arn:aws:kms:us-east-1:123456789012:key/d4f2a88d-5f9c-4807-b71d-4d0ee5225156", "accountId": "123456789012" }], "eventType": "AwsApiCall", "recipientAccountId": "123456789012" } ]}

GenerateRandomO exemplo a seguir mostra um arquivo de log criado, chamando GenerateRandom.

{ "Records": [ { "eventVersion": "1.02", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID", "userName": "Alice" }, "eventTime": "2014-11-04T00:52:37Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateRandom", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.0", "userAgent": "AWS Internal", "requestParameters": null, "responseElements": null, "requestID": "df1e3de6-63bc-11e4-bc2b-4198b6150d5c", "eventID": "239cb9f7-ae05-4c94-9221-6ea30eef0442", "readOnly": true, "resources": [], "eventType": "AwsApiCall", "recipientAccountId": "123456789012" } ]}

246

Page 254: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorGetKeyPolicy

GetKeyPolicyO exemplo a seguir mostra um arquivo de log gerado, chamando GetKeyPolicy.

{ "Records": [ { "eventVersion": "1.02", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID", "userName": "Alice" }, "eventTime": "2014-11-04T00:50:30Z", "eventSource": "kms.amazonaws.com", "eventName": "GetKeyPolicy", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.0", "userAgent": "AWS Internal", "requestParameters": { "keyId": "arn:aws:kms:us-east-1:123456789012:key/e923fe55-d3ef-4f9c-89a1-2752f98c3a70", "policyName": "default" }, "responseElements": null, "requestID": "93746dd6-63bc-11e4-bc2b-4198b6150d5c", "eventID": "4aa7e4d5-d047-452a-a5a6-2cce282a7e82", "readOnly": true, "resources": [{ "ARN": "arn:aws:kms:us-east-1:123456789012:key/e923fe55-d3ef-4f9c-89a1-2752f98c3a70", "accountId": "123456789012" }], "eventType": "AwsApiCall", "recipientAccountId": "123456789012" } ]}

ListAliasesO exemplo a seguir mostra um arquivo de log gerado, chamando ListAliases.

{ "Records": [ { "eventVersion": "1.02", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID", "userName": "Alice" }, "eventTime": "2014-11-04T00:51:45Z", "eventSource": "kms.amazonaws.com", "eventName": "ListAliases",

247

Page 255: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorListGrants

"awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.0", "userAgent": "AWS Internal", "requestParameters": { "limit": 5, "marker": "eyJiIjoiYWxpYXMvZTU0Y2MxOTMtYTMwNC00YzEwLTliZWItYTJjZjA3NjA2OTJhIiwiYSI6ImFsaWFzL2U1NGNjMTkzLWEzMDQtNGMxMC05YmViLWEyY2YwNzYwNjkyYSJ9" }, "responseElements": null, "requestID": "bfe6c190-63bc-11e4-bc2b-4198b6150d5c", "eventID": "a27dda7b-76f1-4ac3-8b40-42dfba77bcd6", "readOnly": true, "resources": [], "eventType": "AwsApiCall", "recipientAccountId": "123456789012" } ]}

ListGrantsO exemplo a seguir mostra um arquivo de log gerado, chamando ListGrants.

{ "Records": [ { "eventVersion": "1.02", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID", "userName": "Alice" }, "eventTime": "2014-11-04T00:52:49Z", "eventSource": "kms.amazonaws.com", "eventName": "ListGrants", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.0", "userAgent": "AWS Internal", "requestParameters": { "keyId": "arn:aws:kms:us-east-1:123456789012:key/ea22a751-e707-40d0-92ac-13a28fa9eb11", "marker": "eyJncmFudElkIjoiMWY4M2U2ZmM0YTY2NDgxYjQ2Yzc4MTdhM2Y4YmQwMDFkZDNiYmQ1MGVlYTMyY2RmOWFiNWY1Nzc1NDNjYmNmMyIsImtleUFybiI6ImFybjphd3M6dHJlbnQtc2FuZGJveDp1cy1lYXN0LTE6NTc4Nzg3Njk2NTMwOmtleS9lYTIyYTc1MS1lNzA3LTQwZDAtOTJhYy0xM2EyOGZhOWViMTEifQ\u003d\u003d", "limit": 10 }, "responseElements": null, "requestID": "e5c23960-63bc-11e4-bc2b-4198b6150d5c", "eventID": "d24380f5-1b20-4253-8e92-dd0492b3bd3d", "readOnly": true, "resources": [{ "ARN": "arn:aws:kms:us-east-1:123456789012:key/ea22a751-e707-40d0-92ac-13a28fa9eb11", "accountId": "123456789012" }], "eventType": "AwsApiCall", "recipientAccountId": "123456789012" } ]}

248

Page 256: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorReEncrypt

ReEncryptO exemplo a seguir mostra um arquivo de log gerado, chamando ReEncrypt.

{ "Records": [ { "eventVersion": "1.02", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID", "userName": "Alice" }, "eventTime": "2014-11-04T00:52:19Z", "eventSource": "kms.amazonaws.com", "eventName": "ReEncrypt", "awsRegion": "us-east-1", "sourceIPAddress": "192.0.2.0", "userAgent": "AWS Internal", "requestParameters": { "destinationKeyId": "arn:aws:kms:us-east-1:123456789012:key/116b8956-a086-40f1-96d6-4858ef794ba5" }, "responseElements": null, "requestID": "d3eeee63-63bc-11e4-bc2b-4198b6150d5c", "eventID": "627c13b4-8791-4983-a80b-4c28807b964c", "readOnly": false, "resources": [{ "ARN": "arn:aws:kms:us-east-1:123456789012:key/ff0c0fc1-cbaa-41ab-a267-69481da8a4c8", "accountId": "123456789012" }, { "ARN": "arn:aws:kms:us-east-1:123456789012:key/116b8956-a086-40f1-96d6-4858ef794ba5", "accountId": "123456789012" }], "eventType": "AwsServiceEvent", "recipientAccountId": "123456789012" } ]}

Amazon EC2 Exemplo 1O exemplo a seguir demonstra um usuário do IAM criando um volume criptografado usando a chave devolume padrão no console de gerenciamento do Amazon EC2.

O exemplo a seguir mostra uma entrada de log do CloudTrail que demonstra o usuário Alice criando umvolume criptografado por meio de uma chave de volume padrão no console de gerenciamento do AWSEC2. O registro do arquivo de log do EC2 inclui um volumeId campo com um valor "vol-13439757".O registro do AWS KMS contém um campo encryptionContext com um valor "aws:ebs:id":"vol-13439757". Da mesma forma, o principalId e o accountId entre os dois registros coincidem.Os registros refletem o fato de que a criação de um volume criptografado gera uma chave de dados que éusada para criptografar o conteúdo do volume.

{

249

Page 257: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAmazon EC2 Exemplo 1

"Records": [ { "eventVersion": "1.02", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID", "userName": "Alice", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2014-11-05T20:40:44Z" } }, "invokedBy": "signin.amazonaws.com" }, "eventTime": "2014-11-05T20:50:18Z", "eventSource": "ec2.amazonaws.com", "eventName": "CreateVolume", "awsRegion": "us-east-1", "sourceIPAddress": "72.72.72.72", "userAgent": "signin.amazonaws.com", "requestParameters": { "size": "10", "zone": "us-east-1a", "volumeType": "gp2", "encrypted": true }, "responseElements": { "volumeId": "vol-13439757", "size": "10", "zone": "us-east-1a", "status": "creating", "createTime": 1415220618876, "volumeType": "gp2", "iops": 30, "encrypted": true }, "requestID": "1565210e-73d0-4912-854c-b15ed349e526", "eventID": "a3447186-135f-4b00-8424-bc41f1a93b4f", "eventType": "AwsApiCall", "recipientAccountId": "123456789012" }, { "eventVersion": "1.02", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID", "userName": "Alice", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2014-11-05T20:40:44Z" } }, "invokedBy": "AWS Internal" }, "eventTime": "2014-11-05T20:50:19Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKeyWithoutPlaintext", "awsRegion": "us-east-1",

250

Page 258: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAmazon EC2 Exemplo 2

"sourceIPAddress": "AWS Internal", "userAgent": "AWS Internal", "requestParameters": { "encryptionContext": { "aws:ebs:id": "vol-13439757" }, "numberOfBytes": 64, "keyId": "alias/aws/ebs" }, "responseElements": null, "requestID": "create-123456789012-758241111-1415220618", "eventID": "4bd2a696-d833-48cc-b72c-05e61b608399", "readOnly": true, "resources": [ { "ARN": "arn:aws:kms:us-east-1:123456789012:key/e29ddfd4-1bf6-4e1b-8ecb-08216bd70d07", "accountId": "123456789012" } ], "eventType": "AwsApiCall", "recipientAccountId": "123456789012" } ]}

Amazon EC2 Exemplo 2O exemplo a seguir mostra um usuário do IAM executando uma instância de Amazon EC2 quemonta um volume de dados criptografado usando uma chave de volume padrão. A ação executadapelo usuário gera vários registros de log do AWS KMS. A criação do volume criptografado gerauma chave de dados, e o serviço do Amazon EC2 gera uma concessão, em nome do cliente,que permite descriptografar a chave de dados. O instanceId, "i-81e2f56c", é referido nocampo granteePrincipal do registro CreateGrant como "123456789012:aws:ec2-infrastructure:i-81e2f56c", bem como na identidade do principal chamando Descriptografar,"arn:aws:sts::123456789012:assumed-role/aws:ec2-infrastructure/i-81e2f56c". Achave identificada pela UUID "e29ddfd4-1bf6-4e1b-8ecb-08216bd70d07" é comum em todas astrês chamadas de KMS.

{ "Records": [ { "eventVersion": "1.02", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID", "userName": "Alice", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2014-11-05T21:34:36Z" } }, "invokedBy": "signin.amazonaws.com" }, "eventTime": "2014-11-05T21:35:27Z", "eventSource": "ec2.amazonaws.com", "eventName": "RunInstances", "awsRegion": "us-east-1",

251

Page 259: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAmazon EC2 Exemplo 2

"sourceIPAddress": "72.72.72.72", "userAgent": "signin.amazonaws.com", "requestParameters": { "instancesSet": { "items": [ { "imageId": "ami-b66ed3de", "minCount": 1, "maxCount": 1 } ] }, "groupSet": { "items": [ { "groupId": "sg-98b6e0f2" } ] }, "instanceType": "m3.medium", "blockDeviceMapping": { "items": [ { "deviceName": "/dev/xvda", "ebs": { "volumeSize": 8, "deleteOnTermination": true, "volumeType": "gp2" } }, { "deviceName": "/dev/sdb", "ebs": { "volumeSize": 8, "deleteOnTermination": false, "volumeType": "gp2", "encrypted": true } } ] }, "monitoring": { "enabled": false }, "disableApiTermination": false, "instanceInitiatedShutdownBehavior": "stop", "clientToken": "XdKUT141516171819", "ebsOptimized": false }, "responseElements": { "reservationId": "r-5ebc9f74", "ownerId": "123456789012", "groupSet": { "items": [ { "groupId": "sg-98b6e0f2", "groupName": "launch-wizard-2" } ] }, "instancesSet": { "items": [ { "instanceId": "i-81e2f56c", "imageId": "ami-b66ed3de", "instanceState": {

252

Page 260: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAmazon EC2 Exemplo 2

"code": 0, "name": "pending" }, "amiLaunchIndex": 0, "productCodes": { }, "instanceType": "m3.medium", "launchTime": 1415223328000, "placement": { "availabilityZone": "us-east-1a", "tenancy": "default" }, "monitoring": { "state": "disabled" }, "stateReason": { "code": "pending", "message": "pending" }, "architecture": "x86_64", "rootDeviceType": "ebs", "rootDeviceName": "/dev/xvda", "blockDeviceMapping": { }, "virtualizationType": "hvm", "hypervisor": "xen", "clientToken": "XdKUT1415223327917", "groupSet": { "items": [ { "groupId": "sg-98b6e0f2", "groupName": "launch-wizard-2" } ] }, "networkInterfaceSet": { }, "ebsOptimized": false } ] } }, "requestID": "41c4b4f7-8bce-4773-bf0e-5ae3bb5cbce2", "eventID": "cd75a605-2fee-4fda-b847-9c3d330ebaae", "eventType": "AwsApiCall", "recipientAccountId": "123456789012" }, { "eventVersion": "1.02", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID", "userName": "Alice", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2014-11-05T21:34:36Z" } }, "invokedBy": "AWS Internal"

253

Page 261: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAmazon EC2 Exemplo 2

}, "eventTime": "2014-11-05T21:35:35Z", "eventSource": "kms.amazonaws.com", "eventName": "CreateGrant", "awsRegion": "us-east-1", "sourceIPAddress": "AWS Internal", "userAgent": "AWS Internal", "requestParameters": { "constraints": { "encryptionContextSubset": { "aws:ebs:id": "vol-f67bafb2" } }, "granteePrincipal": "123456789012:aws:ec2-infrastructure:i-81e2f56c", "keyId": "arn:aws:kms:us-east-1:123456789012:key/e29ddfd4-1bf6-4e1b-8ecb-08216bd70d07" }, "responseElements": { "grantId": "6caf442b4ff8a27511fb6de3e12cc5342f5382112adf75c1a91dbd221ec356fe" }, "requestID": "41c4b4f7-8bce-4773-bf0e-5ae3bb5cbce2", "eventID": "c1ad79e3-0d3f-402a-b119-d5c31d7c6a6c", "readOnly": false, "resources": [ { "ARN": "arn:aws:kms:us-east-1:123456789012:key/e29ddfd4-1bf6-4e1b-8ecb-08216bd70d07", "accountId": "123456789012" } ], "eventType": "AwsApiCall", "recipientAccountId": "123456789012" }, { "eventVersion": "1.02", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::123456789012:user/Alice", "accountId": "123456789012", "accessKeyId": "EXAMPLE_KEY_ID", "userName": "Alice", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2014-11-05T21:34:36Z" } }, "invokedBy": "AWS Internal" }, "eventTime": "2014-11-05T21:35:32Z", "eventSource": "kms.amazonaws.com", "eventName": "GenerateDataKeyWithoutPlaintext", "awsRegion": "us-east-1", "sourceIPAddress": "AWS Internal", "userAgent": "AWS Internal", "requestParameters": { "encryptionContext": { "aws:ebs:id": "vol-f67bafb2" }, "numberOfBytes": 64, "keyId": "alias/aws/ebs" }, "responseElements": null, "requestID": "create-123456789012-758247346-1415223332", "eventID": "ac3cab10-ce93-4953-9d62-0b6e5cba651d",

254

Page 262: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAmazon EC2 Exemplo 2

"readOnly": true, "resources": [ { "ARN": "arn:aws:kms:us-east-1:123456789012:key/e29ddfd4-1bf6-4e1b-8ecb-08216bd70d07", "accountId": "123456789012" } ], "eventType": "AwsApiCall", "recipientAccountId": "123456789012" }, { "eventVersion": "1.02", "userIdentity": { "type": "AssumedRole", "principalId": "123456789012:aws:ec2-infrastructure:i-81e2f56c", "arn": "arn:aws:sts::123456789012:assumed-role/aws:ec2-infrastructure/i-81e2f56c", "accountId": "123456789012", "accessKeyId": "", "sessionContext": { "attributes": { "mfaAuthenticated": "false", "creationDate": "2014-11-05T21:35:38Z" }, "sessionIssuer": { "type": "Role", "principalId": "123456789012:aws:ec2-infrastructure", "arn": "arn:aws:iam::123456789012:role/aws:ec2-infrastructure", "accountId": "123456789012", "userName": "aws:ec2-infrastructure" } } }, "eventTime": "2014-11-05T21:35:47Z", "eventSource": "kms.amazonaws.com", "eventName": "Decrypt", "awsRegion": "us-east-1", "sourceIPAddress": "172.172.172.172", "requestParameters": { "encryptionContext": { "aws:ebs:id": "vol-f67bafb2" } }, "responseElements": null, "requestID": "b4b27883-6533-11e4-b4d9-751f1761e9e5", "eventID": "edb65380-0a3e-4123-bbc8-3d1b7cff49b0", "readOnly": true, "resources": [ { "ARN": "arn:aws:kms:us-east-1:123456789012:key/e29ddfd4-1bf6-4e1b-8ecb-08216bd70d07", "accountId": "123456789012" } ], "eventType": "AwsApiCall", "recipientAccountId": "123456789012" } ]}

255

Page 263: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedor

Conexão ao AWS KMS através deum VPC endpoint

Você pode se conectar diretamente ao AWS KMS através de um endpoint privado em seu VPC, em vezde fazer a conexão pela Internet. Quando você usa um VPC endpoint, a comunicação entre seu VPC e oAWS KMS é realizada inteiramente dentro da rede da AWS.

O AWS KMS oferece suporte a endpoints de interface do Amazon Virtual Private Cloud (Amazon VPC)originados pelo https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Introduction.html#what-is-privatelink. Cada VPC endpoint é representado por uma ou mais interfaces de rede elástica (ENIs) comendereços IP privados em sua sub-redes da VPC.

O endpoint da interface VPC conecta a VPC diretamente ao AWS KMS sem um Internet gateway,dispositivo NAT, conexão VPN ou conexão AWS Direct Connect. As instâncias na sua VPC nãonecessitam que endereços IP públicos se comuniquem com o AWS KMS.

Você pode especificar o VPC endpoint nas operações de API do AWS KMS e nos comandos da AWS CLI.Por exemplo, o comando a seguir usa o parâmetro endpoint-url para especificar um VPC endpoint em umcomando AWS CLI para AWS KMS.

$ aws kms list-keys --endpoint-url https://-dfm9tr04.kms.us-east-1.vpce.amazonaws.com

Se você usar os servidores de nome de domínio padrão (AmazonProvidedDNS) e habilitar os nomes dehost DNS privados para o seu VPC endpoint, não será necessário especificar o URL do endpoint. A AWSpreenche seu servidor de nomes VPC com dados de zona privada, portanto, o endpoint público KMS(https://kms.<region>.amazonaws.com) resolve para o seu VPC endpoint privado. Para habilitaresse recurso ao usar seus próprios servidores de nome, encaminhe solicitações do domínio do KMS aoservidor de nome VPC.

Você também pode usar os logs do AWS CloudTrail para auditar o uso de chaves do KMS por meio doVPC endpoint. Além disso, você pode usar as condições nas políticas de chaves do IAM para negaracesso a qualquer solicitação que seja proveniente de uma VPC ou VPC endpoint especificado.

Note

Tome cuidado ao criar políticas de chaves do IAM com base em seu VPC endpoint. Se umadeclaração de política exigir que as solicitações sejam provenientes de uma VPC ou VPCendpoint específico, as solicitações de serviços integrados da AWS que usam a CMK em seunome podem falhar. Para obter ajuda, consulte Utilização das condições do VPC endpoint empolíticas com permissões do AWS KMS (p. 66).

Regiões do AWS com suporte

O AWS KMS oferece suporte a VPC endpoints em todas as regiões da AWS em que Amazon VPC e AWSKMS estão disponíveis, exceto AWS GovCloud (US).

Tópicos• Criar um AWS KMS VPC endpoint (p. 257)• Conexão a um VPC endpoint do AWS KMS (p. 259)• Utilização de um VPC endpoint em uma declaração de política (p. 260)• Auditoria da utilização da CMK para sua VPC (p. 262)

256

Page 264: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCriar um VPC endpoint

Criar um AWS KMS VPC endpointO endpoint da interface é criado em sua VPC usando o serviço de VPC endpoint do KMS em cada região.Você pode criar um VPC endpoint no Console de gerenciamento da AWS ou usando a AWS CLI ou a APIdo Amazon EC2.

Tópicos• Criação de um VPC endpoint do AWS KMS (Console do VPC) (p. 257)• Criar um VPC endpoint AWS KMS (AWS CLI) (p. 258)

Criação de um VPC endpoint do AWS KMS (Consoledo VPC)1. Faça login no Console de gerenciamento da AWS e abra o console da Amazon VPC em https://

console.aws.amazon.com/vpc/.2. Na barra de navegação, use o seletor de região para escolher sua região.3. No painel de navegação, escolha Endpoints. No painel principal, Crie o endpoint.4. Para Service category, escolha AWS Services.5. Na lista Service Name (Nome do serviço), escolha a entrada para o endpoint da interface do

AWS KMS na região. Por exemplo, na região Leste dos EUA (Virgínia), o nome da entrada écom.amazonaws.us-east-1.kms.

6. Para VPC, selecione uma VPC. O endpoint é criado na VPC que você selecionar.7. Para Subnets, escolha uma sub-rede de cada zona de disponibilidade que você desejar incluir.

O VPC endpoint pode abranger várias zonas de disponibilidade. Uma interface de rede elástica (ENI)para o VPC endpoint é criada em cada sub-rede que você escolher. Cada ENI possui um nome dehost DNS e um endereço IP privado.

8. Nesta etapa, você pode ativar um nome de host DNS privado para seu VPC endpoint. Se vocêselecionar a opção Enable Private DNS Name (Habilitar nome DNS privado), o nome de host DNSAWS KMS padrão (https://kms.<region>.amazonaws.com) será resolvido para o VPCendpoint.

Essa opção facilita usar o VPC endpoint. A ILC AWS KMS e os SDKs da AWS KMS usam o nomede host DNS padrão. Assim, você não precisa especificar o URL do VPC endpoint em aplicativos ecomandos.

Este recurso funciona apenas quando os atributos enableDnsHostnames e enableDnsSupport desua VPC estão definidos como true. Para definir esses atributos, atualize o suporte do DNS para suaVPC.

Para ativar um nome de host de DNS privado, em Enable Private DNS Name, selecione Enable forthis endpoint.

9. Para Security group, selecione ou crie um security group.

Você pode usar security groups para controlar o acesso ao seu endpoint, da mesma forma que vocêusaria um firewall.

10. Escolha Create endpoint.

Os resultados mostram o VPC endpoint, incluindo a ID do VPC endpoint e os nomes de DNS que você usapara conectar-se ao seu VPC endpoint (p. 259).

257

Page 265: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCriar um VPC endpoint AWS KMS (AWS CLI)

Você também pode usar as ferramentas da Amazon VPC para visualizar e gerenciar seu endpoint,incluindo a criação de uma notificação para um endpoint, alterar propriedades do endpoint e excluir oendpoint. Para obter instruções, consulte Interface de VPC Endpoints.

Criar um VPC endpoint AWS KMS (AWS CLI)Você pode usar o comando create-vpc-endpoint na AWS CLI para criar um VPC endpoint que se conectaao AWS KMS.

Certifique-se de usar interface como o tipo de VPC endpoint e o valor do nome do serviço que incluikms e a região onde sua VPC está localizada.

O comando não inclui o parâmetro PrivateDnsNames porque seu valor padrão é verdadeiro. Paradesativar essa opção, você pode incluir o parâmetro com um valor de false. Os nomes de DNS privadosestão disponíveis apenas quando os atributos enableDnsHostnames e enableDnsSupport de suaVPC estão definidos como true. Para definir esses atributos, use a API ModifyVpcAttribute.

O diagrama a seguir mostra a sintaxe do comando.

aws ec2 create-vpc-endpoint --vpc-id <vpc id> \ --vpc-endpoint-type Interface \ --service-name com.amazonaws.<region>.kms \ --subnet-ids <subnet id> \ --security-group-id <security group id>

258

Page 266: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorConexão a um VPC endpoint

Por exemplo, este comando cria um VPC endpoint na VPC com o ID de VPC , o que está na região us-east-1. Ele especifica apenas uma ID de sub-rede para representar as zonas de disponibilidade, masvocê pode especificar muitas. A ID do security group também é necessário.

A saída inclui a ID do VPC endpoint e nomes de DNS que você usa para conectar ao seu novo VPCendpoint.

$ aws ec2 create-vpc-endpoint --vpc-id \ --vpc-endpoint-type Interface \ --service-name com.amazonaws.us-west-1.kms \ --subnet-ids \ --security-group-id sg-1a2b3c4d

{ "VpcEndpoint": { "PolicyDocument": "{\n \"Statement\": [\n {\n \"Action\": \"*\", \n \"Effect\": \"Allow\", \n \"Principal\": \"*\", \n \"Resource\": \"*\"\n }\n ]\n}", "VpcId": "", "NetworkInterfaceIds": [ "eni-bf8aa46b" ], "SubnetIds": [ "" ], "PrivateDnsEnabled": true, "State": "pending", "ServiceName": "com.amazonaws.us-east-1.kms", "RouteTableIds": [], "Groups": [ { "GroupName": "default", "GroupId": "sg-1a2b3c4d" } ], "VpcEndpointId": "", "VpcEndpointType": "Interface", "CreationTimestamp": "2017-09-05T20:14:41.240Z", "DnsEntries": [ { "HostedZoneId": "Z7HUB22UULQXV", "DnsName": "-dfm9tr04.kms.us-east-1.vpce.amazonaws.com" }, { "HostedZoneId": "Z7HUB22UULQXV", "DnsName": "-dfm9tr04-us-east-1a.kms.us-east-1.vpce.amazonaws.com" }, { "HostedZoneId": "Z1K56Z6FNPJRR", "DnsName": "kms.us-east-1.amazonaws.com" } ] }}

Conexão a um VPC endpoint do AWS KMSVocê pode se conectar ao AWS KMS através do VPC endpoint usando a AWS CLI ou um SDK da AWS.Para especificar o VPC endpoint, use seu nome de DNS.

259

Page 267: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorUtilização de um VPC endpointem uma declaração de política

Por exemplo, este comando list-keys usa o parâmetro endpoint-url para especificar o VPC endpoint.Para usar um comando como este, substitua o exemplo de ID de VPC endpoint na sua conta.

aws kms list-keys --endpoint-url https://-dfm9tr04.kms.us-east-1.vpce.amazonaws.com

Se os nomes de host privados tiverem sido ativados ao criar o VPC endpoint, você não precisa especificaro URL do VPC endpoint nos comandos de CLI ou na configuração do aplicativo. O nome de host AWSKMS DNS padrão (https://kms.<region>.amazonaws.com) é resolvido para o VPC endpoint. A AWS CLIe os SDKs usam esse nome de host por padrão, de forma que você possa começar a usar o VPC endpointsem alterar nada em seus scripts e aplicativo.

Para usar nomes de host privado, os atributos enableDnsHostnames e enableDnsSupport da suaVPC devem ser definidos como verdadeiros. Para definir esses atributos, use a API ModifyVpcAttribute.

Utilização de um VPC endpoint em uma declaraçãode política

Você pode usar políticas de IAM e políticas de chaves de AWS KMS para controlar o acesso às suaschaves mestras de cliente do AWS KMS (CMKs). Você também pode usar chaves de condições globaispara restringir essas políticas com base em VPC endpoint ou VPC na solicitação.

• Use a chave de condição aws:sourceVpce para conceder ou restringir o acesso a uma CMK do AWSKMS com base no VPC endpoint.

• Use a chave de condição aws:sourceVpc para conceder ou restringir o acesso a uma CMK do AWSKMS com base na VPC que hospedar o endpoint privado.

Note

Tome cuidado ao criar políticas de chaves do IAM com base em seu VPC endpoint. Se umadeclaração de política exigir que as solicitações sejam provenientes de uma VPC ou VPCendpoint específico, as solicitações de serviços integrados da AWS que usam a CMK em seunome podem falhar. Para obter ajuda, consulte Utilização das condições do VPC endpoint empolíticas com permissões do AWS KMS (p. 66).Além disso, a chave de condição aws:sourceIP não será efetiva se a solicitação vier de umendpoint da Amazon VPC. Para restringir solicitações a um VPC endpoint, use as chaves decondições aws:sourceVpce ou aws:sourceVpc. Para obter mais informações, consulte VPCendpoints – controle do uso de endpoints no Guia do usuário do Amazon VPC.

Por exemplo, o exemplo a seguir de política de chaves permite que um usuário execute operaçõesde criptografia com uma CMK somente quando a solicitação for fornecida por meio do VPC endpointespecificado.

Quando um usuário faz uma solicitação para AWS KMS, o ID do VPC endpoint na solicitação estácomparado com o valor da chave de condição aws:sourceVpce na política. Se não coincidirem, asolicitação é negada.

Para usar uma política como essa, substitua os espaços reservados de ID da conta da AWS e IDs de VPCendpoint por valores válidos da sua conta.

{ "Id": "example-key-1", "Version": "2012-10-17", "Statement": [ {

260

Page 268: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorUtilização de um VPC endpointem uma declaração de política

"Sid": "Enable IAM user permissions", "Effect": "Allow", "Principal": {"AWS":["111122223333"]}, "Action": ["kms:*"], "Resource": "*" }, { "Sid": "Restrict usage to my VPC endpoint", "Effect": "Deny", "Principal": "*", "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "StringNotEquals": { "aws:sourceVpce": "" } } }

]}

Você também pode usar a chave de condições aws:sourceVpc para restringir o acesso às suas CMKscom base na VPC no qual VPC endpoint reside.

O exemplo de política de chaves a seguir permite comandos que gerenciam a CMK somente quando elessão provenientes de vpc-12345678. Além disso, ele permite comandos que usam a CMK para operaçõesde criptografia somente quando eles são provenientes de vpc-2b2b2b2b. Você pode usar uma políticacomo essa se um aplicativo é executado em uma VPC, mas você usa uma segunda VPC isolada parafunções de gerenciamento.

Para usar uma política como essa, substitua os espaços reservados de ID da conta da AWS e IDs de VPCendpoint por valores válidos da sua conta.

{ "Id": "example-key-2", "Version": "2012-10-17", "Statement": [ { "Sid": "Allow administrative actions from vpc-12345678", "Effect": "Allow", "Principal": {"AWS": "111122223333"}, "Action": [ "kms:Create*","kms:Enable*","kms:Put*","kms:Update*", "kms:Revoke*","kms:Disable*","kms:Delete*", "kms:TagResource", "kms:UntagResource" ], "Resource": "*", "Condition": { "StringEquals": { "aws:sourceVpc": "vpc-12345678" } } }, { "Sid": "Allow key usage from vpc-2b2b2b2b", "Effect": "Allow", "Principal": {"AWS": "111122223333"}, "Action": [

261

Page 269: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAuditoria da utilização da CMK para sua VPC

"kms:Encrypt","kms:Decrypt","kms:GenerateDataKey*" ], "Resource": "*", "Condition": { "StringEquals": { "aws:sourceVpc": "vpc-2b2b2b2b" } } }, { "Sid": "Allow read actions from everywhere", "Effect": "Allow", "Principal": {"AWS": "111122223333"}, "Action": [ "kms:Describe*","kms:List*","kms:Get*" ], "Resource": "*", } ]}

Auditoria da utilização da CMK para sua VPCQuando uma solicitação para o KMS da AWS usa um VPC endpoint, a ID do VPC endpoint aparece naentrada de log do AWS CloudTrail (p. 236) que registra a solicitação. Você pode usar o ID de endpointpara auditar o uso do seu VPC endpoint do AWS KMS.

Por exemplo, este exemplo de entrada de log registra uma solicitação de GenerateDataKey que usou oVPC endpoint. O campo vpcEndpointId aparece no final da entrada de log.

{ "eventVersion":"1.05", "userIdentity": { "type": "IAMUser", "principalId": "EX_PRINCIPAL_ID", "arn": "arn:aws:iam::111122223333:user/Alice", "accessKeyId": "EXAMPLE_KEY_ID", "accountId": "111122223333", "userName": "Alice" }, "eventTime":"2018-01-16T05:46:57Z", "eventSource":"kms.amazonaws.com", "eventName":"GenerateDataKey", "awsRegion":"eu-west-1", "sourceIPAddress":"172.01.01.001", "userAgent":"aws-cli/1.14.23 Python/2.7.12 Linux/4.9.75-25.55.amzn1.x86_64 botocore/1.8.27", "requestParameters":{ "keyId":"", "numberOfBytes":128 }, "responseElements":null, "requestID":"a9fff0bf-fa80-11e7-a13c-afcabff2f04c", "eventID":"77274901-88bc-4e3f-9bb6-acf1c16f6a7c", "readOnly":true, "resources":[{ "ARN":"arn:aws:kms:eu-west-1:111122223333:key/", "accountId":"111122223333", "type":"AWS::KMS::Key" }], "eventType":"AwsApiCall",

262

Page 270: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAuditoria da utilização da CMK para sua VPC

"recipientAccountId":"111122223333", "vpcEndpointId": ""}

263

Page 271: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo criar um cliente

Programação da API do AWS KMSÉ possível usar a API do AWS KMS para executar as seguintes ações e muito mais.

• Criar, descrever, listar, ativar e desativar chaves.• Criar, excluir, listar e atualizar aliases.• Criptografar, descriptografar e recriptografar conteúdo.• Definir, listar e recuperar políticas de chaves.• Criar, retirar, revogar e listar concessões.• Recuperar o status de rotação de chaves.• Atualizar descrições de chaves.• Gerar chaves de dados com ou sem texto simples.• Gerar dados aleatórios.

O código de exemplo nos tópicos a seguir mostra como usar os SDKs da AWS para chamar a API do AWSKMS.

Tópicos• Como criar um cliente (p. 264)• Trabalhar com chaves (p. 265)• Criptografia e descriptografia de chaves de dados (p. 275)• Como trabalhar com políticas de chaves (p. 280)• Como trabalhar com concessões (p. 287)• Trabalhar com aliases (p. 294)

Como criar um clientePara usar o AWS SDK for Java, o AWS SDK para .NET, o AWS SDK para Python (boto3), o AWS SDKpara Ruby. o AWS SDK para PHP ou o AWS SDK for JavaScript in Node.js para escrever código que usaa API do AWS Key Management Service (AWS KMS), primeiro crie um cliente do AWS KMS.

O objeto do cliente que você cria é usado no código de exemplo nos tópicos a seguir.

Java

Para criar um cliente do AWS KMS em Java, use o compilador de cliente.

AWSKMS kmsClient = AWSKMSClientBuilder.defaultClient();

Para obter mais informações sobre como usar o criador do cliente Java, consulte os seguintesrecursos.

• Fluent Client Builders no Blog de desenvolvedores da AWS• Criação de clientes de serviço no AWS SDK for Java Developer Guide

264

Page 272: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorTrabalhar com chaves

• AWSKMSClientBuilder no AWS SDK for Java API Reference

C#

AmazonKeyManagementServiceClient kmsClient = new AmazonKeyManagementServiceClient();

Python

kms_client = boto3.client('kms')

Ruby

require 'aws-sdk-kms' # in v2: require 'aws-sdk'

kmsClient = Aws::KMS::Client.new

PHP

Para criar um cliente do AWS KMS no PHP, use um objeto de cliente do AWS KMS e especifique aversão 2014-11-01. Para obter mais informações, consulte Classe KMSClient no AWS SDK paraPHP API Reference.

// Create a KMSClient$KmsClient = new Aws\Kms\KmsClient([ 'profile' => 'default', 'version' => '2014-11-01', 'region' => 'us-east-1']);

Node.js

const kmsClient = new AWS.KMS();

Trabalhar com chavesOs exemplos neste tópico usam a API do AWS KMS para criar, visualizar, habilitar e desabilitar chavesmestras de cliente do AWS KMS e para gerar chaves de dados.

Tópicos• Criação de chave mestra de cliente (p. 265)• Como gerar uma chave de dados (p. 267)• Visualização de uma chave mestra de cliente (p. 269)• Obtenção de IDs e ARNs de chave das chaves mestras de cliente (p. 270)• Ativação de chaves mestras de cliente (p. 272)• Desativação de chaves mestras de cliente (p. 273)

Criação de chave mestra de clientePara criar uma chave mestra de cliente (p. 2), use a operação CreateKey.

265

Page 273: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCriação de chave mestra de cliente

Este exemplo usa o objeto do cliente do KMS criado no Como criar um cliente (p. 264).

Java

Para obter detalhes, consulte o Método createKey no AWS SDK for Java API Reference.

// Create a CMK//String desc = "Key for protecting critical data"; CreateKeyRequest req = new CreateKeyRequest().withDescription(desc);CreateKeyResult result = kmsClient.createKey(req);

C#

Para obter detalhes, consulte o Método CreateKey no AWS SDK para .NET.

// Create a CMK//String desc = "Key for protecting critical data";

CreateKeyRequest req = new CreateKeyRequest(){ Description = desc};CreateKeyResponse response = kmsClient.CreateKey(req);

Python

Para obter detalhes, consulte o Método create_key no AWS SDK para Python (boto3).

# Create a CMK

desc = 'Key for protecting critical data'

response = kms_client.create_key( Description=desc)

Ruby

Para obter detalhes, consulte o método de instância create_key no AWS SDK para Ruby.

# Create a CMK

desc = 'Key for protecting critical data'

response = kmsClient.create_key({ description: desc})

PHP

Para obter detalhes, consulte o Método CreateKey no AWS SDK para PHP.

// Create a CMK//$desc = "Key for protecting critical data";

$result = $KmsClient->createKey([

266

Page 274: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo gerar uma chave de dados

'Description' => $desc]);

Node.js

Para obter detalhes, consulte a Propriedade createKey no AWS SDK for JavaScript in Node.js.

// Create a CMK//const Description = 'Key for protecting critical data';

kmsClient.createKey({ Description }, (err, data) => { ...});

Como gerar uma chave de dadosPara gerar uma chave de dados, use a operação GenerateDataKey. Essa operação retorna cópias detexto simples e criptografadas da chave de dados que ela cria.

Este exemplo usa o objeto do cliente do KMS criado no Como criar um cliente (p. 264).

Java

Para obter detalhes, consulte o Método generateDataKey no AWS SDK for Java API Reference.

// Generate a data key//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKString keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab";

GenerateDataKeyRequest dataKeyRequest = new GenerateDataKeyRequest();dataKeyRequest.setKeyId(keyId);dataKeyRequest.setKeySpec("AES_256");

GenerateDataKeyResult dataKeyResult = kmsClient.generateDataKey(dataKeyRequest);

ByteBuffer plaintextKey = dataKeyResult.getPlaintext();

ByteBuffer encryptedKey = dataKeyResult.getCiphertextBlob();

C#

Para obter detalhes, consulte o Método GenerateDataKey no AWS SDK para .NET.

// Generate a data key//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKString keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab";GenerateDataKeyRequest dataKeyRequest = new GenerateDataKeyRequest(){ KeyId = keyId, KeySpec = DataKeySpec.AES_256};

GenerateDataKeyResponse dataKeyResponse = kmsClient.GenerateDataKey(dataKeyRequest);

MemoryStream plaintextKey = dataKeyResponse.Plaintext;

267

Page 275: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo gerar uma chave de dados

MemoryStream encryptedKey = dataKeyResponse.CiphertextBlob;

Python

Para obter detalhes, consulte o Método generate_date_key no AWS SDK para Python (boto3).

# Generate a data key

# Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKkey_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'

response = kms_client.generate_data_key( KeyId=key_id, KeySpec='AES_256')

plaintext_key = response['Plaintext']

encrypted_key = response['CiphertextBlob']

Ruby

Para obter detalhes, consulte o método de instância generate_data_key no AWS SDK para Ruby.

# Generate a data key

# Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKkeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'

response = kmsClient.generate_data_key({ key_id: keyId, key_spec: 'AES_256'})

plaintextKey = response.plaintext

encryptedKey = response.ciphertext_blob

PHP

Para obter detalhes, consulte o Método GenerateDataKey no AWS SDK para PHP.

// Generate a data key//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMK$keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';$keySpec = 'AES_256';

$result = $KmsClient->generateDataKey([ 'KeyId' => $keyId, 'KeySpec' => $keySpec,]);

$plaintextKey = $result['Plaintext'];

$encryptedKey = $result['CiphertextBlob'];

Node.js

Para obter detalhes, consulte a Propriedade generateDataKey no AWS SDK for JavaScript in Node.js.

268

Page 276: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorVisualização de uma chave mestra de cliente

// Generate a data key//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKconst KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';const KeySpec = 'AES_256';kmsClient.generateDataKey({ KeyId, KeySpec }, (err, data) => { if (err) console.log(err, err.stack); else { const { CiphertextBlob, Plaintext } = data; ... }});

Visualização de uma chave mestra de clientePara obter informações detalhadas sobre uma chave mestra de cliente (CMK), incluindo o ARN da CMK eo estado da chave (p. 175), use a operação DescribeKey.

DescribeKey não obtém aliases. Para a lista de alias, use a operação ListAliases.

Este exemplo usa o objeto do cliente do KMS criado no Como criar um cliente (p. 264).

Java

Para obter detalhes, consulte o Método describeKey no AWS SDK for Java API Reference.

// Describe a CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKString keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab";

DescribeKeyRequest req = new DescribeKeyRequest().withKeyId(keyId);DescribeKeyResult result = kmsClient.describeKey(req);

C#

Para obter detalhes, consulte o Método DescribeKey no AWS SDK para .NET.

// Describe a CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKString keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab";

DescribeKeyRequest describeKeyRequest = new DescribeKeyRequest(){ KeyId = keyId};

DescribeKeyResponse describeKeyResponse = kmsClient.DescribeKey(describeKeyRequest);

Python

Para obter detalhes, consulte o Método describe_key no AWS SDK para Python (boto3).

# Describe a CMK

269

Page 277: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorObtenção de IDs e ARNs de chave

das chaves mestras de cliente

# Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKkey_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'

response = kms_client.describe_key( KeyId=key_id)

Ruby

Para obter detalhes, consulte o método de instância describe_key no AWS SDK para Ruby.

# Describe a CMK

# Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKkeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'

response = kmsClient.describe_key({ key_id: keyId})

PHP

Para obter detalhes, consulte o Método DescribeKey no AWS SDK para PHP.

// Describe a CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMK$keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';

$result = $KmsClient->describeKey([ 'KeyId' => $keyId, ]);

Node.js

Para obter detalhes, consulte a Propriedade describeKey no AWS SDK for JavaScript in Node.js.

// Describe a CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKconst KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';kmsClient.describeKey({ KeyId }, (err, data) => { ...});

Obtenção de IDs e ARNs de chave das chavesmestras de clientePara obter os IDs e ARNs das chaves mestras de cliente, use a operação ListKeys.

Este exemplo usa o objeto do cliente do KMS criado no Como criar um cliente (p. 264).

Java

Para obter detalhes, consulte o Método listKeys no AWS SDK for Java API Reference.

270

Page 278: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorObtenção de IDs e ARNs de chave

das chaves mestras de cliente

// List CMKs in this account//Integer limit = 10;

ListKeysRequest req = new ListKeysRequest().withLimit(limit);ListKeysResult result = kmsClient.listKeys(req);

C#

Para obter detalhes, consulte o Método ListKeys no AWS SDK para .NET.

// List CMKs in this account//int limit = 10;

ListKeysRequest listKeysRequest = new ListKeysRequest(){ Limit = limit};ListKeysResponse listKeysResponse = kmsClient.ListKeys(listKeysRequest);

Python

Para obter detalhes, consulte o Método list_keys no AWS SDK para Python (boto3).

# List CMKs in this account

response = kms_client.list_keys( Limit=10)

Ruby

Para obter detalhes, consulte o método de instância list_keys no AWS SDK para Ruby.

# List CMKS in this account

response = kmsClient.list_keys({ limit: 10})

PHP

Para obter detalhes, consulte o Método ListKeys no AWS SDK para PHP.

// List CMKs in this account//$limit = 10;

$result = $KmsClient->listKeys([ 'Limit' => $limit,]);

Node.js

Para obter detalhes, consulte a Propriedade listKeys no AWS SDK for JavaScript in Node.js.

// List CMKs in this account

271

Page 279: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAtivação de chaves mestras de cliente

//const Limit = 10;kmsClient.listKeys({ Limit }, (err, data) => { ...});

Ativação de chaves mestras de clientePara habilitar e desabilitar uma chave mestra de cliente (CMK), use a operação EnableKey.

Este exemplo usa o objeto do cliente do KMS criado no Como criar um cliente (p. 264).

Java

Para obter detalhes sobre a implementação de Java, consulte o Método enableKey no AWS SDK forJava API Reference.

// Enable a CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKString keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab";

EnableKeyRequest req = new EnableKeyRequest().withKeyId(keyId);kmsClient.enableKey(req);

C#

Para detalhes, consulte o Método EnableKey no AWS SDK para .NET.

// Enable a CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKString keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab";

EnableKeyRequest enableKeyRequest = new EnableKeyRequest(){ KeyId = keyId};kmsClient.EnableKey(enableKeyRequest);

Python

Para obter detalhes, consulte o Método enable_key no AWS SDK para Python (boto3).

# Enable a CMK

# Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKkey_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'

response = kms_client.enable_key( KeyId=key_id)

Ruby

Para obter detalhes, consulte o método de instância enable_key no AWS SDK para Ruby.

272

Page 280: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorDesativação de chaves mestras de cliente

# Enable a CMK

# Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKkeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'

response = kmsClient.enable_key({ key_id: keyId})

PHP

Para detalhes, consulte o Método EnableKey no AWS SDK para PHP.

// Enable a CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMK$keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';

$result = $KmsClient->enableKey([ 'KeyId' => $keyId, ]);

Node.js

Para obter detalhes, consulte a Propriedade enableKey no AWS SDK for JavaScript in Node.js.

// Enable a CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKconst KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';kmsClient.enableKey({ KeyId }, (err, data) => { ...});

Desativação de chaves mestras de clientePara desativar uma CMK, use a operação DisableKey. A desativação de uma CMK impede que ela sejausada.

Este exemplo usa o objeto do cliente do KMS criado no Como criar um cliente (p. 264).

Java

Para obter detalhes, consulte o Método disableKey no AWS SDK for Java API Reference.

// Disable a CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKString keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab";

DisableKeyRequest req = new DisableKeyRequest().withKeyId(keyId);kmsClient.disableKey(req);

C#

Para obter detalhes, consulte o Método DisableKey no AWS SDK para .NET.

273

Page 281: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorDesativação de chaves mestras de cliente

// Disable a CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKString keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab";

DisableKeyRequest disableKeyRequest = new DisableKeyRequest(){ KeyId = keyId};kmsClient.DisableKey(disableKeyRequest);

Python

Para obter detalhes, consulte o Método disable_key no AWS SDK para Python (boto3).

# Disable a CMK

# Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKkey_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'

response = kms_client.disable_key( KeyId=key_id)

Ruby

Para obter detalhes, consulte o método de instância disable_key no AWS SDK para Ruby.

# Disable a CMK

# Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKkeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'

response = kmsClient.disable_key({ key_id: keyId})

PHP

Para obter detalhes, consulte o Método DisableKey no AWS SDK para PHP.

// Disable a CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMK$keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';

$result = $KmsClient->disableKey([ 'KeyId' => $keyId, ]);

Node.js

Para obter detalhes, consulte a Propriedade disableKey no AWS SDK for JavaScript in Node.js.

// Disable a CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKconst KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';

274

Page 282: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCriptografia e descriptografia de chaves de dados

kmsClient.disableKey({ KeyId }, (err, data) => { ...});

Criptografia e descriptografia de chaves de dadosOs exemplos deste tópico usam as operações Encrypt, Decrypt e ReEncrypt na API do AWS KMS.

Essas operações são projetadas para criptografar e descriptografar chaves de dados (p. 4). Elas usamuma chave mestra do cliente (p. 2) do AWS KMS (CMK) nas operações de criptografia e não podemaceitar mais de 4 KB (4.096 bytes) de dados. Embora você possa usá-las para criptografar pequenasquantidades de dados, como uma senha ou chave RSA, elas não serão projetadas para criptografar dadosde aplicativos.

Para criptografar dados de aplicativos, use os recursos de criptografia no lado do servidor de um serviçoda AWS ou uma biblioteca de criptografia de cliente, como a SDK de criptografia da AWS ou o Cliente decriptografia do Amazon S3.

Tópicos• Criptografia de uma chave de dados (p. 275)• Descriptografia de uma chave de dados (p. 277)• Nova criptografia de uma chave de dados sob uma chave mestra do cliente diferente (p. 278)

Criptografia de uma chave de dadosA operação Encrypt é projetada para criptografar chaves de dados, mas não é frequentemente usada.As operações GenerateDataKey e GenerateDataKeyWithoutPlaintext retornam chaves de dadoscriptografados. Você pode usar esse método quando estiver movendo dados criptografados para umanova região e quiser criptografar a chave de dados com uma CMK na nova região.

Este exemplo usa o objeto do cliente do KMS criado no Como criar um cliente (p. 264).

Java

Para obter detalhes, consulte o Método encrypt no AWS SDK for Java API Reference.

// Encrypt a data key//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKString keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab";ByteBuffer plaintext = ByteBuffer.wrap(new byte[]{1,2,3,4,5,6,7,8,9,0});

EncryptRequest req = new EncryptRequest().withKeyId(keyId).withPlaintext(plaintext);ByteBuffer ciphertext = kmsClient.encrypt(req).getCiphertextBlob();

C#

Para obter detalhes, consulte o Método Encrypt no AWS SDK para .NET.

// Encrypt a data key//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMK

275

Page 283: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCriptografia de uma chave de dados

String keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab";MemoryStream plaintext = new MemoryStream();plaintext.Write(new byte[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 }, 0, 10);

EncryptRequest encryptRequest = new EncryptRequest(){ KeyId = keyId, Plaintext = plaintext};MemoryStream ciphertext = kmsClient.Encrypt(encryptRequest).CiphertextBlob;

Python

Para obter detalhes, consulte o Método encrypt no AWS SDK para Python (boto3).

# Encrypt a data key

# Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKkey_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'plaintext = b'\x01\x02\x03\x04\x05\x06\x07\x08\x09\x00'

response = kms_client.encrypt( KeyId=key_id, Plaintext=plaintext)

ciphertext = response['CiphertextBlob']

Ruby

Para obter detalhes, consulte o método de instância encrypt no AWS SDK para Ruby.

# Encrypt a data key

# Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKkeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'plaintext = "\x01\x02\x03\x04\x05\x06\x07\x08\x09\x00"

response = kmsClient.encrypt({ key_id: keyId, plaintext: plaintext})

ciphertext = response.ciphertext_blob

PHP

Para obter detalhes, consulte o Método Encrypt no AWS SDK para PHP.

// Encrypt a data key//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMK$keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';$message = pack('c*',1,2,3,4,5,6,7,8,9,0);

$result = $KmsClient->encrypt([ 'KeyId' => $keyId, 'Plaintext' => $message, ]);

$ciphertext = $result['CiphertextBlob'];

276

Page 284: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorDescriptografia de uma chave de dados

Node.js

Para obter detalhes, consulte a Propriedade encrypt no AWS SDK for JavaScript in Node.js.

// Encrypt a data key//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKconst KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';const Plaintext = Buffer.from([1, 2, 3, 4, 5, 6, 7, 8, 9, 0]);kmsClient.encrypt({ KeyId, Plaintext }, (err, data) => { if (err) console.log(err, err.stack); // an error occurred else { const { CiphertextBlob } = data; ... }});

Descriptografia de uma chave de dadosPara descriptografar uma chave de dados, use a operação Decrypt.

O ciphertextBlob que você especifica deve ser o valor do campo CiphertextBlob de uma respostaGenerateDataKey, GenerateDataKeyWithoutPlaintext ou Encrypt.

Este exemplo usa o objeto do cliente do KMS criado no Como criar um cliente (p. 264).

Java

Para obter detalhes, consulte o Método decrypt no AWS SDK for Java API Reference.

// Decrypt a data key//

ByteBuffer ciphertextBlob = Place your ciphertext here;

DecryptRequest req = new DecryptRequest().withCiphertextBlob(ciphertextBlob);ByteBuffer plainText = kmsClient.decrypt(req).getPlaintext();

C#

Para obter detalhes, consulte o Método Decrypt no AWS SDK para .NET.

// Decrypt a data key//

MemoryStream ciphertextBlob = new MemoryStream();// Write ciphertext to memory stream

DecryptRequest decryptRequest = new DecryptRequest(){ CiphertextBlob = ciphertextBlob};MemoryStream plainText = kmsClient.Decrypt(decryptRequest).Plaintext;

Python

Para obter detalhes, consulte o Método decrypt no AWS SDK para Python (boto3).

# Decrypt a data key

277

Page 285: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorNova criptografia de uma chave de dadossob uma chave mestra do cliente diferente

ciphertext = 'Place your ciphertext here'

response = kms_client.decrypt( CiphertextBlob=ciphertext)

plaintext = response['Plaintext']

Ruby

Para obter detalhes, consulte o método de instância decrypt no AWS SDK para Ruby.

# Decrypt a data key

ciphertext = 'Place your ciphertext here'ciphertext_packed = [ciphertext].pack("H*")

response = kmsClient.decrypt({ ciphertext_blob: ciphertext_packed})

plaintext = response.plaintext

PHP

Para obter detalhes, consulte o Método Decrypt no AWS SDK para PHP.

// Decrypt a data key//$ciphertext = 'Place your cipher text blob here';

$result = $KmsClient->decrypt([ 'CiphertextBlob' => $ciphertext]);

$plaintext = $result['Plaintext'];

Node.js

Para obter detalhes, consulte a Propriedade decrypt no AWS SDK for JavaScript in Node.js.

// Decrypt a data key//const CiphertextBlob = 'Place your cipher text blob here';kmsClient.decrypt({ CiphertextBlob }, (err, data) => { if (err) console.log(err, err.stack); // an error occurred else { const { Plaintext } = data; ... }});

Nova criptografia de uma chave de dados sob umachave mestra do cliente diferentePara descriptografar uma chave de dados criptografados e, logo em seguida, recriptografá-la sob umachave mestra do cliente (CMK) diferente, use a operação ReEncrypt. As operações são realizadas

278

Page 286: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorNova criptografia de uma chave de dadossob uma chave mestra do cliente diferente

inteiramente no lado servidor dentro do AWS KMS, para nunca exporem o texto não criptografado fora doAWS KMS.

O ciphertextBlob que você especifica deve ser o valor do campo CiphertextBlob de uma respostaGenerateDataKey, GenerateDataKeyWithoutPlaintext ou Encrypt.

Este exemplo usa o objeto do cliente do KMS criado no Como criar um cliente (p. 264).

Java

Para obter detalhes, consulte o Método reEncrypt no AWS SDK for Java API Reference.

// Re-encrypt a data key

ByteBuffer sourceCiphertextBlob = Place your ciphertext here;

// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKString destinationKeyId = "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321";

ReEncryptRequest req = new ReEncryptRequest();req.setCiphertextBlob(sourceCiphertextBlob);req.setDestinationKeyId(destinationKeyId);ByteBuffer destinationCipherTextBlob = kmsClient.reEncrypt(req).getCiphertextBlob();

C#

Para obter detalhes, consulte o Método ReEncrypt no AWS SDK para .NET.

// Re-encrypt a data key

MemoryStream sourceCiphertextBlob = new MemoryStream();// Write ciphertext to memory stream

// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKString destinationKeyId = "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321";

ReEncryptRequest reEncryptRequest = new ReEncryptRequest(){ CiphertextBlob = sourceCiphertextBlob, DestinationKeyId = destinationKeyId};MemoryStream destinationCipherTextBlob = kmsClient.ReEncrypt(reEncryptRequest).CiphertextBlob;

Python

Para obter detalhes, consulte o Método re_encrypt no AWS SDK para Python (boto3).

# Re-encrypt a data keyciphertext = 'Place your ciphertext here'

# Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKkey_id = 'arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321'

response = kms_client.re_encrypt( CiphertextBlob=ciphertext, DestinationKeyId=key_id)

279

Page 287: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo trabalhar com políticas de chaves

destination_ciphertext_blob = response['CiphertextBlob']

Ruby

Para obter detalhes, consulte o método de instância re_encrypt no AWS SDK para Ruby.

# Re-encrypt a data key

ciphertext = 'Place your ciphertext here'ciphertext_packed = [ciphertext].pack("H*")

# Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKkeyId = 'arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321'

response = kmsClient.re_encrypt({ ciphertext_blob: ciphertext_packed, destination_key_id: keyId})

destination_ciphertext_blob = response.ciphertext_blob.unpack('H*')

PHP

Para obter detalhes, consulte o Método ReEncrypt no AWS SDK para PHP.

// Re-encrypt a data key

$ciphertextBlob = 'Place your ciphertext here';

// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMK$keyId = 'arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321';

$result = $KmsClient->reEncrypt([ 'CiphertextBlob' => $ciphertextBlob, 'DestinationKeyId' => $keyId, ]);

Node.js

Para obter detalhes, consulte a Propriedade reEncrypt no AWS SDK for JavaScript in Node.js.

// Re-encrypt a data keyconst CiphertextBlob = 'Place your cipher text blob here';// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKconst DestinationKeyId = 'arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321';kmsClient.reEncrypt({ CiphertextBlob, DestinationKeyId }, (err, data) => { ...});

Como trabalhar com políticas de chavesOs exemplos deste tópico usam a API do AWS KMS para visualizar e alterar políticas das chaves mestrasde cliente (CMKs) do AWS KMS. Para obter detalhes sobre como usar políticas de chaves e políticasdo IAM para gerenciar o acesso a suas CMKs, consulte Autenticação e controle de acesso do AWSKMS (p. 32).

Tópicos

280

Page 288: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo listar nomes de política de chaves

• Como listar nomes de política de chaves (p. 281)• Como obter uma política de chaves (p. 282)• Como configurar uma política de chaves (p. 284)

Como listar nomes de política de chavesPara obter os nomes das principais políticas para uma chave mestra de cliente, use a operaçãoListKeyPolicies. O único nome de política de chaves que ela retorna é padrão.

Este exemplo usa o objeto do cliente do KMS criado no Como criar um cliente (p. 264).

Java

Para obter detalhes sobre a implementação de Java, consulte o Método listKeyPolicies no AWS SDKfor Java API Reference.

// List key policies//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKString keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab";

ListKeyPoliciesRequest req = new ListKeyPoliciesRequest().withKeyId(keyId);ListKeyPoliciesResult result = kmsClient.listKeyPolicies(req);

C#

Para obter detalhes, consulte o Método ListKeyPolicies no AWS SDK para .NET.

// List key policies//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKString keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab";

ListKeyPoliciesRequest listKeyPoliciesRequest = new ListKeyPoliciesRequest(){ KeyId = keyId};ListKeyPoliciesResponse listKeyPoliciesResponse = kmsClient.ListKeyPolicies(listKeyPoliciesRequest);

Python

Para obter detalhes, consulte o Método list_key_policies no AWS SDK para Python (boto3).

# List key policies

# Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKkey_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'

response = kms_client.list_key_policies( KeyId=key_id)

Ruby

Para obter detalhes, consulte o método de instância list_key_policies no AWS SDK para Ruby.

281

Page 289: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo obter uma política de chaves

# List key policies

# Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKkeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'

response = kmsClient.list_key_policies({ key_id: keyId})

PHP

Para obter detalhes, consulte o Método ListKeyPolicies no AWS SDK para PHP.

// List key policies//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMK$keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';

$result = $KmsClient->listKeyPolicies([ 'KeyId' => $keyId]);

Node.js

Para obter detalhes, consulte a Propriedade listKeyPolicies no AWS SDK for JavaScript in Node.js.

// List key policies//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKconst KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';

kmsClient.listKeyPolicies({ KeyId }, (err, data) => { ...});

Como obter uma política de chavesPara obter a política de chaves para uma chave mestra de cliente, use a operação GetKeyPolicy.

GetKeyPolicy exige um nome de política. O único nome de política válido é padrão.

Este exemplo usa o objeto do cliente do KMS criado no Como criar um cliente (p. 264).

Java

Para obter detalhes, consulte o Método getKeyPolicy no AWS SDK for Java API Reference.

// Get the policy for a CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKString keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab";String policyName = "default";

GetKeyPolicyRequest req = new GetKeyPolicyRequest().withKeyId(keyId).withPolicyName(policyName);GetKeyPolicyResult result = kmsClient.getKeyPolicy(req);

282

Page 290: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo obter uma política de chaves

C#

Para obter detalhes, consulte o Método GetKeyPolicy no AWS SDK para .NET.

// Get the policy for a CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKString keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab";String policyName = "default";

GetKeyPolicyRequest getKeyPolicyRequest = new GetKeyPolicyRequest(){ KeyId = keyId, PolicyName = policyName};GetKeyPolicyResponse getKeyPolicyResponse = kmsClient.GetKeyPolicy(getKeyPolicyRequest);

Python

Para obter detalhes, consulte o Método get_key_policy no AWS SDK para Python (boto3).

# Get the policy for a CMK

# Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKkey_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'policy_name = 'default'

response = kms_client.get_key_policy( KeyId=key_id, PolicyName=policy_name)

Ruby

Para obter detalhes, consulte o método de instância get_key_policy no AWS SDK para Ruby.

# Get the policy for a CMK

# Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKkeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'policyName = 'default'

response = kmsClient.get_key_policy({ key_id: keyId, policy_name: policyName})

PHP

Para obter detalhes, consulte o Método GetKeyPolicy no AWS SDK para PHP.

// Get the policy for a CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMK$keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';$policyName = "default";

$result = $KmsClient->getKeyPolicy([ 'KeyId' => $keyId, 'PolicyName' => $policyName

283

Page 291: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo configurar uma política de chaves

]);

Node.js

Para obter detalhes, consulte a Propriedade getKeyPolicy no AWS SDK for JavaScript in Node.js.

// Get the policy for a CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKconst KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';const PolicyName = 'default';kmsClient.getKeyPolicy({ KeyId, PolicyName }, (err, data) => { ...});

Como configurar uma política de chavesPara estabelecer ou alterar uma política de chaves de uma CMK, use a operação PutKeyPolicy.

PutKeyPolicy exige um nome de política. O único nome de política válido é padrão.

Este exemplo usa o objeto do cliente do KMS criado no Como criar um cliente (p. 264).

Java

Para obter detalhes, consulte o Método putKeyPolicy no AWS SDK for Java API Reference.

// Set a key policy for a CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKString keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab";String policyName = "default";String policy = "{" + " \"Version\": \"2012-10-17\"," + " \"Statement\": [{" + " \"Sid\": \"Allow access for ExampleUser\"," + " \"Effect\": \"Allow\"," + // Replace the following user ARN with one for a real user. " \"Principal\": {\"AWS\": \"arn:aws:iam::111122223333:user/ExampleUser\"}," + " \"Action\": [" + " \"kms:Encrypt\"," + " \"kms:GenerateDataKey*\"," + " \"kms:Decrypt\"," + " \"kms:DescribeKey\"," + " \"kms:ReEncrypt*\"" + " ]," + " \"Resource\": \"*\"" + " }]" + "}"; PutKeyPolicyRequest req = new PutKeyPolicyRequest().withKeyId(keyId).withPolicy(policy).withPolicyName(policyName);kmsClient.putKeyPolicy(req);

C#

Para obter detalhes, consulte o Método PutKeyPolicy no AWS SDK para .NET.

284

Page 292: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo configurar uma política de chaves

// Set a key policy for a CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKString keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab";String policyName = "default";String policy = "{" + " \"Version\": \"2012-10-17\"," + " \"Statement\": [{" + " \"Sid\": \"Allow access for ExampleUser\"," + " \"Effect\": \"Allow\"," + // Replace the following user ARN with one for a real user. " \"Principal\": {\"AWS\": \"arn:aws:iam::111122223333:user/ExampleUser\"}," + " \"Action\": [" + " \"kms:Encrypt\"," + " \"kms:GenerateDataKey*\"," + " \"kms:Decrypt\"," + " \"kms:DescribeKey\"," + " \"kms:ReEncrypt*\"" + " ]," + " \"Resource\": \"*\"" + " }]" + "}"; PutKeyPolicyRequest putKeyPolicyRequest = new PutKeyPolicyRequest(){ KeyId = keyId, Policy = policy, PolicyName = policyName};kmsClient.PutKeyPolicy(putKeyPolicyRequest);

Python

Para obter detalhes, consulte o Método put_key_policy no AWS SDK para Python (boto3).

# Set a key policy for a CMK

# Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKkey_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'policy_name = 'default'policy = """{ "Version": "2012-10-17", "Statement": [{ "Sid": "Allow access for ExampleUser", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:user/ExampleUser"}, "Action": [ "kms:Encrypt", "kms:GenerateDataKey*", "kms:Decrypt", "kms:DescribeKey", "kms:ReEncrypt*" ], "Resource": "*" }]}"""

response = kms_client.put_key_policy( KeyId=key_id, Policy=policy, PolicyName=policy_name

285

Page 293: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo configurar uma política de chaves

)

Ruby

Para obter detalhes, consulte o método de instância put_key_policy no AWS SDK para Ruby.

# Set a key policy for a CMK

# Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKkeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'policyName = 'default'policy = "{\n\n "Version": "2012-10-17",\n "Statement": [{\n "Sid": "Allow access for ExampleUser",\n "Effect": "Allow",\n "Principal": {"AWS": "arn:aws:iam::111122223333:user/ExampleUser"},\n "Action": [\n "kms:Encrypt",\n "kms:GenerateDataKey*",\n "kms:Decrypt",\n "kms:DescribeKey",\n "kms:ReEncrypt*"\n ],\n "Resource": "*"\n }]\n}\n"

response = kmsClient.put_key_policy({ key_id: keyId, policy: policy, policy_name: policyName})

PHP

Para obter detalhes, consulte o Método PutKeyPolicy no AWS SDK para PHP.

// Set a key policy for a CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMK$keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';$policyName = "default";

$result = $KmsClient->putKeyPolicy([ 'KeyId' => $keyId, 'PolicyName' => $policyName, 'Policy' => '{ "Version": "2012-10-17", "Id": "custom-policy-2016-12-07", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/root" }, "Action": [ "kms:*" ], "Resource": "*" }, { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": [ "kms:Encrypt*", "kms:GenerateDataKey*",

286

Page 294: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo trabalhar com concessões

"kms:Decrypt*", "kms:DescribeKey*", "kms:ReEncrypt*" ], "Resource": "*" } ] } ' ]);

Node.js

Para obter detalhes, consulte a Propriedade putKeyPolicy no AWS SDK para Node.js.

// Set a key policy for a CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKconst KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';const PolicyName = 'default';const Policy = `{ "Version": "2012-10-17", "Id": "custom-policy-2016-12-07", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:root" }, "Action": "kms:*", "Resource": "*" }, { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": [ "kms:Encrypt*", "kms:GenerateDataKey*", "kms:Decrypt*", "kms:DescribeKey*", "kms:ReEncrypt*" ], "Resource": "*" } ]}`; // The key policy document kmsClient.putKeyPolicy({ KeyId, Policy, PolicyName }, (err, data) => { ...});

Como trabalhar com concessõesOs exemplos deste tópico usam a API do AWS KMS para criar, visualizar, desativar e revogar concessõesnas chaves mestras de cliente (CMKs) do AWS KMS.

Tópicos• Como criar uma concessão (p. 288)

287

Page 295: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo criar uma concessão

• Visualização de concessões (p. 289)• Como remover uma concessão (p. 291)• Como revogar uma concessão (p. 292)

Como criar uma concessãoPara criar uma concessão para uma chave mestra de cliente do AWS KMS, use a operação CreateGrant.

Este exemplo usa o objeto do cliente do KMS criado no Como criar um cliente (p. 264).

Java

Para obter detalhes, consulte o Método createGrant no AWS SDK for Java API Reference.

// Create a grant//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKString keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab";String granteePrincipal = "arn:aws:iam::111122223333:user/Alice";String operation = GrantOperation.Encrypt;

CreateGrantRequest req = new CreateGrantRequest();req.setKeyId(keyId);req.setGranteePrincipal(granteePrincipal);req.setOperation(operation);

CreateGrantResult result = kmsClient.createGrant(req);

C#

Para obter detalhes, consulte o Método CreateGrant no AWS SDK para .NET.

// Create a grant//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKString keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab";String granteePrincipal = "arn:aws:iam::111122223333:user/Alice";String operation = GrantOperation.Encrypt;

CreateGrantRequest createGrantRequest = new CreateGrantRequest(){ KeyId = keyId, GranteePrincipal = granteePrincipal, Operations = new List<string>() { operation }};

CreateGrantResponse createGrantResult = kmsClient.CreateGrant(createGrantRequest);

Python

Para obter detalhes, consulte o Método create_grant no AWS SDK para Python (boto3).

# Create a grant

# Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKkey_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'grantee_principal = 'arn:aws:iam::111122223333:user/Alice'operation = 'Encrypt'

288

Page 296: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorVisualização de concessões

response = kms_client.create_grant( KeyId=key_id, GranteePrincipal=grantee_principal, Operations=operation)

Ruby

Para obter detalhes, consulte o método de instância create_grant no AWS SDK para Ruby.

# Create a grant

# Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKkeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'granteePrincipal = 'arn:aws:iam::111122223333:user/Alice'operation = ['Encrypt']

response = kmsClient.create_grant({ key_id: keyId, grantee_principal: granteePrincipal, operations: operation})

PHP

Para obter detalhes, consulte o Método CreateGrant no AWS SDK para PHP.

// Create a grant//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMK$keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';$granteePrincipal = "arn:aws:iam::111122223333:user/Alice";$operation = ['Encrypt', 'Decrypt']

$result = $KmsClient->createGrant([ 'GranteePrincipal' => $granteePrincipal, 'KeyId' => $keyId, 'Operations' => $operation ]);

Node.js

Para obter detalhes, consulte a Propriedade createGrant no AWS SDK for JavaScript in Node.js.

// Create a grant//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKconst KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';const GranteePrincipal = 'arn:aws:iam::111122223333:user/Alice';const Operations: ["Encrypt", "Decrypt"];kmsClient.createGrant({ KeyId, GranteePrincipal, Operations }, (err, data) => { ...});

Visualização de concessõesPara obter informações detalhadas sobre as concessões em uma chave mestra de cliente do AWS KMS,use a operação ListGrants.

289

Page 297: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorVisualização de concessões

Este exemplo usa o objeto do cliente do KMS criado no Como criar um cliente (p. 264).

Java

Para obter detalhes sobre a implementação de Java, consulte o Método listGrants no AWS SDK forJava API Reference.

// Listing grants on a CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKString keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab";Integer limit = 10;

ListGrantsRequest req = new ListGrantsRequest().withKeyId(keyId).withLimit(limit);ListGrantsResult result = kmsClient.listGrants(req);

C#

Para obter detalhes, consulte o Método ListGrants no AWS SDK para .NET.

// Listing grants on a CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKString keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab";int limit = 10;

ListGrantsRequest listGrantsRequest = new ListGrantsRequest(){ KeyId = keyId, Limit = limit};ListGrantsResponse listGrantsResponse = kmsClient.ListGrants(listGrantsRequest);

Python

Para obter detalhes, consulte o Método list_grants no AWS SDK para Python (boto3).

# Listing grants on a CMK

# Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKkey_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'

response = kms_client.list_grants( KeyId=key_id, Limit=10)

Ruby

Para obter detalhes, consulte o método de instância list_grants no AWS SDK para Ruby.

# Listing grants on a CMK

# Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKkeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'

response = kmsClient.list_grants({ key_id: keyId, limit: 10

290

Page 298: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo remover uma concessão

})

PHP

Para obter detalhes, consulte o Método ListGrants no AWS SDK para PHP.

// Listing grants on a CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMK$keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';$limit = 10;

$result = $KmsClient->listGrants([ 'KeyId' => $keyId, 'Limit' => $limit,]);

Node.js

Para obter detalhes, consulte a Propriedade listGrants no AWS SDK for JavaScript in Node.js.

// Listing grants on a CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKconst KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';const Limit = 10;kmsClient.listGrants({ KeyId, Limit }, (err, data) => { ...});

Como remover uma concessãoPara remover uma concessão de uma chave mestra de cliente do AWS KMS, use a operação RetireGrant.Você deve remover uma concessão para limpá-la depois de terminar de usá-la.

Este exemplo usa o objeto do cliente do KMS criado no Como criar um cliente (p. 264).

Java

Para obter detalhes, consulte o Método retireGrant no AWS SDK for Java API Reference.

// Retire a grant//String grantToken = Place your grant token here;

RetireGrantRequest req = new RetireGrantRequest().withGrantToken(grantToken);kmsClient.retireGrant(req);

C#

Para obter detalhes, consulte o Método RetireGrant no AWS SDK para .NET.

// Retire a grant//String grantToken = "Place your grant token here";

RetireGrantRequest retireGrantRequest = new RetireGrantRequest(){

291

Page 299: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo revogar uma concessão

GrantToken = grantToken};kmsClient.RetireGrant(retireGrantRequest);

Python

Para obter detalhes, consulte o Método retire_grant no AWS SDK para Python (boto3).

# Retire a grant

grant_token = Place your grant token here

response = kms_client.retire_grant( GrantToken=grant_token)

Ruby

Para obter detalhes, consulte o método de instância retire_grant no AWS SDK para Ruby.

# Retire a grant

grantToken = Place your grant token here

response = kmsClient.retire_grant({ grant_token: grantToken})

PHP

Para obter detalhes, consulte o Método RetireGrant no AWS SDK para PHP.

// Retire a grant//$grantToken = 'Place your grant token here';

$result = $KmsClient->retireGrant([ 'GrantToken' => $grantToken,]);

Node.js

Para obter detalhes, consulte a Propriedade retireGrant no AWS SDK for JavaScript in Node.js.

// Retire a grant//const GrantToken = 'Place your grant token here';kmsClient.retireGrant({ GrantToken }, (err, data) => { ...});

Como revogar uma concessãoPara revogar uma concessão para uma chave mestra de cliente do AWS KMS, use a operaçãoRevokeGrant. Você pode revogar uma concessão para negar explicitamente as operações que dependemdela.

Este exemplo usa o objeto do cliente do KMS criado no Como criar um cliente (p. 264).

292

Page 300: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo revogar uma concessão

Java

Para obter detalhes, consulte o Método revokeGrant no AWS SDK for Java API Reference.

// Revoke a grant on a CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKString keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab";String grantId = "grant1";

RevokeGrantRequest req = new RevokeGrantRequest().withKeyId(keyId).withGrantId(grantId);kmsClient.revokeGrant(req);

C#

Para obter detalhes, consulte o Método RevokeGrant no AWS SDK para .NET.

// Revoke a grant on a CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKString keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab";String grantId = "grant1";

RevokeGrantRequest revokeGrantRequest = new RevokeGrantRequest(){ KeyId = keyId, GrantId = grantId};kmsClient.RevokeGrant(revokeGrantRequest);

Python

Para obter detalhes, consulte o Método revoke_grant no AWS SDK para Python (boto3).

# Revoke a grant on a CMK

// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKkey_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'grant_id = 'grant1'

response = kms_client.revoke_grant( KeyId=key_id, GrantId=grant_id)

Ruby

Para obter detalhes, consulte o método de instância revoke_grant no AWS SDK para Ruby.

# Revoke a grant on a CMK

# Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKkeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'grantId = 'grant1'

response = kmsClient.revoke_grant({ key_id: keyId, grant_id: grantId

293

Page 301: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorTrabalhar com aliases

})

PHP

Para obter detalhes, consulte o Método RevokeGrant no AWS SDK para PHP.

// Revoke a grant on a CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMK$keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';$grantId = "grant1";

$result = $KmsClient->revokeGrant([ 'KeyId' => $keyId, 'GrantId' => $grantId,]);

Node.js

Para obter detalhes, consulte a Propriedade revokeGrant no AWS SDK for JavaScript in Node.js.

// Revoke a grant on a CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKconst KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';const GrantId = 'grant1';kmsClient.revokeGrant({ GrantId, KeyId }, (err, data) => { ...});

Trabalhar com aliasesOs exemplos neste tópico usam a API do AWS KMS para criar, visualizar, atualizar e excluir aliases.

Um alias é um nome de exibição opcional para uma chave mestra de cliente (CMK) (p. 2). Cada CMK podeter vários aliases, mas cada alias aponta para apenas uma CMK. O nome do alias deve ser exclusivo naconta e na região da AWS. Para simplificar o código que é executado em várias regiões, você pode usar omesmo nome de alias, mas apontar para outra CMK em cada região.

Você pode usar as operações da API do AWS KMS para listar, criar e excluir aliases. Você também podeatualizar um alias, o que associa um alias existente com uma CMK diferente. Não há operação para editarou alterar um nome de alias. Se você criar um alias para uma CMK que já tem um alias, a operação criaráoutro alias para a mesma CMK. Para alterar um nome de alias, exclua o alias atual e, em seguida, crie umnovo alias para a CMK.

Como um alias não é uma propriedade de uma CMK, ele pode ser associado a e desassociado de umaCMK existente sem alterar as propriedades da CMK. A exclusão de um alias não exclui a CMK subjacente.

Você pode usar um alias como o valor do parâmetro KeyId apenas nas seguintes operações:

• DescribeKey

• Encrypt

• GenerateDataKey

• GenerateDataKeyWithoutPlaintext

• ReEncrypt

294

Page 302: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo criar um alias

Os aliases são criados em uma conta da AWS e são conhecidos apenas para a conta onde são criados.Você não pode usar um nome de alias ou ARN de alias para identificar uma CMK em outra conta da AWS.

Para especificar um alias, use o nome do alias ou ARN do alias, conforme mostrado no exemplo a seguir.Em qualquer um dos casos, insira "alias/" no início do nome do alias.

// Fully specified ARNarn:aws:kms:us-west-2:111122223333:alias/ExampleAlias

Tópicos• Como criar um alias (p. 295)• Como listar aliases (p. 297)• Atualização de um alias (p. 299)• Como excluir um alias (p. 301)

Como criar um aliasPara criar um alias, use a operação CreateAlias. O alias deve ser exclusivo na conta e na região. Se vocêcriar um alias para uma CMK que já tem um alias, a operação CreateAlias criará outro alias para amesma CMK. Ela não substitui o alias existente.

Você não pode criar um alias que comece com aws/. O prefixo aws/ é reservado pela Amazon WebServices para CMKs gerenciadas pela AWS (p. 2).

Este exemplo usa o objeto do cliente do KMS criado no Como criar um cliente (p. 264).

Java

Para obter detalhes, consulte o Método createAlias no AWS SDK for Java API Reference.

// Create an alias for a CMK//String aliasName = "alias/projectKey1";// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKString targetKeyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab";

CreateAliasRequest req = new CreateAliasRequest().withAliasName(aliasName).withTargetKeyId(targetKeyId);kmsClient.createAlias(req);

C#

Para obter detalhes, consulte o Método CreateAlias no AWS SDK para .NET.

// Create an alias for a CMK//String aliasName = "alias/projectKey1";// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKString targetKeyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab";

CreateAliasRequest createAliasRequest = new CreateAliasRequest(){ AliasName = aliasName, TargetKeyId = targetKeyId};

295

Page 303: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo criar um alias

kmsClient.CreateAlias(createAliasRequest);

Python

Para obter detalhes, consulte o Método create_alias no AWS SDK para Python (boto3).

# Create an alias for a CMK

alias_name = 'alias/projectKey1'# Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKtarget_key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'

response = kms_client.create_alias( AliasName=alias_name, TargetKeyId=key_id)

Ruby

Para obter detalhes, consulte o método de instância create_alias no AWS SDK para Ruby.

# Create an alias for a CMK

aliasName = 'alias/projectKey1'# Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKtargetKeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'

response = kmsClient.create_alias({ alias_name: aliasName, target_key_id: targetKeyId})

PHP

Para obter detalhes, consulte o Método CreateAlias no AWS SDK para PHP.

// Create an alias for a CMK//$aliasName = "alias/projectKey1";// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMK$keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';

$result = $KmsClient->createAlias([ 'AliasName' => $aliasName, 'TargetKeyId' => $keyId, ]);

Node.js

Para obter detalhes, consulte a Propriedade createAlias no AWS SDK for JavaScript in Node.js.

// Create an alias for a CMK//const AliasName = 'alias/projectKey1';

// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKconst TargetKeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';

296

Page 304: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo listar aliases

kmsClient.createAlias({ AliasName, TargetKeyId }, (err, data) => { ...});

Como listar aliasesPara listar os aliases na conta e na região, use a operação ListAliases.

Por padrão, o comando ListAliases gera todos os aliases na conta e na região. Isso inclui os aliasesque você criou e associou às CMKs gerenciadas pelo cliente (p. 2) e os aliases que a AWS criou eassociou às suas CMKs gerenciadas pela AWS (p. 2). A resposta também pode incluir aliases sem campoTargetKeyId. São aliases predefinidos criados pela AWS, mas que ainda não estão associados a umaCMK.

Este exemplo usa o objeto do cliente do KMS criado no Como criar um cliente (p. 264).

Java

Para obter detalhes sobre a implementação de Java, consulte o Método listAliases no AWS SDK forJava API Reference.

// List the aliases in this AWS account//Integer limit = 10;

ListAliasesRequest req = new ListAliasesRequest().withLimit(limit);ListAliasesResult result = kmsClient.listAliases(req);

C#

Para obter detalhes, consulte o Método ListAliases no AWS SDK para .NET.

// List the aliases in this AWS account//int limit = 10;

ListAliasesRequest listAliasesRequest = new ListAliasesRequest(){ Limit = limit};ListAliasesResponse listAliasesResponse = kmsClient.ListAliases(listAliasesRequest);

Python

Para obter detalhes, consulte o Método list_aliases no AWS SDK para Python (boto3).

# List the aliases in this AWS account

response = kms_client.list_aliases( Limit=10)

Ruby

Para obter detalhes, consulte o método de instância list_aliases no AWS SDK para Ruby.

# List the aliases in this AWS account

297

Page 305: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo listar aliases

response = kmsClient.list_aliases({ limit: 10})

PHP

Para obter detalhes, consulte o Método List Aliases no AWS SDK para PHP.

// List the aliases in this AWS account//$limit = 10;

$result = $KmsClient->listAliases([ 'Limit' => $limit,]);

Node.js

Para obter detalhes, consulte a Propriedade listAliases no AWS SDK for JavaScript in Node.js.

// List the aliases in this AWS account//const Limit = 10;kmsClient.listAliases({ Limit }, (err, data) => { ...});

Para relacionar apenas os aliases que estão associados a uma determinada CMK, use o parâmetroKeyId. Seu valor pode ser o ID ou o nome de recurso da Amazon (ARN) de qualquer CMK na região.Você não pode especificar um nome de alias ou ARN de alias.

Java

Para obter detalhes sobre a implementação de Java, consulte o Método listAliases no AWS SDK forJava API Reference.

// List the aliases for one CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKString keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab";

ListAliasesRequest req = new ListAliasesRequest().withKeyId(keyId);ListAliasesResult result = kmsClient.listAliases(req);

C#

Para obter detalhes, consulte o Método ListAliases no AWS SDK para .NET.

// List the aliases for one CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKString keyId = "arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab";

ListAliasesRequest listAliasesRequest = new ListAliasesRequest(){ KeyId = keyId

298

Page 306: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAtualização de um alias

};ListAliasesResponse listAliasesResponse = kmsClient.ListAliases(listAliasesRequest);

Python

Para obter detalhes, consulte o Método list_aliases no AWS SDK para Python (boto3).

# List the aliases for one CMK

# Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKkey_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'

response = kms_client.list_aliases( KeyId=key_id)

Ruby

Para obter detalhes, consulte o método de instância list_aliases no AWS SDK para Ruby.

# List the aliases for one CMK

# Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKkeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'

response = kmsClient.list_aliases({ key_id: keyId})

PHP

Para obter detalhes, consulte o Método List Aliases no AWS SDK para PHP.

// List the aliases for one CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMK$keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';

$result = $KmsClient->listAliases([ 'KeyId' => $keyId,]);

Node.js

Para obter detalhes, consulte a Propriedade listAliases no AWS SDK for JavaScript in Node.js.

// List the aliases for one CMK//// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKconst KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab';kmsClient.listAliases({ KeyId }, (err, data) => { ...});

Atualização de um aliasPara associar um alias existente a uma CMK diferente, use a operação UpdateAlias.

299

Page 307: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAtualização de um alias

Este exemplo usa o objeto do cliente do KMS criado no Como criar um cliente (p. 264).

Java

Para obter detalhes sobre a implementação de Java, consulte o Método updateAlias no AWS SDK forJava API Reference.

// Updating an alias//String aliasName = "alias/projectKey1";// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKString targetKeyId = "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321";

UpdateAliasRequest req = new UpdateAliasRequest() .withAliasName(aliasName) .withTargetKeyId(targetKeyId); kmsClient.updateAlias(req);

C#

Para obter detalhes, consulte o Método UpdateAlias no AWS SDK para .NET.

// Updating an alias//String aliasName = "alias/projectKey1";// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKString targetKeyId = "arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321";

UpdateAliasRequest updateAliasRequest = new UpdateAliasRequest(){ AliasName = aliasName, TargetKeyId = targetKeyId};

kmsClient.UpdateAlias(updateAliasRequest);

Python

Para obter detalhes, consulte o Método update_alias no AWS SDK para Python (boto3).

# Updating an alias

alias_name = 'alias/projectKey1'# Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKkey_id = 'arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321'

response = kms_client.update_alias( AliasName=alias_name, TargetKeyID=key_id)

Ruby

Para obter detalhes, consulte o método de instância update_alias no AWS SDK para Ruby.

# Updating an alias

aliasName = 'alias/projectKey1'# Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMK

300

Page 308: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo excluir um alias

keyId = 'arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321'

response = kmsClient.update_alias({ alias_name: aliasName, target_key_id: keyId})

PHP

Para obter detalhes, consulte o Método UpdateAlias no AWS SDK para PHP.

// Updating an alias//$aliasName = "alias/projectKey1";

// Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMK$keyId = 'arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321';

$result = $KmsClient->updateAlias([ 'AliasName' => $aliasName, 'TargetKeyId' => $keyId, ]);

Node.js

Para obter detalhes, consulte a Propriedade updateAlias no AWS SDK for JavaScript in Node.js.

// Updating an alias//const AliasName = 'alias/projectKey1'; // Substitua o seguinte ARN da CMK fictício por um ID ou ARN válido da CMKconst TargetKeyId = 'arn:aws:kms:us-west-2:111122223333:key/0987dcba-09fe-87dc-65ba-ab0987654321';kmsClient.updateAlias({ AliasName, TargetKeyId }, (err, data) => { ...});

Como excluir um aliasPara excluir um alias, use a operação DeleteAlias. A exclusão de um alias não tem efeito sobre a CMKsubjacente.

Este exemplo usa o objeto do cliente do KMS criado no Como criar um cliente (p. 264).

Java

Para obter detalhes, consulte o Método deleteAlias no AWS SDK for Java API Reference.

// Delete an alias for a CMK//String aliasName = "alias/projectKey1";

DeleteAliasRequest req = new DeleteAliasRequest().withAliasName(aliasName);kmsClient.deleteAlias(req);

C#

Para obter detalhes, consulte o Método DeleteAlias no AWS SDK para .NET.

301

Page 309: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo excluir um alias

// Delete an alias for a CMK//String aliasName = "alias/projectKey1";

DeleteAliasRequest deleteAliasRequest = new DeleteAliasRequest(){ AliasName = aliasName};kmsClient.DeleteAlias(deleteAliasRequest);

Python

Para obter detalhes, consulte o Método delete_alias no AWS SDK para Python (boto3).

# Delete an alias for a CMK

alias_name = 'alias/projectKey1'

response = kms_client.delete_alias( AliasName=alias_name)

Ruby

Para obter detalhes, consulte o método de instância delete_alias no AWS SDK para Ruby.

# Delete an alias for a CMK

aliasName = 'alias/projectKey1'

response = kmsClient.delete_alias({ alias_name: aliasName})

PHP

Para obter detalhes, consulte o Método DeleteAlias no AWS SDK para PHP.

// Delete an alias for a CMK//$aliasName = "alias/projectKey1";

$result = $KmsClient->deleteAlias([ 'AliasName' => $aliasName, ]);

Node.js

Para obter detalhes, consulte a Propriedade deleteAlias no AWS SDK for JavaScript in Node.js.

// Delete an alias for a CMK//const AliasName = 'alias/projectKey1';kmsClient.deleteAlias({ AliasName }, (err, data) => { ...});

302

Page 310: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorComo a criptografia de chave simétrica funciona

Conceitos básicos de criptografiaVeja a seguir alguns termos e conceitos básicos de criptografia que você vai encontrar ao trabalhar com oAWS KMS.

Texto simples e texto cifrado

Texto simples refere-se a informações ou dados em um formulário não criptografado ou não protegido.Texto cifrado refere-se à saída de um algoritmo de criptografia operando em texto simples. O textocifrado é ilegível sem o conhecimento do algoritmo e uma chave secreta.

Algoritmos e chaves

Um algoritmo de criptografia é um conjunto de instruções que especifica precisamente como o textosimples é transformado em texto cifrado. Os algoritmos de criptografia exigem uma chave secreta.O AWS KMS usa o algoritmo Advanced Encryption Standard (AES) no Galois/Counter Mode (GCM),conhecido como AES-GCM. O AWS KMS usa esse algoritmo com chaves secretas de 256 bits.

Criptografia simétrica e assimétrica

Os algoritmos de criptografia são simétricos ou assimétricos. A criptografia simétrica usa a mesmachave secreta para executar os processos de criptografia e descriptografia. A criptografia assimétrica,também conhecida como criptografia de chave pública, usa duas chaves, uma chave pública para acriptografia e uma chave privada correspondente para a descriptografia. A chave pública e a chaveprivada estão matematicamente relacionadas, de modo que, quando a chave pública é usada nacriptografia, a chave privada correspondente deve ser usada na descriptografia. O AWS KMS usasomente a criptografia simétrica.

Para uma introdução mais detalhada à criptografia e AWS KMS, consulte os tópicos a seguir.

Tópicos• Como a criptografia de chave simétrica funciona (p. 303)• Criptografia autenticada (p. 304)• Contexto de criptografia (p. 305)• Referência: AWS KMS e terminologia de criptografia (p. 306)

Como a criptografia de chave simétrica funcionaEste tópico fornece uma introdução de alto nível de como a criptografia de chave simétrica usa algoritmospara criptografar e descriptografar dados, a diferença entre cifras de bloco e de stream, e como as cifrasde bloco usam modos de criptografia para aumentar a eficácia dos esquemas de criptografia genéricos.

Criptografia e descriptografiaO AWS KMS usa criptografia de chave simétrica para realizar a criptografia e a descriptografia. Acriptografia de chave simétrica usa o mesmo algoritmo e chave para criptografar e descriptografar dadosdigitais. Os dados não criptografados normalmente são chamados de texto simples sejam ou não texto. Osdados criptografados geralmente são chamados de texto cifrado. A ilustração a seguir mostra uma chavesecreta (simétrica) e um algoritmo simétrico está sendo usado para transformar texto simples em textocifrado.

303

Page 311: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorCriptografia autenticada

A próxima ilustração mostra a mesma chave secreta (simétrica) e um algoritmo simétrico está sendo usadopara transformar texto cifrado de volta para texto simples.

Criptografia autenticadaCriptografia autenticada proporciona confidencialidade, integridade dos dados e garantias de autenticidadedos dados criptografados. A API Encrypt usa texto simples, um identificador de chave mestra decliente (CMK) e um contexto de criptografia (p. 305) e retorna texto cifrado. O contexto de criptografiarepresenta dados autenticados adicionais (AAD). O processo de criptografia usa a AAD apenas paragerar uma tag de autenticação. A tag é incluída com o texto cifrado da saída e usada como entrada parao processo de descriptografia. Isso significa que o contexto de criptografia que você fornece para a APIDecrypt deve ser o mesmo que o contexto de criptografia fornecido para a API Encrypt. Caso contrário,as tags de criptografia e descriptografia não coincidem, e o processo de descriptografia não conseguiráproduzir texto simples. Além disso, se qualquer um dos parâmetros tiver sido alterado — especificamentese o texto cifrado foi modificado — a tag de autenticação não computará o mesmo valor que tinha durantea criptografia. O processo de descriptografia falhará e o texto cifrado não será descriptografado.

Contexto de criptografia (p. 305) é a implementação do AWS KMS da criptografia autenticada ou AAD.Para saber como usar o contexto de criptografia para proteger a integridade dos dados criptografados,consulte a publicação Como proteger a integridade dos seus dados usando o AWS Key ManagementService e o EncryptionContext no blog de segurança da AWS.

304

Page 312: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorContexto de criptografia

Contexto de criptografiaContexto de criptografia é um conjunto de pares não secretos de chave-valor que você pode passarpara o AWS KMS ao chamar as APIs Encrypt, Decrypt, ReEncrypt, GenerateDataKey ouGenerateDataKeyWithoutPlaintext.

Quando um contexto de criptografia é fornecido em uma solicitação de criptografia, ele é vinculado demaneira criptográfica ao texto cifrado, de forma que o mesmo contexto de criptografia seja necessáriopara descriptografar (ou descriptografar e recriptografar) os dados. Se o contexto de criptografia fornecidona solicitação de descriptografia não é uma correspondência exata, com distinção entre maiúsculas eminúsculas, a solicitação de descriptografia falha. Somente a ordem dos pares de contexto de criptografiapode variar.

O contexto de criptografia nunca é incluído no texto cifrado que o AWS KMS retorna para qualqueroperação de criptografia. No entanto, ele é registrado em log pelo AWS CloudTrail.

Para saber como usar o contexto de criptografia para proteger a integridade dos dados criptografados,consulte a publicação Como proteger a integridade dos seus dados usando o AWS Key ManagementService e o EncryptionContext no blog de segurança da AWS.

O contexto de criptografia pode consistir em quaisquer valores que você desejar. No entanto, como elenão é secreto nem criptografado, e aparece nos logs do CloudTrail, seu contexto de criptografia não deveincluir informações confidenciais. Recomendamos ainda que o seu contexto de criptografia descrevaos dados que estão sendo criptografados ou descriptografados, para que você possa compreender asentradas de log do CloudTrail produzidas pelo AWS KMS. Por exemplo, o Amazon EBS usa o ID dovolume criptografado como o contexto de criptografia para criptografia do lado do servidor. Se você estivercriptografando um arquivo, poderá usar parte do caminho do arquivo como contexto de criptografia.

Contexto de criptografia em concessões e políticas dechaveAlém de sua utilização principal em verificar a integridade e a autenticidade, você também pode usar ocontexto de criptografia como uma condição para autorizar o uso de chaves mestras de cliente (CMKs)no IAM e políticas de chaves e concessões. Este elemento pode limitar as permissões para tipos muitoespecíficos de dados ou dados de um conjunto limitado de fontes.

• Em políticas de chaves e políticas do IAM que controlam o acesso às CMKs do AWS KMS, você podeincluir chaves de condição que limitam a permissão para solicitações que incluem chaves de contexto decriptografia (p. 72) ou pares de chave-valor (p. 70) específicos.

• Ao criar uma concessão (p. 84), você pode incluir restrições de concessão que permitem acessosomente quando uma solicitação inclui um contexto de criptografia ou chaves de contexto de criptografiaespecíficos.

Por exemplo, quando um volume de Amazon EBS é anexado a uma instância do Amazon EC2, umaconcessão é criada que permite que apenas essa instância descriptografe somente esse volume. Isso éfeito incluindo o ID de volume no contexto de criptografia e, em seguida, adicionando uma restrição deconcessão que requer um contexto de criptografia com esse ID de volume Se a concessão não incluir arestrição de contexto de criptografia, a instância do Amazon EC2 pode descriptografar qualquer volumeque foi criptografado com aquela chave mestre do cliente (CMK), em vez de um volume específico.

Registrar em log o contexto de criptografiaO AWS KMS usa o AWS CloudTrail para registrar em log o contexto de criptografia, para que você possadeterminar quais CMKs e dados foram acessados. A entrada de log mostra exatamente qual CMK foi

305

Page 313: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorArmazenar o contexto de criptografia

usada para criptografar ou descriptografar dados específicos referenciados pelo contexto de criptografia naentrada de log.

Important

Como o contexto de criptografia é registrado em log, ele não deve conter informaçõesconfidenciais.

Armazenar o contexto de criptografiaPara simplificar o uso de qualquer contexto de criptografia quando você chama a API Decrypt (ouReEncrypt), você pode armazenar o contexto de criptografia junto com os dados criptografados.Recomendamos que você armazene apenas o suficiente do contexto de criptografia para ajudar a criar ocontexto 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 dessecaminho com o conteúdo do arquivo criptografado. Em seguida, quando você precisar do contexto decriptografia completo, reconstrua-o do fragmento armazenado. Se alguém tentar violar o arquivo, comorenomear ou mover para um local diferente, o valor do contexto de criptografia será alterado e a solicitaçãode descriptografia falhará.

Referência: AWS KMS e terminologia decriptografia

Esta seção fornece um pequeno glossário de termos para trabalhar com criptografia no AWS KMS.

• Dados autenticados adicionais (AAD)

Oferece autenticidade e integridade de dados, usando dados autenticados adicionais durante oprocesso de criptografia. Os AAD são autenticados, mas não criptografados. Usar AAD com criptografiaautenticada permite que o processo de descriptografia detecte quaisquer alterações que podem ter sidofeitas no texto cifrado ou nos dados autenticados adicionais após a criptografia.

• Autenticação

O processo de determinar se uma entidade é o que ela diz ser, ou que as informações não forammanipuladas por entidades não autorizadas.

• Autorização

Especifica o acesso legítimo de uma entidade a um recurso.• Modos de cifra de bloco

Criptografa texto simples para texto cifrado, onde o texto simples e o texto cifrado são de um tamanhoarbitrário. Modos são normalmente usados para criptografar algo que é maior que um bloco.

• Cifras de bloco

Um algoritmo que opera em blocos de dados, um bloco por vez.• Chave de dados

Uma chave simétrica gerada pelo AWS KMS para o seu serviço. Em seu serviço ou aplicativopersonalizado, a chave de dados é usada para criptografar ou descriptografar dados. Ela pode serconsiderada um recurso por um serviço ou aplicativo, ou pode ser simplesmente metadados associadosaos dados criptografados.

• Descriptografia

306

Page 314: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorReferência: AWS KMS e terminologia de criptografia

O processo de converter texto cifrado de volta para o formato que ele tinha antes da criptografia. Umamensagem descriptografada é chamada de texto simples.

• Criptografia

O processo de fornecer a confidencialidade dos dados para uma mensagem de texto simples. Umamensagem criptografada é chamada de texto cifrado.

• Contexto de criptografia

O AWS KMS especifica os AAD no formato de um par de "chave":"valor". Embora não criptografados,eles estão vinculados ao texto cifrado durante a criptografia e devem ser passados novamente durantea descriptografia. Se o contexto de criptografia passado para a criptografia não for o mesmo que ocontexto de criptografia passado para a descriptografia ou se o texto cifrado foi alterado, o processo dedescritptografia falhará.

• Chave mestra

Uma chave criada pelo AWS KMS que só pode ser usada no serviço do AWS KMS. A chave mestraé comumente usada para criptografar chaves de dados de forma que a chave criptografada possa serarmazenada com segurança por seu serviço. Entretanto, as chaves mestras do AWS KMS tambémpodem ser usadas para criptografar ou descriptografar blocos arbitrários que não sejam maioresque 4 KiB. As chaves mestras são categorizadas como chaves gerenciadas pelo cliente ou chavesgerenciadas pela AWS. As chaves gerenciadas pelo cliente são criadas por um cliente para seremusadas por um serviço ou aplicativo. As chaves gerenciadas do AWS são as chaves padrão usadaspelos serviços do AWS que oferecem suporte à criptografia.

• Criptografia de chave simétrica

Usa uma única chave secreta para criptografar e descriptografar uma mensagem.

307

Page 315: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorChaves mestre do cliente (CMKs): 1.000

LimitesOs recursos do AWS KMS têm limites que se aplicam a cada região e a cada conta da AWS. Algunslimites aplicam-se a todos os recursos. Outros se aplicam apenas aos recursos que você cria, mas não arecursos que os serviços da AWS criam na conta. Os recursos que você usa, mas que não estão na suaconta da AWS, como CMKs de propriedade da AWS (p. 3), não contam para esses limites.

Important

Caso seja necessário ultrapassar esses limites, visite o Centro do AWS Support e crie um caso.

Recurso Limite padrão Aplicável a

Chaves mestre personalizadas(CMKs) (p. 308)

1000 CMKs gerenciadas pelo cliente

Aliases (p. 309) 1100 Aliases criados pelo cliente

Tamanho do documento dapolítica de chaves (p. 309)

32 KB (32.768 bytes) CMKs gerenciadas pelo cliente

CMKs gerenciadas pela AWS

Tamanho do documento dapolítica de chaves (p. 309)

32 KB (32.768 bytes) CMKs gerenciadas pelo cliente

CMKs gerenciadas pela AWS

Concessões por CMK (p. 309) 2500 CMKs gerenciadas pelo cliente

Concessões para um principalespecífico por CMK (p. 309)

500 CMKs gerenciadas pelo cliente

CMKs gerenciadas pela AWS

Solicitações porsegundo (p. 310)

Varia de acordo com aoperação de API; consulte atabela (p. 311).

CMKs gerenciadas pelo cliente

CMKs gerenciadas pela AWS

Note

Se você ultrapassar o limite de solicitações por segundo (p. 310), considere o uso do recurso dearmazenamento de chave de dados em cache do SDK de criptografia da AWS. Reutilizar chavesde dados, em vez de solicitar uma nova chave de dados para cada operação de criptografia, podereduzir a frequência de suas solicitações ao AWS KMS.

Chaves mestre do cliente (CMKs): 1.000Você pode ter até 1000 CMKs gerenciadas pelo cliente (p. 3) em cada Região de sua conta da AWS. Esselimite se aplica a todas as CMKs gerenciadas de cliente independentemente do estado da chave (p. 175).As CMKs gerenciadas pela AWS (p. 3) e CMKs de propriedade da AWS (p. 3) não contam para esselimite.

Você pode criar um caso de suporte para solicitar mais CMKs em uma região. No entanto, ogerenciamento de um grande número de CMKs pelo Console de gerenciamento da AWS pode ser maislento do que o aceitável. Caso haja um grande número de CMKs em uma região, recomendamos que asgerencie de modo programático com os SDKs da AWS ou as ferramentas da linha de comando da AWS.

308

Page 316: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAliases: 1.100

Aliases: 1.100Você pode criar até 1100 aliases em cada região de sua conta. Os aliases que a AWS cria em sua conta,como aws/<service-name>, não contam em relação a esse limite.

Um alias é um nome de exibição independente que você pode mapear para uma CMK. Cada alias émapeado para exatamente uma CMK e vários aliases podem ser mapeados para a mesma CMK.

Se você usar um caso de suporte para aumentar o limite de CMK, provavelmente precisará solicitartambém um aumento no número de aliases.

Tamanho do documento da política de chaves: 32KB

O tamanho máximo de cada documento de política de chaves é 32 KB (32.768 bytes). Se o documentoexceder esse tamanho, as operações que usam o documento de política de chaves para definir ou alterara política de chaves apresentarão falha. Se você precisar exceder esse limite, crie um caso de suporte.

Um documento de política de chaves (p. 36) é uma coleção de instruções de política no formato JSON.As declarações no documento de política de chaves determinam quem tem permissão para usar a CMK ecomo podem usá-la. Você também pode usar as concessões e políticas do IAM para controlar o acesso àCMK, mas toda CMK deve ter um documento de política de chaves.

Você pode criar um documento de política de chaves usando a visualização padrão (p. 47) ou avisualização de política (p. 49) no Console de gerenciamento da AWS ou usando a operação de APIPutKeyPolicy. Todas essas técnicas envolvem um documento de política de chaves subjacente.

Concessões por CMK: 2.500Cada CMK gerenciada pelo cliente (p. 3) pode ter até 2.500 concessões, incluindo as concessões criadaspelos serviços da AWS integrados ao AWS KMS. Esse limite não se aplica a CMKs gerenciadas pelaAWS (p. 3).

Um efeito desse limite é que você não pode criar mais de 2.500 recursos que usam a mesma CMK. Porexemplo, não é possível criar mais de 2.500 volumes criptografados do EBS (p. 192) que usam a mesmaCMK.

As concessões (p. 84) são uma alternativa para a política de chaves (p. 36). São mecanismos avançadospara especificar permissões.

Você ou um serviço da AWS integrado ao AWS KMS pode usar uma concessão para restringir como equando o favorecido pode usar uma CMK. As concessões são anexadas a uma CMK e cada concessãoinclui o principal que recebe permissão para usar a CMK, o ID da CMK e uma lista de operações que ofavorecido pode executar.

Concessões para um principal específico por CMK:500

Para uma determinada CMK, não mais de 500 concessões podem especificar o mesmo principalfavorecido. Esse limite se aplica a todas as CMKs, inclusive às CMKs gerenciadas pela AWS (p. 3).

309

Page 317: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorSolicitações por segundo: varia

Por exemplo, talvez você queira criptografar vários volumes do Amazon EBS e anexá-los a uma únicainstância do Amazon Elastic Compute Cloud (Amazon EC2). Uma concessão exclusiva é criada para cadavolume criptografado e todas essas concessões têm o mesmo principal favorecido (um usuário de funçãoassumida do IAM associado à instância do EC2). Cada concessão oferece permissão para usar a CMKespecificada para descriptografar uma chave exclusiva de criptografia de dados de um volume do EBS.Para cada CMK, você pode ter até 500 concessões que especificam a mesma instância do EC2 como oprincipal favorecido. Isso significa que você não pode ter mais de 500 volumes criptografados do EBS porinstância do EC2 para uma determinada CMK.

Solicitações por segundo: variaO AWS KMS rejeita solicitações de API em limites diferentes, dependendo da operação de API. O controlede utilização significa que o AWS KMS rejeita uma solicitação válida porque ela excede o limite donúmero de solicitações por segundo. Quando uma solicitação é rejeitada, o AWS KMS retorna um erroThrottlingException. A tabela a seguir (p. 311) lista cada operação de API e o ponto no qual o AWSKMS rejeita solicitações dessa operação.

Esse limite se aplica a todas as CMKs, inclusive às CMKs gerenciadas pela AWS (p. 3).Note

Caso seja necessário ultrapassar esses limites, visite o Centro do AWS Support e crie um caso.Se você ultrapassar o limite de solicitações por segundo para a operação da APIGenerateDataKey, considere o uso do recurso de armazenamento de chave de dados em cachedo SDK de criptografia da AWS. Reutilizar chaves de dados pode reduzir a frequência de suassolicitações ao AWS KMS.

Limite compartilhado

As operações de API na primeira linha da tabela a seguir compartilham um limite de 5500 (ou 10.000)solicitações por segundo. Por exemplo, com um limite de compartilhado 5500 solicitações por segundo,quando você faz 3000 GenerateDataKey solicitações por segundo e 1000 Decrypt solicitações porsegundo, AWS KMS não as rejeita. No entanto, quando você faz 5000 solicitações GenerateDataKeye 1000 Encrypt por segundo, o AWS KMS as rejeita porque são mais de 5500 solicitações por segundopara operações com o limite compartilhado.

As demais operações de API têm um limite exclusivo para solicitações por segundo, ou seja, o limite não écompartilhado.

Solicitações de API dofeitas em seu nome

Você pode fazer solicitações de API diretamente ou usando um serviço integrado da AWS que fazsolicitações de API para o AWS KMS em seu nome. O limite se aplica a ambos os tipos de solicitações.

Por exemplo, armazene dados no Amazon S3 usando criptografia no lado do servidor com AWS KMS(SSE-KMS). Cada vez que você faz upload ou download de um objeto do S3 criptografado com SSE-KMS, o Amazon S3 faz uma solicitação GenerateDataKey (para uploads) ou Decrypt (para downloads)para o AWS KMS em seu nome. Essas solicitações entram na conta do limite, e o AWS KMS rejeitará assolicitações se você exceder um total combinado de 5500 (ou 10.000) uploads ou downloads por segundode objetos S3 criptografados com SSE-KMS.

Solicitações entre contas

Uma solicitação entre contas é quando um aplicativo de uma conta da AWS usa uma CMK pertencente auma outra conta. Nas solicitações entre contas, o AWS KMS rejeita a conta que faz as solicitações, não aconta que possui a CMK. Por exemplo, você pode ter aplicativos nas contas A e B e ambas usarem umaCMK da conta C. Nesse cenário, o limite de solicitações por segundo se aplica separadamente para ascontas A e B, não para a conta C.

310

Page 318: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorSolicitações por segundo: varia

Armazenamentos de chaves personalizados

As operações de criptografia que usam CMKs em um armazenamento de chaves personalizado (p. 133)são limitadas quando alcançam uma taxa de 400 operações por segundo para um único armazenamentode chaves personalizado. Esse limite de aceleração é compartilhado por todas as operações decriptografia e todos os CMKs em cada armazenamento de chaves personalizado. Diferentemente de outroslimites, não é possível aumentar esse limite criando um caso no Support Center da AWS.

Note

Se o cluster do AWS CloudHSM associado ao armazenamento de chaves personalizado estiverprocessando vários comandos, incluindo os de outros aplicativos, você poderá obter umaThrottlingException a uma taxa inferior a 400 operações por segundo. Se isso ocorrer,diminua a sua taxa de solicitações e tente os comandos novamente.

Limite de solicitações por segundo para cada operação de API do AWS KMS

Operação de API Limite de solicitações por segundo

Decrypt

Encrypt

GenerateDataKey

GenerateDataKeyWithoutPlaintext

GenerateRandom

ReEncrypt

5500 (compartilhado)10.000 (compartilhado) somente nas seguintesregiões:

• Leste dos EUA (Norte da Virgínia), us-east-1• Oeste dos EUA (Oregon), us-west-2• UE (Irlanda), eu-west-1

400 (compartilhado) para cada armazenamento dechaves personalizado (p. 133).

CancelKeyDeletion 5

CreateAlias 5

CreateGrant 50

CreateKey 5

DeleteAlias 5

DeleteImportedKeyMaterial 5

DescribeKey 30

DisableKey 5

DisableKeyRotation 5

EnableKey 5

EnableKeyRotation 5

GetKeyPolicy 30

GetKeyRotationStatus 30

GetParametersForImport 0,25 (o AWS KMS rejeita solicitações quando ataxa é superior a 1 por 4 segundos)

ImportKeyMaterial 5

311

Page 319: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorSolicitações por segundo: varia

Operação de API Limite de solicitações por segundo

ListAliases 5

ListGrants 5

ListKeyPolicies 5

ListKeys 5

ListResourceTags 5

ListRetirableGrants 5

PutKeyPolicy 5

RetireGrant 15

RevokeGrant 15

ScheduleKeyDeletion 5

TagResource 5

UntagResource 5

UpdateAlias 5

UpdateKeyDescription 5

312

Page 320: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAtualizações recentes

Histórico da documentaçãoEste tópico descreve atualizações importantes no AWS Key Management Service Developer Guide.

Tópicos• Atualizações recentes (p. 313)• Atualizações anteriores (p. 314)

Atualizações recentesA tabela a seguir descreve alterações significativas nesta documentação desde janeiro de 2018. Além dasprincipais alterações listadas aqui, também atualizamos a documentação com frequência para melhoraras descrições e os exemplos e abordar os comentários que você nos envia. Para ser notificado sobrealterações significativas, use o link no canto superior direito para assinar os feeds RSS.

Versão atual da API: 01-11-2014

update-history-change update-history-description update-history-date

Novo recurso Explica como criar e gerenciararmazenamentos de chavespersonalizados do AWS KMS.Cada armazenamento de chavesé respaldado por um cluster doAWS CloudHSM que você detéme controla.

November 26, 2018

Novo console Explica como usar o novoconsole do AWS KMS, o qualnão depende do console do IAM.O console original e as instruçõespara usá-lo permanecerãodisponíveis por um breve períodopara que você tenha tempopara se familiarizar com o novoconsole.

November 7, 2018

Alteração de limite O limite de solicitações porsegundo compartilhadas foialterado em chaves mestre docliente.

August 21, 2018

Novo conteúdo Explica como o AWS SecretsManager usa chaves mestrasde cliente do AWS KMS paracriptografar o valor do segredoem um segredo.

July 13, 2018

Novo conteúdo Explica como o DynamoDB usachaves mestras de cliente doAWS KMS para dar suporte àopção de criptografia do lado doservidor.

May 23, 2018

313

Page 321: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAtualizações anteriores

Novo recurso Explica como usar um endpointprivado em sua VPC paraconectar diretamente ao AWSKMS, e não pela internet.

January 22, 2018

Atualizações anterioresA tabela a seguir descreve mudanças importantes na documentação do AWS Key Management ServiceDeveloper Guide antes de 2018.

Mudança Descrição Data

Novo conteúdo Documentação adicionada sobreChaves de tags (p. 27).

15 de fevereiro de 2017

Novo conteúdo Documentação adicionadasobre Como monitorar chavesmestras de cliente (p. 229)e Monitorar com o AmazonCloudWatch (p. 231).

31 de agosto de 2016

Novo conteúdo Documentação adicionadasobre Importação do material dechaves (p. 101).

11 de agosto de 2016

Novo conteúdo Adicionada a seguintedocumentação: Visão geral dogerenciamento de acesso (p. 34),Usar políticas do IAM (p. 55),Referência de permissõesda API do AWS KMS (p. 59)e Como usar condições depolítica (p. 65).

5 de julho de 2016

Atualização Partes da documentaçãoatualizadas no capítuloAutenticação e controle deacesso (p. 32).

5 de julho de 2016

Atualização Atualizada a páginaLimites (p. 308) para refletirnovos limites padrão.

31 de maio de 2016

Atualização Atualizada a páginaLimites (p. 308) para refletirnovos limites padrão e atualizadaa documentação Tokens deconcessão (p. 7) para aumentara clareza e a precisão.

11 de abril de 2016

Novo conteúdo Documentação adicionada sobrePermitir que vários usuários doIAM acessem uma CMK (p. 51)e Como usar a condição deendereço IP (p. 66).

17 de fevereiro de 2016

314

Page 322: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAtualizações anteriores

Mudança Descrição Data

Atualização Atualizadas as páginas Comousar políticas de chaves noAWS KMS (p. 36) e Alterar umapolítica de chaves (p. 47) paraaumentar a clareza e a precisão.

17 de fevereiro de 2016

Atualização Atualizada a página de tópicosConceitos básicos (p. 9) paraaumentar a clareza.

5 de janeiro de 2016

Novo conteúdo Documentação adicionada sobreComo o AWS CloudTrail usa oAWS KMS (p. 179).

18 de novembro de 2015

Novo conteúdo Adicionadas instruçõespara Alterar uma política dechaves (p. 47).

18 de novembro de 2015

Atualização Documentação sobre Como oAmazon Relational DatabaseService (Amazon RDS) usa oAWS KMS (p. 204) atualizada.

18 de novembro de 2015

Novo conteúdo Documentação adicionada sobreComo o Amazon WorkSpacesusa o AWS KMS (p. 224).

6 de novembro de 2015

Atualização Atualizada a página Como usarpolíticas de chaves no AWSKMS (p. 36) para aumentar aclareza.

22 de outubro de 2015

Novo conteúdo Documentação adicionada sobreExclusão de chaves mestrasde cliente (p. 119), inclusivea documentação de suportesobre Como criar um alarme doAmazon CloudWatch (p. 126)e Como determinar a utilizaçãopassada de uma chave mestrade cliente (p. 130).

15 de outubro de 2015

Novo conteúdo Documentação adicionada sobreComo determinar o acesso auma chave mestra de cliente doAWS KMS (p. 87).

15 de outubro de 2015

Novo conteúdo Documentação adicionada sobreComo o estado da chave afetao uso de uma chave mestra decliente (p. 175).

15 de outubro de 2015

Novo conteúdo Documentação adicionada sobreComo o Amazon Simple EmailService (Amazon SES) usa oAWS KMS (p. 213).

1º de outubro de 2015

315

Page 323: AWS Key Management Service · • Ativar e desativar a rotação automática do material criptográfico em uma chave mestra • Importar material criptográfico para uma chave mestra

AWS Key Management Service Guia do desenvolvedorAtualizações anteriores

Mudança Descrição Data

Atualização Atualizada a páginaLimites (p. 308) para explicar osnovos limites de solicitações porsegundo.

31 de agosto de 2015

Novo conteúdo Informações adicionadas sobreas cobranças do uso do AWSKMS. Consulte AWS KMSDefinição de preços (p. 2).

14 de agosto de 2015

Novo conteúdo Adicionadas solicitaçõespor segundo ao AWS KMSLimites (p. 308).

11 de junho de 2015

Novo conteúdo Adicionado um novo exemplode código Java que demonstrao uso da API doUpdateAlias.Consulte Atualização de umalias (p. 299).

1º de junho de 2015

Atualização A tabela de regiões do AWS KeyManagement Service foi movidapara a AWS General Reference.

29 de maio de 2015

Novo conteúdo Documentação adicionada sobreComo o Amazon EMR usa oAWS KMS (p. 199).

28 de janeiro de 2015

Novo conteúdo Documentação adicionada sobreComo o Amazon WorkMail usa oAWS KMS (p. 222).

28 de janeiro de 2015

Novo conteúdo Documentação adicionada sobreComo o Amazon RelationalDatabase Service (Amazon RDS)usa o AWS KMS (p. 204).

6 de janeiro de 2015

Novo conteúdo Documentação adicionadasobre Como o Amazon ElasticTranscoder usa o AWSKMS (p. 194).

24 de novembro de 2014

Nova guia Apresentou o AWS KeyManagement Service DeveloperGuide.

12 de novembro de 2014

316


Recommended