

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

# 建立多區域複本金鑰
<a name="multi-region-keys-replicate"></a>

您可以在 AWS KMS 主控台中使用 [ReplicateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReplicateKey.html) 操作或使用 [AWS::KMS::ReplicaKey CloudFormation 範本](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-replicakey.html)來建立[多區域複本金鑰](multi-region-keys-overview.md#mrk-primary-key)。您無法使用 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 操作來建立複本金鑰。

您可以使用這些程序複製任何多區域主要金鑰，包括[對稱加密 KMS 金鑰](symm-asymm-choose-key-spec.md#symmetric-cmks)、[非對稱 KMS 金鑰](symmetric-asymmetric.md)或 [HMAC KMS 金鑰](hmac.md)。

當這項操作完成時，新的複本金鑰會有短暫的 `Creating` [金鑰狀態](key-state.md)。當建立新複本金鑰的程序完成數秒後，此金鑰狀態會變更為 `Enabled`（或者`PendingImport`如果您建立具有[匯入金鑰材料](importing-keys.md)的多區域金鑰）。雖然金鑰狀態為 `Creating`，您可以管理金鑰，但還無法在密碼編譯操作中使用金鑰。如果您要以程式設計方式建立並使用複本金鑰，請在 `KMSInvalidStateException` 上重試或呼叫 [DescribeKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html) 以檢查其 `KeyState` 值，然後再使用。

如果錯誤地刪除了複本金鑰，則可使用此程序重新建立。如果您在同一個區域中複寫相同的主要金鑰，則您建立的新複本金鑰將具有相同的[共用屬性](multi-region-keys-overview.md#mrk-sync-properties)作為原始複本金鑰。

**重要**  
請勿在別名、說明或標籤包含機密或敏感資訊。這些欄位可能在 CloudTrail 日誌與其他輸出中以純文字顯示。

若要使用 AWS CloudFormation 範本建立複本金鑰，請參閱*AWS CloudFormation 《 使用者指南*》中的 [AWS::KMS::ReplicaKey](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-replicakey.html)。

## 步驟 1：選擇複本區域
<a name="replica-region"></a>

您通常會 AWS 區域 根據您的商業模型和法規要求，選擇將多區域金鑰複寫到 。例如，您可能會將金鑰複寫至您保留資源的區域。或者，為了符合災難復原要求，您可以將金鑰複寫至地理位置偏遠的區域。

以下是複本區域 AWS KMS 的需求。如果您選擇的區域不符合這些要求，則嘗試複寫金鑰會失敗。
+ **每個區域一個相關的多區域金鑰** – 您無法在與其主要金鑰相同的區域中建立複本金鑰，或在與主要金鑰之另一個複本相同的區域中建立複本金鑰。

  如果嘗試在已有該主要金鑰的區域中複寫主要金鑰，則嘗試會失敗。如果區域中目前的複本金鑰處於 [`PendingDeletion` 金鑰狀態](key-state.md)，您可以[取消複本金鑰刪除](deleting-keys-scheduling-key-deletion.md)，或等到複本金鑰刪除完成。
+ **同一區域中多個不相關的多個區域金鑰** – 您可以在同一區域中擁有多個不相關的多區域金鑰。例如，您可以在 `us-east-1` 區域中有兩個多區域主要金鑰。每個主要金鑰都可以在 `us-west-2` 區域中有複本金鑰。
+ **相同分割區中的區域** – 複本金鑰區域必須位於與主要金鑰區域相同的 [AWS 分割區](https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html)中。
+ **必須啟用區域** – 如果區域[預設為停用](https://docs.aws.amazon.com/general/latest/gr/rande-manage.html#rande-manage-enable)，則您無法在該區域中建立任何資源，直到為您的 AWS 帳戶啟用。

## 步驟 2：建立複本金鑰
<a name="create-replica-keys"></a>

**注意**  
建立複本金鑰時，請仔細考慮您選取要管理和使用複本金鑰的 IAM 使用者和角色。IAM 政策可授權其他 IAM 使用者和角色來管理 KMS 金鑰。  
IAM 最佳實務不建議使用具有長期憑證的 IAM 使用者。盡可能使用提供臨時憑證的 IAM 角色。如需詳細資訊，請參閱《IAM 使用者指南》**中的 [IAM 中的安全性最佳實務](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。

### 使用 AWS KMS 主控台
<a name="replicate-console"></a>

在 AWS KMS 主控台中，您可以在相同的操作中建立多區域主索引鍵的一或多個複本。

此程序類似於在主控台中建立標準的單一區域 KMS 金鑰。不過，因為複本金鑰是以主要金鑰為基礎，所以您不會選取[共用屬性](multi-region-keys-overview.md#mrk-sync-properties)的值，例如金鑰規格 (對稱或非對稱)、金鑰使用情形或金鑰來源。

您可以指定不共用的屬性，包括別名、標籤、描述和金鑰政策。為了方便起見，主控台會顯示主要金鑰的目前屬性值，但您可以對其進行變更。即使您保持主索引鍵值， AWS KMS 也不會同步這些值。

**重要**  
請勿在別名、說明或標籤包含機密或敏感資訊。這些欄位可能在 CloudTrail 日誌與其他輸出中以純文字顯示。

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/kms](https://console.aws.amazon.com/kms) 的 AWS Key Management Service (AWS KMS) 主控台。

1. 若要變更 AWS 區域，請使用頁面右上角的區域選擇器。

1. 在導覽窗格中，選擇 **Customer managed keys** (客戶受管金鑰)。

1. 選取[多區域主要金鑰](multi-region-keys-overview.md#mrk-primary-key)的金鑰 ID 或別名。如此會開啟 KMS 金鑰的金鑰詳細資訊頁面。

   若要識別多區域主要金鑰，請使用右上角的工具圖示新增 **Regionality** (區域性) 資料欄至資料表。

1. 選擇 **Regionality** (區域性) 索引標籤。

1. 在 **Related multi-Region keys** (相關的多區域金鑰) 區段中，選擇 **Create new replica keys** (建立新的複本金鑰)。

   **Related multi-Region keys** (相關的多區域金鑰) 區段會顯示主要金鑰及其複本金鑰的區域。您可以使用此顯示來協助您為新複本金鑰選擇區域。

1. 選擇一或多個 AWS 區域。此操作程序會在您選取的每個區域中建立複本金鑰。

   功能表僅包含與主索引鍵位於相同 AWS 分割區中的區域。已有相關多區域金鑰的區域會顯示出來，但無法選取。您可能沒有許可將金鑰複寫至選單上的所有區域。

   完成選擇「區域」後，請關閉選單。隨即會顯示您選擇的區域。若要取消複寫至區域，請選擇區域名稱旁邊的 **X**。

1. 輸入複本金鑰的[別名](kms-alias.md)。

   主控台會顯示主要金鑰目前的其中一個別名，但您可以對其進行變更。您可以為多區域主要金鑰及其複本提供相同的別名或不同的別名。別名不是多區域金鑰的[共用屬性](multi-region-keys-overview.md#mrk-sync-properties)。 AWS KMS 不會同步多區域金鑰的別名。

   新增、刪除或更新別名可允許或拒絕 KMS 金鑰的許可。如需詳細資訊，請參閱 [適用於 的 ABAC AWS KMS](abac.md) 和 [使用別名來控制對 KMS 金鑰的存取](alias-authorization.md)。

1. (選用) 輸入複本金鑰的描述。

   主控台會顯示主要金鑰的當前描述，但您可以對其進行變更。描述不是多區域金鑰的共用屬性。您可以為多區域主要金鑰及其複本提供相同的描述或不同的描述。 AWS KMS 不會同步多區域金鑰的金鑰描述。

1. (選用) 輸入標籤索引鍵和選用標籤值。若要為複本金鑰指派超過一個標籤，請選擇 **Add tag** (新增標籤)。

   主控台會顯示目前連接至主要金鑰的標籤，但您可以對其進行變更。標籤不是多區域金鑰的共用屬性。您可以為多區域主金鑰及其複本提供相同的標籤或不同的標籤。 AWS KMS 不會同步多區域金鑰的標籤。

   標記或取消標記 KMS 金鑰可以允許或拒絕 KMS 金鑰的許可。如需詳細資訊，請參閱 [適用於 的 ABAC AWS KMS](abac.md) 和 [使用標籤來控制對 KMS 金鑰的存取](tag-authorization.md)。

1. 選取可管理複本金鑰的 IAM 使用者和角色。
**備註**  
 如果您在建立多區域主要金鑰時修改預設金鑰政策，主控台不會在建立複本金鑰期間提示您選取金鑰管理員或金鑰使用者 （步驟 11-15)。在此情況下，您需要手動將金鑰管理員和使用者的必要許可新增至金鑰政策，方法是在**編輯金鑰政策**步驟 （步驟 17) 中選取**編輯**。
這個步驟會開始為複本金鑰建立[金鑰政策](key-policies.md)的程序。主控台會顯示主要金鑰的當前金鑰政策，但您可以對其進行變更。金鑰政策不是多區域金鑰的共用屬性。您可以為多區域主要金鑰及其複本提供相同的金鑰政策或不同的金鑰政策。 AWS KMS 不會同步金鑰政策。您可以隨時變更任何 KMS 金鑰的金鑰政策。
 AWS KMS 主控台會將金鑰管理員新增至陳述式識別碼 下的金鑰政策`"Allow access for Key Administrators"`。修改此陳述式識別符可能會影響主控台顯示您對陳述式所做的更新。

1. (選用) 為了防止選取的 IAM 使用者和角色刪除此 KMS 金鑰，請在頁面底部的 **Key deletion** (金鑰刪除) 區段中，清除 **Allow key administrators to delete this key** (允許金鑰管理員刪除此金鑰) 核取方塊。

1. 選擇**下一步**。

1. 選取可將 KMS 金鑰用於[密碼編譯操作](kms-cryptography.md#cryptographic-operations)的 IAM 使用者和角色。
**注意**  
 AWS KMS 主控台會將金鑰使用者新增至陳述式識別符 `"Allow use of the key"`和 下的金鑰政策`"Allow attachment of persistent resources"`。修改這些陳述式識別符可能會影響主控台顯示您對陳述式所做的更新的方式。

1. （選用） 您可以允許其他 AWS 帳戶 使用此 KMS 金鑰進行密碼編譯操作。若要這樣做，請在頁面底部的**其他 AWS 帳戶** 區段中，選擇**新增另一個 AWS 帳戶**，然後輸入外部帳戶的 AWS 帳戶 識別號碼。若要新增多個外部帳戶，請重複此步驟。
**注意**  
若要允許外部帳戶中的主體使用 KMS 金鑰，外部帳戶的管理員必須建立 IAM 政策來提供這些許可。如需詳細資訊，請參閱[允許其他帳戶中的使用者使用 KMS 金鑰](key-policy-modifying-external-accounts.md)。

1. 選擇**下一步**。

1. 檢閱金鑰的金鑰政策陳述式。若要變更金鑰政策，請選取**編輯**。

1. 選擇**下一步**。

1. 檢閱您選擇的金鑰設定。您仍然可以返回並變更所有設定。

1. 選擇**完成**以建立多區域複本金鑰。

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

若要建立多區域複本金鑰，請使用 [ReplicateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReplicateKey.html) 操作。您無法使用 [CreateKey](https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateKey.html) 操作來建立複本金鑰。此操作一次會建立一個複本金鑰。您指定的區域必須符合複本金鑰的[區域要求](#replica-region)。

當使用 `ReplicateKey` 操作時，您不需要為多區域金鑰的任何[共用屬性](multi-region-keys-overview.md#mrk-sync-properties)指定值。共用屬性值會從主要金鑰複製並保持同步。然而，您可以為不共用的屬性指定值。否則， 會 AWS KMS 套用 KMS 金鑰的標準預設值，而非主金鑰的值。

**注意**  
如果您未指定 `Description`、 `KeyPolicy`或 `Tags` 參數的值， 會 AWS KMS 建立具有空字串描述、[預設金鑰政策且沒有標籤的複本金鑰](key-policy-default.md)。  
請勿在 `Description` 或 `Tags` 欄位包含機密或敏感資訊。這些欄位可能在 CloudTrail 日誌與其他輸出中以純文字顯示。

例如，以下命令會在亞太區域 (雪梨) 區域 (ap-southeast-2) 建立多區域複本金鑰。此複本金鑰是基於美國東部 (維吉尼亞北部) 區域 (us-east-1) 的主要金鑰進行建模，由 `KeyId` 參數值識別。此範例會接受所有其他屬性 (包括金鑰政策) 的預設值。

回應會描述新的複本金鑰。它包含共用屬性的欄位，例如 `KeyId`、`KeySpec`、`KeyUsage`，以及金鑰材料來源 (`Origin`)。它也包含獨立於主要金鑰的屬性，例如 `Description`、金鑰政策 (`ReplicaKeyPolicy`) 和標籤 (`ReplicaTags`)。

回應還包括金鑰 ARN 和主要金鑰的區域及其所有複本金鑰，包括剛剛在 ap-southeast-2 區域中建立的金鑰。在此範例中，`ReplicaKey` 元素顯示此主要金鑰已在歐洲 (愛爾蘭) 區域 (eu-west-1) 中複寫。

```
$ aws kms replicate-key \
    --key-id arn:aws:kms:us-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab \
    --replica-region ap-southeast-2
{
    "ReplicaKeyMetadata": {
        "MultiRegion": true,
        "MultiRegionConfiguration": {
            "MultiRegionKeyType": "REPLICA",
            "PrimaryKey": {
                "Arn": "arn:aws:kms:us-east-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
                "Region": "us-east-1"
            },
            "ReplicaKeys": [
                {
                    "Arn": "arn:aws:kms:ap-southeast-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
                    "Region": "ap-southeast-2"
                },
                {
                    "Arn": "arn:aws:kms:eu-west-1:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
                    "Region": "eu-west-1"
                }
            ]
        },
        "AWSAccountId": "111122223333",
        "Arn": "arn:aws:kms:ap-southeast-2:111122223333:key/mrk-1234abcd12ab34cd56ef1234567890ab",
        "CreationDate": 1607472987.918,
        "Description": "",
        "Enabled": true,
        "KeyId": "mrk-1234abcd12ab34cd56ef1234567890ab",
        "KeyManager": "CUSTOMER",
        "KeySpec": "SYMMETRIC_DEFAULT",
        "KeyState": "Enabled",
        "KeyUsage": "ENCRYPT_DECRYPT",
        "Origin": "AWS_KMS",
        "CustomerMasterKeySpec": "SYMMETRIC_DEFAULT",
        "EncryptionAlgorithms": [
            "SYMMETRIC_DEFAULT"
        ]
    },
    "ReplicaKeyPolicy": "{\n  \"Version\" : \"2012-10-17\",\n  \"Id\" : \"key-default-1\",...,
    "ReplicaTags": []
}
```