php版本kms,通过 AWS KMS API 和 AWS SDK for PHP 版本 3 使用密钥 - 适用于 PHP 的 AWS 开发工具包...

AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

通过 AWS KMS API 和 AWS SDK for PHP 版本 3 使用密钥

AWS Key Management Service (AWS KMS) 中的主要资源是客户主密钥 (CMK)。您可以使用 CMK 加密数据。

以下示例演示如何:

版本 3 的所有示例代码在 AWS SDK for PHP 上的此处提供。GitHub

Credentials

有关使用 AWS Key Management Service (AWS KMS) 的更多信息,请参阅 AWS KMS 开发人员指南。

创建 CMK

导入

require 'vendor/autoload.php';

use Aws\Kms\KmsClient;

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 操作。该操作返回其创建的数据密钥的明文和加密副本。指定要根据其生成数据密钥的客户主密钥 (CMK)。

导入

require 'vendor/autoload.php';

use Aws\Kms\KmsClient;

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

}

查看 CMK

要获取有关 CMK 的详细信息(包括 CMK 的 Amazon 资源名称 (ARN) 和密钥状态),请使用 DescribeKey 操作。

DescribeKey 不会获取别名。要获取别名,请使用 ListAliases 操作。

导入

require 'vendor/autoload.php';

use Aws\Kms\KmsClient;

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

}

获取 CMK 的密钥 ID 和密钥ARNs

要获取 CMK 的 ID 和 ARN,请使用 ListAliases 操作。

导入

require 'vendor/autoload.php';

use Aws\Kms\KmsClient;

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

}

启用 CMK

要启用已禁用的 CMK,请使用 EnableKey 操作。

导入

require 'vendor/autoload.php';

use Aws\Kms\KmsClient;

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

}

禁用 CMK

要禁用 CMK,请使用 DisableKey 操作。禁用 CMK 可防止其被使用。

导入

require 'vendor/autoload.php';

use Aws\Kms\KmsClient;

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

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值