Trabalhar com chaves - AWS Key Management Service

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Trabalhar com chaves

Os exemplos neste tópico usam a API do AWS KMS para criar, visualizar, habilitar e desabilitar AWS KMS AWS KMS keys e para gerar chaves de dados.

Criar uma chave do KMS

Para criar uma AWS KMS key(chave KMS), use a CreateKeyoperação. Os exemplos nesta seção criam uma chave do KMS de criptografia simétrica. O parâmetro Description usado nesses exemplos é opcional.

Em linguagens que exigem um objeto cliente, esses exemplos usam o objeto cliente do AWS KMS criado em Criar um cliente.

Para obter ajuda com a criação de chaves do KMS no console do AWS KMS, consulte Criar chaves.

Java

Para obter detalhes, consulte o Método createKey, na Referência de APIs do AWS SDK for Java.

// Create a KMS key // 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 for .NET.

// Create a KMS key // 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 for Python (Boto3).

# Create a KMS key 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 for Ruby.

# Create a KMS key desc = 'Key for protecting critical data' response = kmsClient.create_key({ description: desc })
PHP

Para obter detalhes, consulte o Método CreateKey no AWS SDK for PHP.

// Create a KMS key // $desc = "Key for protecting critical data"; $result = $KmsClient->createKey([ 'Description' => $desc ]);
Node.js

Para obter detalhes, consulte a propriedade createKey no SDK JavaScript em AWS Node.js.

// Create a KMS key // const Description = 'Key for protecting critical data'; kmsClient.createKey({ Description }, (err, data) => { ... });
PowerShell

Para criar uma chave KMS PowerShell, use o KmsKey cmdlet New-.

# Create a KMS key $desc = 'Key for protecting critical data' New-KmsKey -Description $desc

Para usar os AWS KMS PowerShell cmdlets, instale o AWS.Tools. KeyManagementServicemódulo. Para obter mais informações, consulte o AWS Tools for Windows PowerShellGuia do Usuário.

Gerar uma chave de dados

Para gerar uma chave de dados simétrica, use a GenerateDataKeyoperação. Essa operação retorna uma chave de dados de texto simples e uma cópia dessa chave de dados criptografada com a chave do KMS de criptografia simétrica que você especifica. É necessário especificar um KeySpec ou NumberOfBytes (mas não ambos) em cada comando.

Para obter ajuda para usar a chave de dados para criptografar dados, consulte o AWS Encryption SDK. Você também pode usar a chave de dados em operações de Hash-based message authentication code (HMAC – Código de autenticação de mensagem por hash).

Em linguagens que exigem um objeto cliente, esses exemplos usam o objeto cliente do AWS KMS criado em Criar um cliente.

Java

Para obter detalhes, consulte o generateDataKey método na Referência AWS SDK for Java da API.

// Generate a data key // // Replace the following example key ARN with any valid key identfier String 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 for .NET.

// Generate a data key // // Replace the following example key ARN with any valid key identfier String 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; MemoryStream encryptedKey = dataKeyResponse.CiphertextBlob;
Python

Para obter detalhes, consulte o Método generate_data_key no AWS SDK for Python (Boto3).

# Generate a data key # Replace the following example key ARN with any valid key identfier key_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 for Ruby.

# Generate a data key # Replace the following example key ARN with any valid key identfier key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kmsClient.generate_data_key({ key_id: key_id, key_spec: 'AES_256' }) plaintext_key = response.plaintext encrypted_key = response.ciphertext_blob
PHP

Para obter detalhes, consulte o Método GenerateDataKey no AWS SDK for PHP.

// Generate a data key // // Replace the following example key ARN with any valid key identfier $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 generateDataKey propriedade no AWSSDK JavaScript em Node.js.

// Generate a data key // // Replace the following example key ARN with any valid key identfier const 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; ... } });
PowerShell

Para gerar uma chave de dados simétrica, use o cmdlet New-KMS DataKey.

Na saída, a chave de texto simples (na Plaintext propriedade) e a chave criptografada (na CiphertextBlob propriedade) são MemoryStreamobjetos. Para convertê-los em cadeias de caracteres, use os métodos da MemoryStream classe ou um cmdlet ou função que converta MemoryStream objetos em cadeias de caracteres, como as funções ConvertFrom- MemoryStream e ConvertFrom-Base64 no módulo Convert.

# Generate a data key # Replace the following example key ARN with any valid key identfier $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' $keySpec = 'AES_256' $response = New-KmsDataKey -KeyId $keyId -KeySpec $keySpec $plaintextKey = $response.Plaintext $encryptedKey = $response.CiphertextBlob

Para usar os AWS KMS PowerShell cmdlets, instale o AWS.Tools. KeyManagementServicemódulo. Para obter mais informações, consulte o AWS Tools for Windows PowerShellGuia do Usuário.

Como visualizar um AWS KMS key

Para obter informações detalhadas sobre umAWS KMS key, incluindo o ARN da chave KMS e o estado da chave, use DescribeKeya operação.

DescribeKey não recebe aliases. Para obter aliases, use a ListAliasesoperação. Para ver exemplos, consulte Trabalhar com aliases.

Em linguagens que exigem um objeto cliente, esses exemplos usam o objeto cliente do AWS KMS criado em Criar um cliente.

Para obter ajuda com a visualização de chaves do KMS no console do AWS KMS, consulte Visualizar chaves.

Java

Para obter detalhes, consulte o Método describeKey, na Referência de APIs do AWS SDK for Java.

// Describe a KMS key // // Replace the following example key ARN with any valid key identfier String 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 for .NET.

// Describe a KMS key // // Replace the following example key ARN with any valid key identfier String 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 for Python (Boto3).

# Describe a KMS key # Replace the following example key ARN with any valid key identfier key_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 for Ruby.

# Describe a KMS key # Replace the following example key ARN with any valid key identfier key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kmsClient.describe_key({ key_id: key_id })
PHP

Para obter detalhes, consulte o Método DescribeKey no AWS SDK for PHP.

// Describe a KMS key // // Replace the following example key ARN with any valid key identfier $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 SDK JavaScript em AWS Node.js.

// Describe a KMS key // // Replace the following example key ARN with any valid key identfier const KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; kmsClient.describeKey({ KeyId }, (err, data) => { ... });
PowerShell

Para obter informações detalhadas sobre uma chave KMS, use o KmsKey cmdlet Get-.

# Describe a KMS key # Replace the following example key ARN with any valid key identfier $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' Get-KmsKey -KeyId $keyId

Para usar os AWS KMS PowerShell cmdlets, instale o AWS.Tools. KeyManagementServicemódulo. Para obter mais informações, consulte o AWS Tools for Windows PowerShellGuia do Usuário.

Obter IDs e ARNs de chaves do KMS

Para obter os IDs das chaves e os ARNs das chaves doAWS KMS keys, use a ListKeysoperação. Esses exemplos usam o parâmetro Limit opcional, que define o número máximo de chaves do KMS retornadas em cada chamada. Para obter ajuda para identificar uma chave do KMS em uma operação do AWS KMS, consulte Identificadores-chave () KeyId.

Em linguagens que exigem um objeto cliente, esses exemplos usam o objeto cliente do AWS KMS criado em Criar um cliente.

Para obter ajuda sobre como localizar IDs e ARNs de chaves no console do AWS KMS, consulte Como encontrar o ID e o ARN da chave.

Java

Para obter detalhes, consulte o Método listKeys, na Referência de APIs do AWS SDK for Java.

// List KMS keys 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 for .NET.

// List KMS keys 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 for Python (Boto3).

# List KMS keys 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 for Ruby.

# List KMS keys in this account response = kmsClient.list_keys({ limit: 10 })
PHP

Para obter detalhes, consulte o Método ListKeys no AWS SDK for PHP.

// List KMS keys in this account // $limit = 10; $result = $KmsClient->listKeys([ 'Limit' => $limit, ]);
Node.js

Para obter detalhes, consulte a propriedade listKeys no AWSSDK em Node.js. JavaScript

// List KMS keys in this account // const Limit = 10; kmsClient.listKeys({ Limit }, (err, data) => { ... });
PowerShell

Para obter o ID e o ARN da chave de todas as chaves KMS na conta e na região, use o cmdlet Get -. KmsKeyList

Para limitar o número de objetos de saída, este exemplo usa o cmdlet Select-Object em vez do parâmetro Limit, que está defasado nos cmdlets da lista. Para obter ajuda com a saída da paginação no AWS Tools for PowerShell, consulte Paginação de saída com o AWS Tools for PowerShell.

# List KMS keys in this account $limit = 10 Get-KmsKeyList | Select-Object -First $limit

Para usar os AWS KMS PowerShell cmdlets, instale o AWS.Tools. KeyManagementServicemódulo. Para obter mais informações, consulte o AWS Tools for Windows PowerShellGuia do Usuário.

Habilitar o AWS KMS keys

Para habilitar um desativadoAWS KMS key, use a EnableKeyoperação.

Em linguagens que exigem um objeto cliente, esses exemplos usam o objeto cliente do AWS KMS criado em Criar um cliente.

Para obter ajuda sobre como habilitar e desabilitar chaves do KMS no console do AWS KMS, consulte Habilitar e desabilitar chaves.

Java

Para obter detalhes sobre a implementação de Java, consulte o Método enableKey, na Referência de APIs do AWS SDK for Java.

// Enable a KMS key // // Replace the following example key ARN with a valid key ID or key ARN String 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 obter detalhes, consulte o Método EnableKey no AWS SDK for .NET.

// Enable a KMS key // // Replace the following example key ARN with a valid key ID or key ARN String 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 for Python (Boto3).

# Enable a KMS key # Replace the following example key ARN with a valid key ID or key ARN key_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 for Ruby.

# Enable a KMS key # Replace the following example key ARN with a valid key ID or key ARN key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kmsClient.enable_key({ key_id: key_id })
PHP

Para obter detalhes, consulte o Método EnableKey no AWS SDK for PHP.

// Enable a KMS key // // Replace the following example key ARN with a valid key ID or key ARN $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 SDK JavaScript em AWS Node.js.

// Enable a KMS key // // Replace the following example key ARN with a valid key ID or key ARN const KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; kmsClient.enableKey({ KeyId }, (err, data) => { ... });
PowerShell

Para habilitar uma chave KMS, use o KmsKey cmdlet Enable-.

# Enable a KMS key # Replace the following example key ARN with a valid key ID or key ARN $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' Enable-KmsKey -KeyId $keyId

Para usar os AWS KMS PowerShell cmdlets, instale o AWS.Tools. KeyManagementServicemódulo. Para obter mais informações, consulte o AWS Tools for Windows PowerShellGuia do Usuário.

Desabilitar as AWS KMS key

Para desativar uma chave KMS, use a DisableKeyoperação. A desabilitação de uma chave do KMS impede que ela seja usada em operações de criptografia.

Em linguagens que exigem um objeto cliente, esses exemplos usam o objeto cliente do AWS KMS criado em Criar um cliente.

Para obter ajuda sobre como habilitar e desabilitar chaves do KMS no console do AWS KMS, consulte Habilitar e desabilitar chaves.

Java

Para obter detalhes, consulte o Método disableKey, na Referência de APIs do AWS SDK for Java.

// Disable a KMS key // // Replace the following example key ARN with a valid key ID or key ARN String 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 for .NET.

// Disable a KMS key // // Replace the following example key ARN with a valid key ID or key ARN String 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 for Python (Boto3).

# Disable a KMS key # Replace the following example key ARN with a valid key ID or key ARN key_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 for Ruby.

# Disable a KMS key # Replace the following example key ARN with a valid key ID or key ARN key_id = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' response = kmsClient.disable_key({ key_id: key_id })
PHP

Para obter detalhes, consulte o Método DisableKey no AWS SDK for PHP.

// Disable a KMS key // // Replace the following example key ARN with a valid key ID or key ARN $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 SDK JavaScript em AWS Node.js.

// Disable a KMS key // // Replace the following example key ARN with a valid key ID or key ARN const KeyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; kmsClient.disableKey({ KeyId }, (err, data) => { ... });
PowerShell

Para desativar uma chave KMS, use o KmsKey cmdlet Disable-.

# Disable a KMS key # Replace the following example key ARN with a valid key ID or key ARN $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab' Disable-KmsKey -KeyId $keyId

Para usar os AWS KMS PowerShell cmdlets, instale o AWS.Tools. KeyManagementServicemódulo. Para obter mais informações, consulte o Guia do usuário da AWS Tools for Windows PowerShell.