AWS KMS API および AWS SDK for PHP バージョン 3を使用した許可の操作 - AWS SDK for PHP

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS KMS API および AWS SDK for PHP バージョン 3を使用した許可の操作

許可は、アクセス許可を付与するための別のメカニズムです。キーポリシーに代わるものです。許可を使用すると、AWS プリンシパルで AWS Key Management Service (AWS KMS) カスタマー管理型の CMK を使用できる、長期のアクセスを付与することができます。AWS KMS keys詳細については、AWS Key Management Service デベロッパーガイドの「AWS KMS に付与する」を参照してください。

以下の例では、次の方法を示しています。

  • を使用して KMS キーの許可を作成しますCreateGrant

  • を使用して KMS キーの許可を表示しますListGrants

  • を使用して KMS キーのグラントを廃止にしますRetireGrant

  • を使用して KMS キーの許可を取り消しますRevokeGrant

のすべてのサンプルコードAWS SDK for PHPは、 にあります GitHub

認証情報

サンプルコードを実行する前に、AWS の認証情報を設定します (認証情報 を参照)。AWS SDK for PHP からのインポート (基本的な使用法 を参照)。

AWS Key Management Service (AWS KMS) の使用の詳細については、「AWS KMS デベロッパーガイド」を参照してください。

許可を作成する

の許可を作成するにはAWS KMS key、 CreateGrantオペレーションを使用します。

インポート

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

サンプルコード

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

許可を表示する

の許可に関する詳細情報を取得するにはAWS KMS key、 ListGrantsオペレーションを使用します。

インポート

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

サンプルコード

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

許可を無効にする

の許可を使用停止にするにはAWS KMS key、 RetireGrantオペレーションを使用します。許可の使用が完了した後でクリーンアップを実行する場合に、許可を無効にします。

インポート

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

サンプルコード

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

許可を取り消す

に対する許可を取り消すにはAWS KMS key、 RevokeGrantオペレーションを使用します。許可を取り消して、許可に依存しているオペレーションを明示的に拒否することができます。

インポート

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

サンプルコード

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