Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utilisation des subventions à l'aide de l'AWS KMSAPI et de la AWS SDK for PHP version 3
Un octroi est un autre mécanisme permettant de fournir des autorisations. C'est une alternative à la politique clé. Vous pouvez utiliser des subventions pour accorder un accès à long terme qui permet AWS aux principaux d'utiliser votre AWS Key Management Service (AWS KMS) géré par le client AWS KMS keys. Pour plus d'informations, consultez la section Subventions AWS KMS dans le guide du AWS Key Management Service développeur.
Les exemples suivants montrent comment :
-
Créez une autorisation pour une clé KMS à l'aide de CreateGrant.
-
Affichez une autorisation pour une clé KMS à l'aide de ListGrants.
-
Retirez une subvention pour une clé KMS en utilisant RetireGrant.
-
Révoquez une autorisation pour une clé KMS en utilisant RevokeGrant.
Tous les exemples de code pour le AWS SDK for PHP sont disponibles ici GitHub
Informations d’identification
Avant d'exécuter l'exemple de code, configurez vos AWS informations d'identification, comme décrit dansInformations d’identification. Importez ensuite leAWS SDK for PHP, comme décrit dansUtilisation de base.
Pour plus d'informations sur l'utilisation de AWS Key Management Service (AWS KMS), consultez le manuel du AWS KMS développeur.
Créer un octroi
Pour créer une subvention pour unAWS KMS key, utilisez l'CreateGrantopération.
Importations
require 'vendor/autoload.php';
use Aws\Exception\AwsException;
Exemple de code
$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";
}
Affichage d’un octroi
Pour obtenir des informations détaillées sur les subventions sur unAWS KMS key, utilisez l'ListGrantsopération.
Importations
require 'vendor/autoload.php';
use Aws\Exception\AwsException;
Exemple de code
$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";
}
Retrait d'une subvention
Pour annuler une subvention pour unAWS KMS key, utilisez l'RetireGrantopération. Résilier un octroi pour nettoyer une fois que vous avez fini de l'utiliser.
Importations
require 'vendor/autoload.php';
use Aws\Exception\AwsException;
Exemple de code
$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";
}
Révoquer une subvention
Pour révoquer une subvention accordée à unAWS KMS key, utilisez l'RevokeGrantopération. Vous pouvez révoquer un octroi pour refuser explicitement les opérations qui en dépendent.
Importations
require 'vendor/autoload.php';
use Aws\Exception\AwsException;
Exemple de code
$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";
}