Trabalhando com subsídios usando a AWS KMS API e a 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á.

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

Uma concessão é outro mecanismo para fornecer permissões. É uma alternativa à política de chave. Você pode usar subsídios para fornecer acesso de longo prazo que permita que AWS os diretores usem seu AWS Key Management Service (AWS KMS) gerenciado pelo cliente AWS KMS keys. 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 para PHP está disponível aqui em GitHub.

Credenciais

Antes de executar o código de exemplo, configure suas AWS credenciais, conforme descrito emCredenciais. Em seguida, importe o AWS SDK para PHP, conforme descrito emUso básico.

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

Criar uma concessão

Para criar uma concessão para um AWS 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 um AWS 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"; }

Retirar uma concessão

Para retirar uma concessão de um AWS 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 um AWS 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"; }