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

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

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

AWS Key Management Service (AWS KMS) の主なリソースは、AWS KMS keys です。KMS キーを使用してデータを暗号化できます。

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

  • を使用してカスタマー KMS キーを作成しますCreateKey

  • を使用してデータキーを生成しますGenerateDataKey

  • を使用して KMS キーを表示しますDescribeKey

  • を使用して、KMS キーのキー IDs とキー ARN を取得しますListKeys

  • を使用して KMS キーを有効にしますEnableKey

  • を使用して KMS キーを無効にしますDisableKey

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

認証情報

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

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

KMS キーを作成する

KMS キー を作成するには、 CreateKeyオペレーションを使用します。

インポート

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

サンプルコード

$KmsClient = new Aws\Kms\KmsClient([ 'profile' => 'default', 'version' => '2014-11-01', 'region' => 'us-east-2' ]); //Creates a customer master key (CMK) in the caller's AWS account. $desc = "Key for protecting critical data"; try { $result = $KmsClient->createKey([ 'Description' => $desc, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

データキーを生成する

データ暗号化キーを生成するには、 GenerateDataKeyオペレーションを使用します。このオペレーションでは、作成されるデータキーのプレーンテキストおよび暗号化されたコピーが返されます。データキーを生成する AWS KMS key を指定します。

インポート

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

KMS キーを表示する

KMS キーの Amazon リソースネーム (ARN) やキーステータス など、KMS キーに関する詳細情報を取得するにはDescribeKeyオペレーションを使用します。

DescribeKey はエイリアスを取得しません。エイリアスを取得するには、 ListAliasesオペレーションを使用します。

インポート

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

KMS キーのキー ID およびキー ARN を取得する

KMS キーの ID と ARN を取得するには、 ListAliasesオペレーションを使用します。

インポート

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

サンプルコード

$KmsClient = new Aws\Kms\KmsClient([ 'profile' => 'default', 'version' => '2014-11-01', 'region' => 'us-east-2' ]); $limit = 10; try { $result = $KmsClient->listKeys([ 'Limit' => $limit, ]); var_dump($result); } catch (AwsException $e) { // output error message if fails echo $e->getMessage(); echo "\n"; }

KMS キーを有効にする

無効な KMS キーを有効にするには、 EnableKeyオペレーションを使用します。

インポート

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

KMS キーを無効にする

KMS キーを無効にするには、 DisableKeyオペレーションを使用します。KMS キーを無効にすると、使用されなくなります。

インポート

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