Trabalhando com subsídios usando a AWS KMS API e o AWS SDK for PHP versão 3 - AWS SDK for 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á.

Trabalhando com subsídios usando a AWS KMS API e o AWS SDK for PHP versão 3

Uma concessão é outro mecanismo para fornecer permissões. É uma alternativa à política de chaves. Use concessões para permitir acesso de longo prazo para as entidades principais da AWS usarem as suas AWS KMS keys gerenciadas pelo cliente do AWS Key Management Service (AWS KMS). Para obter mais informações, consulte Concessões no AWS KMS no Guia do desenvolvedor AWS Key Management Service.

Os exemplos a seguir mostram como:

  • Crie uma concessão para uma chave KMS usando CreateGrant.

  • Visualize uma concessão para uma chave KMS usando ListGrants.

  • Retire uma concessão para uma chave KMS usando RetireGrant.

  • Revogue a concessão de uma chave KMS usando. RevokeGrant

Todo o código de exemplo para o AWS SDK for PHP está disponível aqui em GitHub.

Credenciais

Antes de executar o código de exemplo, configure suas credenciais da AWS, conforme descrito em Credenciais. Em seguida, importe o AWS SDK for PHP, conforme descrito em Uso básico.

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 concessão

Para criar uma concessão para umAWS KMS key, use a CreateGrantoperação.

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'; $granteePrincipal = "arn:aws:iam::111122223333:user/Alice"; $operation = ['Encrypt', 'Decrypt']; // A list of operations that the grant allows. try { $result = $KmsClient->createGrant([ 'GranteePrincipal' => $granteePrincipal, 'KeyId' => $keyId, 'Operations' => $operation ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Visualizar uma concessão

Para obter informações detalhadas sobre as concessões em umAWS KMS key, use a ListGrantsoperação.

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'; $limit = 10; try { $result = $KmsClient->listGrants([ 'KeyId' => $keyId, 'Limit' => $limit, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Remover uma concessão

Para retirar uma concessão de umAWS KMS key, use a RetireGrantoperação. Remova uma concessão para limpá-la depois que terminar de usá-la.

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' ]); $grantToken = 'Place your grant token here'; try { $result = $KmsClient->retireGrant([ 'GrantToken' => $grantToken, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; } //Can also identify grant to retire by a combination of the grant ID //and the Amazon Resource Name (ARN) of the customer master key (CMK) $keyId = 'arn:aws:kms:us-west-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab'; $grantId = 'Unique identifier of the grant returned during CreateGrant operation'; try { $result = $KmsClient->retireGrant([ 'GrantId' => $grantToken, 'KeyId' => $keyId, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Revogar uma concessão

Para revogar uma concessão a umAWS KMS key, use a RevokeGrantoperação. Você pode revogar uma concessão para negar explicitamente as operações que dependem dela.

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'; $grantId = "grant1"; try { $result = $KmsClient->revokeGrant([ 'KeyId' => $keyId, 'GrantId' => $grantId, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }