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

Uma concessão é outro mecanismo para fornecer permissões. É uma alternativa à política de chave. 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:

  • Criar uma concessão para uma chave do KMS usando CreateGrant.

  • Visualizar uma concessão de uma chave do KMS usando ListGrants.

  • Retirar uma concessão de uma chave do KMS usando RetireGrant.

  • Revogar uma concessão de uma chave do KMS usando RevokeGrant.

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

Para criar uma concessão para uma AWS KMS key, use a operação CreateGrant.

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 uma AWS KMS key, use a operação ListGrants.

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 uma AWS KMS key, use a operação RetireGrant. 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 de uma AWS KMS key, use a operação RevokeGrant. 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"; }