

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

# 更改一组多区域密钥中的主密钥
<a name="multi-region-update"></a>

每组相关的多区域密钥都必须具有一个主密钥。但您可以更改主密钥。此操作称为*更新主区域*，会将当前主密钥转换为副本密钥，并将其中一个相关的副本密钥转换为主密钥。如果您需要在维护副本密钥的同时删除当前主密钥，或者在与密钥管理员相同的区域中查找主密钥，则可以执行此操作。

您可以选择任何相关的副本密钥作为新的主密钥。操作开始时，主密钥和副本密钥都必须处于 `Enabled` [密钥状态](key-state.md)。

**`Updating` 密钥状态**  
即使在 `UpdatePrimaryRegion` 操作完成后，更新主区域的过程可能仍要进行几秒钟。在此期间，旧的主密钥和新的主密钥具有临时密钥状态 [Updating](#update-primary-keystate)（正在更新）。当密钥状态为 `Updating` 时，您可以在加密操作中使用密钥，但不能复制新的主密钥或执行某些管理操作，例如启用或禁用这些密钥。诸如之类的操作[DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)可能会将新旧主键同时显示为副本。当更新完成时，`Enabled` 密钥状态将恢复。  
有关 `Updating` 密钥状态的影响的信息，请参阅 [密 AWS KMS 钥的关键状态](key-state.md)。

**工作原理**  
假设您在美国东部（弗吉尼亚北部）(us-east-1) 区域中有一个主密钥，在欧洲（爱尔兰）(eu-west-1) 区域有一个副本密钥。您可以使用更新功能将美国东部（弗吉尼亚北部）(us-east-1) 区域中的主密钥更改为副本密钥，并将欧洲（爱尔兰）(eu-west-1) 区域中的副本密钥更改为主密钥。  

![\[更新主密钥\]](http://docs.aws.amazon.com/zh_cn/kms/latest/developerguide/images/multi-region-keys-update-sm.png)

更新过程完成后，欧洲（爱尔兰）(eu-west-1) 区域中的多区域密钥为多区域主密钥，美国东部（弗吉尼亚北部）(us-east-1) 区域中的密钥是其副本密钥。如果存在其他相关的副本密钥，则它们将成为新主密钥的副本密钥。下次 AWS KMS 同步多区域密钥的共享属性时，它将从新的主键中获取[共享属性](multi-region-keys-overview.md#mrk-sync-properties)并将其复制到其副本密钥，包括以前的主键。  
更新操作不会影响任何多区域密钥的[密钥 ARN](concepts.md#key-id-key-ARN)。它也不会影响共享属性（如密钥材料）或独立属性（如密钥策略）。不过，您可能需要对新的主密钥[的密钥策略进行更新](key-policy-modifying.md)。例如，您可能需要向新的主[密钥添加 kms: ReplicateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReplicateKey.html) 权限以供受信任的委托人使用，然后将其从新的副本密钥中删除。

## 更新主区域
<a name="update-primary-region"></a>

您可以将副本密钥转换为主密钥，从而将以前的主密钥更改为副本密钥。要更新主区域，两个区域都[需要 kms: UpdatePrimaryRegion](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdatePrimaryRegion.html) 权限。

您可以在 AWS KMS 控制台中或使用[UpdatePrimaryRegion](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdatePrimaryRegion.html)操作来更新主要区域。

### 使用控制 AWS KMS 台
<a name="update-primary-console"></a>

您可以在 AWS KMS 控制台中更新主键。从当前主密钥的密钥详细信息页面开始。

1. 登录 AWS 管理控制台 并在 [https://console.aws.amazon.com/km](https://console.aws.amazon.com/kms) s 处打开 AWS Key Management Service (AWS KMS) 控制台。

1. 要更改 AWS 区域，请使用页面右上角的区域选择器。

1. 在导航窗格中，选择**客户托管密钥**。

1. 选择[多区域主密钥](multi-region-keys-overview.md#mrk-primary-key)的密钥 ID 或别名。这将打开主密钥的密钥详细信息页面。

   要识别多区域主密钥，请使用右上角的工具图标将 **Regionality**（区域性）列添加到表中。

1. 选择 **Regionality**（区域性）选项卡。

1. 在 **Primary key**（主密钥）部分中，选择 **Change primary Region**（更改主区域）。

1. 选择新的主密钥的区域。您只能从菜单中选择一个区域。

   **Change primary Regions**（更改主区域）菜单仅包含具有相关多区域密钥的区域。您可能没有[权限更新](multi-region-keys-auth.md#mrk-auth-update)菜单上的所有区域中的主区域。

1. 选择 **Change primary Region**（更改主区域）。

### 使用 AWS KMS API
<a name="update-primary-api"></a>

要更改一组相关的多区域密钥中的主键，请使用[UpdatePrimaryRegion](https://docs.aws.amazon.com/kms/latest/APIReference/API_UpdatePrimaryRegion.html)操作。

使用 `KeyId` 参数来标识当前主密钥。使用`PrimaryRegion`参数来指示新 AWS 区域 主键的。如果主密钥在新的主区域中还没有副本，则操作将失败。

以下示例将主密钥从 `us-west-2` 区域中的多区域密钥更改为其在 `eu-west-1` 区域中的副本密钥。`KeyId` 参数标识 `us-west-2` 区域中的当前主密钥。该`PrimaryRegion`参数指定 AWS 区域 了新主键的`eu-west-1`。

```
$ aws kms update-primary-region \
      --key-id arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab \
      --primary-region eu-west-1
```

如果成功，此操作不会返回任何输出，只返回 HTTP 状态代码。要查看效果，请对其中一个多区域密钥调用该[DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html)操作。您可能需要等到密钥状态返回 `Enabled`。虽然密钥状态为 [Updating](#update-primary-keystate)（正在更新），但密钥的值可能仍处于变化中。

例如，以下 `DescribeKey` 调用将获取有关 `eu-west-1` 区域中多区域密钥的详细信息。输出显示，`eu-west-1` 区域中的多区域密钥现在为主密钥。`us-west-2` 区域中相关的多区域密钥（相同的密钥 ID）现在已成为副本密钥。

```
$ aws kms describe-key \
      --key-id arn:aws:kms:eu-west-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab \

{
    "KeyMetadata": {
        "AWSAccountId": "111122223333",
        "KeyId": "mrk-1234abcd12ab34cd56ef1234567890ab",
        "Arn": "arn:aws:kms:eu-west-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
        "CreationDate": 1609193147.831,
        "Enabled": true,
        "Description": "multi-region-key",
        "KeySpec": "SYMMETRIC_DEFAULT",
        "KeyState": "Enabled",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "Origin": "AWS_KMS",
        "KeyManager": "CUSTOMER",
        "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
        "EncryptionAlgorithms": [
            "SYMMETRIC_DEFAULT"
        ],
        "MultiRegion": true,
        "MultiRegionConfiguration": { 
           "MultiRegionKeyType": "PRIMARY",
           "PrimaryKey": { 
              "Arn": "arn:aws:kms:eu-west-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
              "Region": "eu-west-1"
           },
           "ReplicaKeys": [ 
              { 
                 "Arn": "arn:aws:kms:us-west-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
                 "Region": "us-west-2"
              }
           ]
        }
    }
}
```