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 do KMS), use a operação CreateKey. 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 mais detalhes, consulte a propriedade createKey, no AWSSDK for JavaScript in Node.js.
// Create a KMS key
//
const Description = 'Key for protecting critical data';
kmsClient.createKey({ Description }, (err, data) => {
...
});
- PowerShell
Para criar uma chave do KMS no PowerShell, use o cmdlet New-KmsKey.
# Create a KMS key
$desc = 'Key for protecting critical data'
New-KmsKey -Description $desc
Para usar os cmdlets do PowerShell AWS KMS, instale o módulo AWS.Tools.KeyManagementService. Para obter mais informações, consulte o Manual do usuário do AWS Tools for Windows PowerShell.
Gerar uma chave de dados
Para gerar uma chave de dados simétrica, use a operação GenerateDataKey. 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 Método generateDataKey, na Referência de APIs do AWS SDK for Java.
// 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 mais detalhes, consulte a propriedade generateDataKey, no AWSSDK for JavaScript in 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-KMSDataKey.
Na saída, a chave de texto simples (na propriedade Plaintext
) e a chave criptografada (na propriedade CiphertextBlob
) são objetos MemoryStream. Para convertê-los em strings, use os métodos da classe MemoryStream
ou um cmdlet ou uma função que converta objetos MemoryStream
em strings, 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 cmdlets do PowerShell AWS KMS, instale o módulo AWS.Tools.KeyManagementService. Para obter mais informações, consulte o Manual do usuário do AWS Tools for Windows PowerShell.
Como visualizar um AWS KMS key
Para obter informações detalhadas sobre uma AWS KMS key, incluindo o ARN e o estado da chave da chave do KMS, use a operação DescribeKey.
DescribeKey
não recebe aliases. Para a lista de alias, use a operação ListAliases. 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 mais detalhes, consulte a propriedade describeKey, no AWSSDK for JavaScript in 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 do KMS, use o cmdlet Get-KmsKey.
# 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 cmdlets do PowerShell AWS KMS, instale o módulo AWS.Tools.KeyManagementService. Para obter mais informações, consulte o Manual do usuário do AWS Tools for Windows PowerShell.
Obter IDs e ARNs de chaves do KMS
Para obter os IDs de chaves e os ARNs de chaves das AWS KMS keys, use a operação ListKeys. 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 de 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 mais detalhes, consulte a propriedade listKeys, no AWSSDK for JavaScript in Node.js.
// List KMS keys in this account
//
const Limit = 10;
kmsClient.listKeys({ Limit }, (err, data) => {
...
});
- PowerShell
Para obter o ID de chave e o ARN de chave de todas as chaves do KMS na conta e 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 cmdlets do PowerShell AWS KMS, instale o módulo AWS.Tools.KeyManagementService. Para obter mais informações, consulte o Manual do usuário do AWS Tools for Windows PowerShell.
Habilitar o AWS KMS keys
Para habilitar uma AWS KMS key desabilitada, use a operação EnableKey.
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 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 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 mais detalhes, consulte a propriedade enableKey, no AWSSDK for JavaScript in 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 do KMS, use o cmdlet Enable-KmsKey.
# 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 cmdlets do PowerShell AWS KMS, instale o módulo AWS.Tools.KeyManagementService. Para obter mais informações, consulte o Manual do usuário do AWS Tools for Windows PowerShell.
Desabilitar as AWS KMS key
Para desabilitar uma chave do KMS, use a operação DisableKey. 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 mais detalhes, consulte a propriedade disableKey, no AWS SDK for JavaScript in 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 desabilitar uma chave do KMS, use o cmdlet Disable-KmsKey.
# 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 cmdlets do PowerShell AWS KMS, instale o módulo AWS.Tools.KeyManagementService. Para obter mais informações, consulte o Manual do usuário do AWS Tools for Windows PowerShell.