Arbeiten mit Erteilungen unter Verwendung der AWS KMS API und der AWS SDK for PHP Version 3 - AWS SDK for PHP

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Arbeiten mit Erteilungen unter Verwendung der AWS KMS API und der AWS SDK for PHP Version 3

Eine Erteilung ist ein weiterer Mechanismus für die Bereitstellung von Berechtigungen. Es ist eine Alternative zur Schlüsselrichtlinie. Sie können Erteilungen verwenden, um langfristigen Zugriff zu gewähren, der es AWSPrinzipalen ermöglicht, Ihr AWS Key Management Service (AWS KMS) vom Kunden verwaltetes zu verwendenAWS KMS keys. Weitere Informationen finden Sie unter Erteilungen in AWS KMS im AWS Key Management Service -Entwicklerhandbuch.

In den nachstehenden Beispielen wird Folgendes veranschaulicht:

  • Erstellen Sie eine Erteilung für einen KMS-Schlüssel mit CreateGrant.

  • Zeigen Sie eine Erteilung für einen KMS-Schlüssel mit anListGrants.

  • Außerbetriebnahme einer Erteilung für einen KMS-Schlüssel mit RetireGrant.

  • Widerrufen Sie eine Erteilung für einen KMS-Schlüssel mit RevokeGrant.

Der gesamte Beispielcode für die AWS SDK for PHP ist hier auf GitHubverfügbar.

Anmeldeinformationen

Bevor Sie den Beispielcode ausführen, konfigurieren Sie Ihre AWS Anmeldeinformationen, wie unter beschriebenAnmeldeinformationen. Importieren Sie dann die AWS SDK for PHP, wie unter beschriebenGrundlegende Verwendung.

Weitere Informationen zur Verwendung von AWS Key Management Service (AWS KMS) finden Sie im AWS KMS -Entwicklerhandbuch.

Erstellen einer Erteilung

Um eine Erteilung für ein zu erstellenAWS KMS key, verwenden Sie die -CreateGrantOperation.

Importe

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

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

Anzeigen einer Gewährung

Verwenden Sie die -ListGrantsOperationAWS KMS key, um detaillierte Informationen zu den Erteilungen für ein zu erhalten.

Importe

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

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

Außerbetriebnahme einer Erteilung

Um eine Erteilung für ein aufzuhebenAWS KMS key, verwenden Sie die -RetireGrantOperation. Heben Sie nicht mehr benötigte Erteilungen auf.

Importe

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

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

Widerrufen einer Erteilung

Um eine Erteilung für ein zu widerrufenAWS KMS key, verwenden Sie die -RevokeGrantOperation. Sie können eine Erteilung widerrufen, um ausdrücklich Produktionen abzulehnen, die diese Erteilung unbedingt benötigen.

Importe

require 'vendor/autoload.php'; use Aws\Exception\AwsException;

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