

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

# 使用 Amazon KMS API 和 适用于 PHP 的 Amazon SDK 版本 3 处理别名
使用别名

Amazon Key Management Service (Amazon KMS) 为[Amazon KMS key](https://docs.amazonaws.cn/kms/latest/developerguide/concepts.html#kms_keys)被叫的别名提供可选的显示名称。

以下示例演示如何：
+ 使用创建别名[CreateAlias](https://docs.amazonaws.cn/aws-sdk-php/v3/api/api-kms-2014-11-01.html#createalias)。
+ 使用查看别名[ListAliases](https://docs.amazonaws.cn/aws-sdk-php/v3/api/api-kms-2014-11-01.html#listaliases)。
+ 使用更新别名[UpdateAlias](https://docs.amazonaws.cn/aws-sdk-php/v3/api/api-kms-2014-11-01.html#updatealias)。
+ 使用删除别名[DeleteAlias](https://docs.amazonaws.cn/aws-sdk-php/v3/api/api-kms-2014-11-01.html#deletealias)。

的所有示例代码都可以在[此 适用于 PHP 的 Amazon SDK 处找到 GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/php/example_code)。

## 凭据


在运行示例代码之前，请配置您的 Amazon 证书，如中所述[Amazon 使用 适用于 PHP 的 Amazon SDK 版本 3 进行身份验证](credentials.md)。然后导入 适用于 PHP 的 Amazon SDK，如中所述[安装 适用于 PHP 的 Amazon SDK 版本 3](getting-started_installation.md)。

有关使用 Amazon Key Management Service (Amazon KMS) 的更多信息，请参阅《[Amazon KMS 开发者指南》](https://docs.amazonaws.cn/kms/latest/developerguide/)。

## 创建 别名


要为 KMS 密钥创建别名，请使用[CreateAlias](https://docs.amazonaws.cn/kms/latest/APIReference/API_CreateAlias.html)操作。别名在账户和 Amazon 地区中必须是唯一的。如果为已有别名的 KMS 密钥创建别名，`CreateAlias` 会为同一 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';
$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";
}
```

## 查看别名


要列出调用方 Amazon Web Services 账户 和中的所有别名 Amazon Web Services 区域，请使用[ListAliases](https://docs.amazonaws.cn/kms/latest/APIReference/API_ListAliases.html)操作。

 **导入** 

```
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->listAliases([
        'Limit' => $limit,
    ]);
    var_dump($result);
} catch (AwsException $e) {
    // output error message if fails
    echo $e->getMessage();
    echo "\n";
}
```

## 更新别名


要将现有别名与其他 KMS 密钥关联，请使用[UpdateAlias](https://docs.amazonaws.cn/kms/latest/APIReference/API_UpdateAlias.html)操作。

 **导入** 

```
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';
$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](https://docs.amazonaws.cn/kms/latest/APIReference/API_DeleteAlias.html)操作。删除别名不会影响底层 KMS 密钥。

 **导入** 

```
require 'vendor/autoload.php';

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