Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Uso de concesiones mediante la API AWS KMS y la versión 3 de AWS SDK for PHP
Una concesión es otro mecanismo para proporcionar permisos. Es una alternativa a la política de claves. Puede utilizar las concesiones para conceder acceso a largo plazo que permita a los administradores principales de AWS utilizar sus claves AWS Key Management Service (AWS KMS) administradas por el cliente AWS KMS keys. Para obtener más información, consulte Concesiones AWS KMS en laAWS Key Management Service Guía para desarrolladores.
Los siguientes ejemplos muestran cómo:
-
Cree una concesión para una clave KMS utilizando CreateGrant.
-
Vea una concesión para una clave KMS utilizando ListGrants.
-
Retira una concesión para una clave KMS utilizando RetireGrant.
-
Revoca la concesión de una clave KMS mediante RevokeGrant.
Todo el código de ejemplo para el AWS SDK for PHP está disponible aquí en GitHub
Credenciales
Antes de ejecutar el código de ejemplo, configure sus credenciales de AWS, como se indica en Credentials. A continuación, importe AWS SDK for PHP, como se indica en Uso básico.
Para obtener más información sobre el uso de AWS Key Management Service (AWS KMS), consulte la AWS KMS Guía del desarrollador.
Crear una concesión
Para crear una concesión para unAWS KMS key, utilice la CreateGrantoperación.
Importaciones
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
Código de muestra
$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"; }
Visualización de una concesión
Para obtener información detallada sobre las subvenciones de unaAWS KMS key, utilice la ListGrantsoperación.
Importaciones
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
Código de muestra
$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"; }
Retirada de una concesión
Para retirar una subvención de unAWS KMS key, utilice la RetireGrantoperación. Retire una concesión para efectuar una limpieza cuando termine de utilizarla.
Importaciones
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
Código de muestra
$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"; }
Revocación de una concesión
Para revocar una concesión a unAWS KMS key, utilice la RevokeGrantoperación. Puede revocar una concesión para denegar explícitamente las operaciones que dependen de ella.
Importaciones
require 'vendor/autoload.php'; use Aws\Exception\AwsException;
Código de muestra
$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"; }