Trabalhar com chaves usando a API do AWS KMS e o AWS SDK para PHP versão 3 - AWS SDK para PHP

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 usando a API do AWS KMS e o AWS SDK para PHP versão 3

Os recursos principais no AWS Key Management Service (AWS KMS) são AWS KMS keys. Você pode usar uma chave do KMS para criptografar seus dados.

Os exemplos a seguir mostram como:

  • Criar uma chave do KMS de cliente usando a operação CreateKey.

  • Gerar uma chave de dados usando a operação GenerateDataKey.

  • Visualizar uma chave do KMS usando DescribeKey.

  • Obter IDs e ARNs de chaves do KMS usando a operação ListKeys.

  • Habilitar as chaves do KMS usando EnableKey.

  • Desabilitar as chaves do KMS usando DisableKey.

O código de exemplo completo do AWS SDK para PHP está disponível aqui no GitHub.

Credenciais

Antes de executar o código de exemplo, configure suas credenciais da AWS, conforme descrito em Autenticando com o AWS uso da AWS SDK para PHP versão 3. Em seguida, importe o AWS SDK para PHP, conforme descrito em Instalar o AWS SDK para PHP versão 3.

Para obter mais informações sobre como usar o AWS Key Management Service (AWS KMS), consulte o Guia do desenvolvedor do AWS KMS.

Criar uma chave do KMS

Para criar uma chave do KMS, use a operação CreateKey.

Importações

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

Código de exemplo

$KmsClient = new Aws\Kms\KmsClient([ 'profile' => 'default', 'version' => '2014-11-01', 'region' => 'us-east-2' ]); //Creates a customer master key (CMK) in the caller's AWS account. $desc = "Key for protecting critical data"; try { $result = $KmsClient->createKey([ 'Description' => $desc, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Gerar uma chave de dados

Para gerar uma chave de criptografia de dados, use a operação GenerateDataKey. Essa operação retorna cópias de texto simples e criptografadas da chave de dados que ela cria. Especifique a AWS KMS key sob a qual gerar a chave de dados.

Importações

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

Código de exemplo

$KmsClient = new Aws\Kms\KmsClient([ 'profile' => 'default', 'version' => '2014-11-01', 'region' => 'us-east-2' ]); $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; $keySpec = 'AES_256'; try { $result = $KmsClient->generateDataKey([ 'KeyId' => $keyId, 'KeySpec' => $keySpec, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Visualizar uma chave do KMS

Para obter informações detalhadas sobre uma chave do KMS, incluindo o nome do recurso da Amazon (ARN) da chave do KMS e o estado da chave, use a operação DescribeKey.

DescribeKey não obtém aliases. Para a lista de alias, use a operação ListAliases.

Importações

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

Código de exemplo

$KmsClient = new Aws\Kms\KmsClient([ 'profile' => 'default', 'version' => '2014-11-01', 'region' => 'us-east-2' ]); $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; try { $result = $KmsClient->describeKey([ 'KeyId' => $keyId, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Obter o ID e os ARNs da chave de uma chave do KMS

Para obter o ID e o ARN da chave do KMS, use a operação ListAliases.

Importações

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

Código de exemplo

$KmsClient = new Aws\Kms\KmsClient([ 'profile' => 'default', 'version' => '2014-11-01', 'region' => 'us-east-2' ]); $limit = 10; try { $result = $KmsClient->listKeys([ 'Limit' => $limit, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Habilitar uma chave do KMS

Para habilitar uma chave do KMS desabilitada, use a operação EnableKey.

Importações

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

Código de exemplo

$KmsClient = new Aws\Kms\KmsClient([ 'profile' => 'default', 'version' => '2014-11-01', 'region' => 'us-east-2' ]); $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; try { $result = $KmsClient->enableKey([ 'KeyId' => $keyId, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Desabilitar uma chave do KMS

Para desabilitar uma chave do KMS, use a operação DisableKey. A desabilitação de uma chave do KMS impede que ela seja usada.

Importações

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

Código de exemplo

$KmsClient = new Aws\Kms\KmsClient([ 'profile' => 'default', 'version' => '2014-11-01', 'region' => 'us-east-2' ]); $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; try { $result = $KmsClient->disableKey([ 'KeyId' => $keyId, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }