Utilisation des politiques AWS KMS clés à l'aide de la AWS SDK for PHP version 3 - AWS SDK for PHP

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 politiques AWS KMS clés à l'aide de la AWS SDK for PHP version 3

Lorsque vous créez une clé KMS AWS KMS key, vous déterminez qui peut utiliser et gérer cette clé KMS. Ces autorisations sont contenues dans un document appelé politique de clé. Vous pouvez utiliser la politique clé pour ajouter, supprimer ou modifier des autorisations à tout moment pour une clé KMS gérée par le client, mais vous ne pouvez pas modifier la politique clé pour une clé KMS AWS gérée. Pour plus d'informations, consultez Authentification et contrôle d'accès pour AWS KMS.

Les exemples suivants montrent comment :

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.

Répertorier toutes les politiques clés

Pour obtenir les noms des politiques clés pour une clé KMS, utilisez l'ListKeyPoliciesopé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->listKeyPolicies([ 'KeyId' => $keyId, 'Limit' => $limit, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Récupérer une politique clé

Pour obtenir la politique de clé d'une clé KMS, utilisez l'GetKeyPolicyopération.

GetKeyPolicy nécessite un nom de politique. À moins que vous n'ayez créé une politique clé lors de la création de la clé KMS, le seul nom de politique valide est le nom par défaut. Pour en savoir plus sur la politique relative aux clés par défaut, consultez le guide du AWS Key Management Service développeur.

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'; $policyName = "default"; try { $result = $KmsClient->getKeyPolicy([ 'KeyId' => $keyId, 'PolicyName' => $policyName ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

Définissez une politique clé

Pour établir ou modifier une politique de clé pour une clé KMS, utilisez l'PutKeyPolicyopération.

PutKeyPolicy nécessite un nom de politique. À moins que vous n'ayez créé une politique clé lors de la création de la clé KMS, le seul nom de politique valide est le nom par défaut. Pour en savoir plus sur la politique relative aux clés par défaut, consultez le guide du AWS Key Management Service développeur.

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'; $policyName = "default"; try { $result = $KmsClient->putKeyPolicy([ 'KeyId' => $keyId, 'PolicyName' => $policyName, 'Policy' => '{ "Version": "2012-10-17", "Id": "custom-policy-2016-12-07", "Statement": [ { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/root" }, "Action": [ "kms:*" ], "Resource": "*" }, { "Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::111122223333:user/ExampleUser" }, "Action": [ "kms:Encrypt*", "kms:GenerateDataKey*", "kms:Decrypt*", "kms:DescribeKey*", "kms:ReEncrypt*" ], "Resource": "*" } ] } ' ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }