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"; }