翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS KMS API と AWS SDK for PHP バージョン 3 を使用したキーの操作
AWS Key Management Service (AWS KMS) のプライマリリソースは ですAWS KMS keys。KMS キーを使用してデータを暗号化できます。
以下の例では、次の方法を示しています。
-
CreateKey を使用してカスタマー KMS キーを作成する。
-
GenerateDataKey を使用してデータキーを生成する。
-
DescribeKey を使用して KMS キーを表示する。
-
ListKeys を使用して KMS キーのキー ID とキー ARN を取得する
-
EnableKey を使用して KMS キーを有効にする。
-
DisableKey を使用して KMS キーを無効にする
のすべてのサンプルコード AWS SDK for PHP はGitHub で入手できます
認証情報
サンプルコードを実行する前に、「」の説明に従って AWS 認証情報を設定しますAWS SDK for PHP バージョン 3 AWS を使用した での認証。次に AWS SDK for PHP、「」の説明に従って をインポートしますAWS SDK for PHP バージョン 3 のインストール。
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"; }