

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 更新別名
<a name="alias-update"></a>

由於別名是獨立的資源，因此您可以變更與別名相關聯的 KMS 金鑰。例如，如果 `test-key` 別名與一個 KMS 金鑰相關聯，則您可以使用 [UpdateAlias](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdateAlias.html) 操作，將其與不同的 KMS 金鑰建立關聯。這是[手動輪換 KMS 金鑰](rotate-keys.md)的幾種方式之一，不會變更其金鑰材料。您也可以更新 KMS 金鑰，以便針對新資源使用 KMS 金鑰的應用程式現在使用不同的 KMS 金鑰。

您無法在 AWS KMS 主控台中更新別名。您也無法使用 `UpdateAlias` (或任何其他操作) 來變更別名名名稱。若要變更別名名稱，請刪除目前別名，然後為 KMS 金鑰建立新的別名。

更新別名時，當前 KMS 金鑰和新 KMS 金鑰必須為相同類型 (兩者皆為對稱或非對稱或 HMAC)。也必須有相同的金鑰用途 (`ENCRYPT_DECRYPT` 或 `SIGN_VERIFY` 或 GENERATE\$1VERIFY\$1MAC)。這項限制可防止使用別名的程式碼中出現密碼編譯錯誤。

下列範例透過使用 [ListAliases](https://docs.aws.amazon.com/kms/latest/APIReference/API_ListAliases.html) 操作開始，以顯示 `test-key` 別名目前與 KMS 金鑰 `1234abcd-12ab-34cd-56ef-1234567890ab` 建立關聯。

```
$ aws kms list-aliases --key-id 1234abcd-12ab-34cd-56ef-1234567890ab
{
    "Aliases": [
        {
            "AliasName": "alias/test-key",
            "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/test-key",
            "TargetKeyId": "1234abcd-12ab-34cd-56ef-1234567890ab",
            "CreationDate": 1593622000.191,
            "LastUpdatedDate": 1593622000.191
        }
    ]
}
```

接下來，它使用 `UpdateAlias` 操作來將與 `test-key` 別名關聯的 KMS 金鑰變更為 KMS 金鑰 `0987dcba-09fe-87dc-65ba-ab0987654321`。您不需要指定目前關聯的 KMS 金鑰，只需指定新的 (「目標」) KMS 金鑰。別名名稱區分大小寫。

```
$ aws kms update-alias --alias-name 'alias/test-key' --target-key-id 0987dcba-09fe-87dc-65ba-ab0987654321
```

若要驗證別名是否已與目標 KMS 金鑰關聯，請再次使用 `ListAliases` 操作。此 AWS CLI 命令使用 `--query` 參數僅取得`test-key`別名。`TargetKeyId` 和 `LastUpdatedDate` 欄位會更新。

```
$ aws kms list-aliases --query 'Aliases[?AliasName==`alias/test-key`]'
[
    {
        "AliasName": "alias/test-key",
        "AliasArn": "arn:aws:kms:us-west-2:111122223333:alias/test-key",
        "TargetKeyId": "0987dcba-09fe-87dc-65ba-ab0987654321",
        "CreationDate": 1593622000.191,
        "LastUpdatedDate": 1604958290.154
    }
]
```