本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
通过 AWS KMS API 和 AWS SDK for PHP 版本 3 使用别名
别名是 AWS Key Management Service (AWS KMS) 客户主密钥 (CMK) 的可选显示名称。
以下示例演示如何:
版本 3 的所有示例代码在 AWS SDK for PHP 上的此处提供。GitHub
Credentials
有关使用 AWS Key Management Service (AWS KMS) 的更多信息,请参阅 AWS KMS 开发人员指南。
创建别名
要为 CMK 创建别名,请使用 CreateAlias 操作。别名在账户和所在 AWS 区域中必须是唯一的。如果您为已有别名的 CMK 创建别名,CreateAlias 会为同一 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';
$aliasName = "alias/projectKey1";
try {
$result = $KmsClient->createAlias([
'AliasName' => $aliasName,
'TargetKeyId' => $keyId,
]);
var_dump($result);
} catch (AwsException $e) {
// output error message if fails
echo $e->getMessage();
echo "\n";
}
查看别名
要列出所有别名,请使用 ListAliases 操作。该响应包括由 AWS 服务定义,但不与 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'
]);
$limit = 10;
try {
$result = $KmsClient->listAliases([
'Limit' => $limit,
]);
var_dump($result);
} catch (AwsException $e) {
// output error message if fails
echo $e->getMessage();
echo "\n";
}
更新别名
要将现有别名与其他 CMK 关联,请使用 UpdateAlias 操作。
导入
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';
$aliasName = "alias/projectKey1";
try {
$result = $KmsClient->updateAlias([
'AliasName' => $aliasName,
'TargetKeyId' => $keyId,
]);
var_dump($result);
} catch (AwsException $e) {
// output error message if fails
echo $e->getMessage();
echo "\n";
}
删除别名
要删除别名,请使用 DeleteAlias 操作。删除别名不会影响底层 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'
]);
$aliasName = "alias/projectKey1";
try {
$result = $KmsClient->deleteAlias([
'AliasName' => $aliasName,
]);
var_dump($result);
} catch (AwsException $e) {
// output error message if fails
echo $e->getMessage();
echo "\n";
}