

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

# 使用 AWS RAM 和 Amazon Aurora 進行跨帳戶複製
<a name="Aurora.Managing.Clone.Cross-Account"></a>

透過將 AWS Resource Access Manager (AWS RAM) 與 Amazon Aurora 搭配使用，您可以與其他 AWS 帳戶或組織共用屬於您 AWS 帳戶的 Aurora 資料庫叢集和複製。例如*跨帳戶複製*會比建立並還原資料庫快照更快。您可以建立其中一個 Aurora 資料庫叢集的複製，並共享該複製。或者，您可以與其他 AWS 帳戶共用 Aurora 資料庫叢集，並讓帳戶持有人建立複製。您選擇的方式會依使用案例而定。

例如，您可能需要定期與組織內部稽核團隊共享財務資料庫的複製。在此情況下，您的稽核團隊會有其使用之應用程式的自有 AWS 帳戶。您可以授予稽核團隊的 AWS 帳戶存取 Aurora 資料庫叢集的許可，並視需要複製它。

另一方面，如果外部供應商稽核您的財務資料，您可能會偏好由您自行建立複製。然後，您僅需授予外部供應商複製的存取權。

您也可以使用跨帳戶複製來支援許多相同的使用案例，以便在同一個 AWS 帳戶中複製，例如開發和測試。例如，您的組織可能會使用不同的 AWS 帳戶進行生產、開發、測試等。如需詳細資訊，請參閱[Aurora 複製的概觀](Aurora.Managing.Clone.md#Aurora.Clone.Overview)。

因此，您可能想要與另一個 AWS 帳戶共用複製，或允許另一個 AWS 帳戶建立 Aurora 資料庫叢集的複製。在任一情況下，請先使用 來 AWS RAM 建立共用物件。如需在帳戶之間 AWS 共用 AWS 資源的完整資訊，請參閱[AWS RAM 《 使用者指南》](https://docs.aws.amazon.com/ram/latest/userguide/)。

建立跨帳戶複製需要擁有原始叢集 AWS 的帳戶以及建立複製 AWS 的帳戶執行動作。首先，原始叢集擁有者需要修改叢集，允許一或多個其他帳戶複製該叢集。如果有任何帳戶位於不同的 AWS 組織中， AWS 會產生共用邀請。另一個帳戶必須接受邀請才能繼續進行。然後，每個獲得授權的帳戶便可以複製叢集。在整個過程中，可使用叢集的唯一 Amazon Resource Name (ARN) 來識別叢集。

如同在相同 AWS 帳戶中複製一樣，只有在來源或複製對資料進行變更時，才會使用額外的儲存空間。然後，此時會收取儲存裝置費用。若來源叢集遭到刪除，儲存成本便會平均分配到剩餘的複製叢集。

**Topics**
+ [

## 跨帳戶複製的限制
](#Aurora.Managing.Clone.CrossAccount.Limitations)
+ [

## 允許其他 AWS 帳戶複製您的叢集
](#Aurora.Managing.Clone.CrossAccount.yours)
+ [

## 複製另一個 AWS 帳戶擁有的叢集
](#Aurora.Managing.Clone.CrossAccount.theirs)

## 跨帳戶複製的限制
<a name="Aurora.Managing.Clone.CrossAccount.Limitations"></a>

 Aurora 跨帳戶複製的限制如下：
+ 您無法跨 AWS 帳戶複製Aurora Serverless v1叢集。
+ 您無法檢視或接受與 共用資源的邀請 AWS 管理主控台。使用 AWS CLI、Amazon RDS API 或 AWS RAM 主控台來檢視和接受共用資源的邀請。
+ 您只能從與 共用的資源建立新的複製 AWS 帳戶。這適用於共用資源是原始 Aurora 資料庫叢集或先前建立的複製。
+ 您只能從與您 AWS 帳戶共用的複製中建立新的複製。
+ 您無法共用已與 AWS 您的帳戶共用的資源 （區塊或 Aurora 資料庫叢集）。
+ 您可從任何單一 Aurora 資料庫叢集建立最多 15 個跨帳戶複製。
+  15 個跨帳戶複製的每個都必須由不同的 AWS 帳戶擁有。也就是說，您只能在任何帳戶中建立一個叢集的跨帳戶複製 AWS 。
+  複製叢集後，為了對跨帳戶複製強制實施限制，原始叢集及其複製將視為相同。您無法在同一帳戶中同時建立原始叢集和複製叢集的跨 AWS 帳戶複製。原始叢集及其任何複製的跨帳戶複製總數不得超過 15 個。
+ 除非叢集處於 `ACTIVE` 狀態，否則您無法與其他 AWS 帳戶共用 Aurora 資料庫叢集。
+ 您無法重新命名已與其他 AWS 帳戶共用的 Aurora 資料庫叢集。
+  您無法針對使用預設 RDS 金鑰加密的叢集建立跨帳戶複製。
+ 您無法從另一個 AWS 帳戶共用的加密 Aurora 資料庫叢集，在一個 AWS 帳戶中建立未加密的複製。叢集擁有者必須授予許可，才能存取來源叢集的 AWS KMS key。不過，您可以在建立複製時使用不同金鑰。

## 允許其他 AWS 帳戶複製您的叢集
<a name="Aurora.Managing.Clone.CrossAccount.yours"></a>

 若要允許其他 AWS 帳戶複製您擁有的叢集，請使用 AWS RAM 設定共用許可。這樣做也會向不同 AWS 組織中的每個其他帳戶傳送邀請。

 如需在 AWS RAM 主控台中共享您擁有的資源的程序，請參閱*AWS RAM 《 使用者指南*》中的[共享您擁有的資源](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing.html)。

**Topics**
+ [

### 將複製叢集的許可授予其他 AWS 帳戶
](#Aurora.Managing.Clone.CrossAccount.granting)
+ [

### 檢查您擁有的叢集是否與其他 AWS 帳戶共用
](#Aurora.Managing.Clone.CrossAccount.confirming)

### 將複製叢集的許可授予其他 AWS 帳戶
<a name="Aurora.Managing.Clone.CrossAccount.granting"></a>

 若您要共用的叢集經過加密，您也要共用叢集的 AWS KMS key 。您可以允許一個 AWS 帳戶中的 AWS Identity and Access Management (IAM) 使用者或角色在不同帳戶中使用 KMS 金鑰。

若要這樣做，請先將外部帳戶 （根使用者） 新增至 KMS 金鑰的金鑰政策 AWS KMS。您不需要將個別使用者或角色新增到金鑰政策，只需新增擁有這些使用者或角色的外部帳戶。您只能共用您建立的 KMS 金鑰，而非預設的 RDS 服務金鑰。如需 KMS 金鑰存取控制的相關資訊，請參閱[AWS KMS的身分驗證及存取控制](https://docs.aws.amazon.com/kms/latest/developerguide/control-access.html)。

#### 主控台
<a name="Aurora.Managing.Clone.CrossAccount.granting.console"></a>

**授予複製您叢集的許可**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)：// 開啟 Amazon RDS 主控台。

1.  在導覽窗格中，選擇 **Databases (資料庫)**。

1.  選擇您希望共享的資料庫叢集，來查看其 **Details (詳細資訊)** 頁面，然後選擇 **Connectivity & security (連線能力與安全)** 標籤。

1.  在**與其他 AWS 帳戶共用資料庫叢集**區段中，輸入您要允許 複製此叢集之 AWS 帳戶的數值帳戶 ID。針對相同組織中的帳戶 ID，您可以在方塊中開始輸入，然後從選單內選擇。
**重要**  
 在某些情況下，您可能會希望讓並非位於與您帳戶相同 AWS 組織中的帳戶複製叢集。在這些情況下，基於安全理由，主控台 不會報告擁有該帳戶 ID 的人員，或是該帳戶是否存在。  
請小心輸入與您帳戶不在相同 AWS 組織中 AWS 的帳戶號碼。請立即驗證您已和您計劃的目標帳戶進行共享。

1.  在確認頁面上，驗證您指定的帳戶 ID 是否正確。在確認方塊中輸入 `share` 以進行確認。

    在**詳細資訊**頁面上，會出現一個項目，顯示與此資料庫叢集共用之 AWS 帳戶底下指定的帳戶 ID。 ******Status (狀態)** 欄一開始會顯示 **Pending (待定)** 狀態。

1.  請聯絡其他 AWS 帳戶的擁有者，或如果您同時擁有該帳戶，則登入該帳戶。指示另一個帳戶的擁有者接受共享邀請並複製資料庫叢集，如以下說明所示。

#### AWS CLI
<a name="Aurora.Managing.Clone.CrossAccount.granting.cli"></a>

**授予複製您叢集的許可**

1.  收集必要參數的資訊。您需要叢集的 ARN 和其他 AWS 帳戶的數值 ID。

1.  執行 AWS RAM CLI 命令 [https://docs.aws.amazon.com/cli/latest/reference/ram/create-resource-share.html](https://docs.aws.amazon.com/cli/latest/reference/ram/create-resource-share.html)。

   針對 Linux、macOS 或 Unix：

   ```
   aws ram create-resource-share --name descriptive_name \
     --region region \
     --resource-arns cluster_arn \
     --principals other_account_ids
   ```

   在 Windows 中：

   ```
   aws ram create-resource-share --name descriptive_name ^
     --region region ^
     --resource-arns cluster_arn ^
     --principals other_account_ids
   ```

    若要針對 `--principals` 包含多個帳戶 ID，請使用空格分隔不同的 ID。若要指定獲得允許的帳戶 ID 是否可在您 AWS 組織的外部，請針對 `--allow-external-principals` 包含 `--no-allow-external-principals` 或 `create-resource-share` 參數。

#### AWS RAM API
<a name="Aurora.Managing.Clone.CrossAccount.granting.api"></a>

**授予複製您叢集的許可**

1.  收集必要參數的資訊。您需要叢集的 ARN 和其他 AWS 帳戶的數值 ID。

1.  呼叫 AWS RAM API 操作 [CreateResourceShare](https://docs.aws.amazon.com/ram/latest/APIReference/API_CreateResourceShare.html)，並指定下列值：
   +  指定一或多個帳戶的帳戶 ID AWS 做為 `principals` 參數。
   +  將一或多個 Aurora 資料庫叢集的 ARN 指定為 `resourceArns` 參數。
   +  針對 `allowExternalPrincipals` 參數包含布林值，指定獲得允許的帳戶 ID 是否可位於您 AWS 組織的外部。

#### 重新建立使用預設 RDS 金鑰的叢集
<a name="Aurora.Managing.Clone.CrossAccount.granting.defaultkey"></a>

若您預計使用預設 RDS 金鑰來共享的加密叢集，請務必重新建立叢集。若要執行此作業，請建立資料庫叢集的手動快照、使用 AWS KMS key，然後將叢集還原至新的叢集。然後共用新叢集。若要執行此程序，請進行下列步驟。

**重新建立使用預設 RDS 金鑰的加密叢集**

1. 登入 AWS 管理主控台 並開啟位於 https：//[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/) 的 Amazon RDS 主控台。

1.  從導覽窗格選擇 **Snapshots (快照)**。

1.  選擇您的快照。

1.  針對 **Actions** (動作)，選擇 **Copy Snapshot** (複製快照)，然後選擇 **Enable encryption** (啟用加密)。

1.  針對 **AWS KMS key**，選擇您希望使用的新加密金鑰。

1.  還原複製的快照。若要執行此作業，請依照 [從資料庫叢集快照還原](aurora-restore-snapshot.md) 中的程序進行。新的資料庫執行個體會使用您的新加密金鑰。

1.  (選用) 若您不再需要舊的資料庫叢集，您可以刪除它。若要執行此作業，請依照 [刪除資料庫叢集快照](aurora-delete-snapshot.md#DeleteDBClusterSnapshot) 中的程序進行。在您執行該作業前，請確認新的叢集已具備所有必要的資料，並且您的應用程式可以成功存取新的叢集。

### 檢查您擁有的叢集是否與其他 AWS 帳戶共用
<a name="Aurora.Managing.Clone.CrossAccount.confirming"></a>

 您可以檢查其他使用者是否具備共享叢集的許可。執行此作業有助您了解叢集是否已接近跨帳戶複製的數量上限。

 如需使用 AWS RAM 主控台共用資源的程序，請參閱*AWS RAM 《 使用者指南*》中的[共用您擁有的資源](https://docs.aws.amazon.com/ram/latest/userguide/working-with-sharing.html)。

#### AWS CLI
<a name="Aurora.Managing.Clone.CrossAccount.confirming.cli"></a>

**了解您擁有的叢集是否與其他 AWS 帳戶共用**
+  呼叫 AWS RAM CLI 命令 [https://docs.aws.amazon.com/cli/latest/reference/ram/list-principals.html](https://docs.aws.amazon.com/cli/latest/reference/ram/list-principals.html)，使用您的帳戶 ID 做為資源擁有者，並使用叢集的 ARN 做為資源 ARN。您可以使用以下命令查看所有共享。結果指出允許哪些 AWS 帳戶複製叢集。

  ```
  aws ram list-principals \
      --resource-arns your_cluster_arn \
      --principals your_aws_id
  ```

#### AWS RAM API
<a name="Aurora.Managing.Clone.CrossAccount.confirming.api"></a>

**了解您擁有的叢集是否與其他 AWS 帳戶共用**
+  呼叫 AWS RAM API 操作 [ListPrincipals](https://docs.aws.amazon.com/ram/latest/APIReference/API_ListPrincipals.html)。使用您的帳戶 ID 做為資源擁有者，以及您叢集的 ARN 做為資源 ARN。

## 複製另一個 AWS 帳戶擁有的叢集
<a name="Aurora.Managing.Clone.CrossAccount.theirs"></a>

 若要複製另一個 AWS 帳戶擁有的叢集，請使用 AWS RAM 取得進行複製的許可。在您擁有必要的許可後，便可以使用複製 Aurora 叢集的標準程序。

 您也可以檢查您擁有的叢集是否為不同 AWS 帳戶所擁有叢集的複製。

 如需在 AWS RAM 主控台中使用其他人擁有之資源的程序，請參閱《 使用者指南》中的[存取與您共用的資源](https://docs.aws.amazon.com/ram/latest/userguide/working-with-shared.html)。 *AWS RAM *

**Topics**
+ [

### 檢視複製其他 AWS 帳戶所擁有叢集的邀請
](#Aurora.Managing.Clone.CrossAccount.viewing)
+ [

### 接受共用其他 AWS 帳戶所擁有叢集的邀請
](#Aurora.Managing.Clone.CrossAccount.accepting)
+ [

### 複製另一個 AWS 帳戶擁有的 Aurora 叢集
](#Aurora.Managing.Clone.CrossAccount.cloning)
+ [

### 檢查資料庫叢集是否為跨帳戶複製
](#Aurora.Managing.Clone.CrossAccount.checking)

### 檢視複製其他 AWS 帳戶所擁有叢集的邀請
<a name="Aurora.Managing.Clone.CrossAccount.viewing"></a>

 若要使用邀請來複製其他 AWS 組織中 AWS 帳戶擁有的叢集，請使用 AWS CLI、 AWS RAM 主控台或 AWS RAM API。目前，您無法使用 Amazon RDS 主控台執行這項程序。

 如需在 AWS RAM 主控台中使用邀請的程序，請參閱*AWS RAM 《 使用者指南*》中的[存取與您共用的資源](https://docs.aws.amazon.com/ram/latest/userguide/working-with-shared.html)。

#### AWS CLI
<a name="Aurora.Managing.Clone.CrossAccount.viewing.cli"></a>

**查看複製其他 AWS 帳戶所擁有叢集的邀請**

1.  執行 AWS RAM CLI 命令 [https://docs.aws.amazon.com/cli/latest/reference/ram/get-resource-share-invitations.html](https://docs.aws.amazon.com/cli/latest/reference/ram/get-resource-share-invitations.html)。

   ```
   aws ram get-resource-share-invitations --region region_name
   ```

    上述命令的結果會顯示所有複製叢集的邀請，包括任何您已接受和拒絕的邀請。

1.  (選用) 篩選清單，讓您可以只查看需要您採取動作的邀請。若要執行此作業，請新增 `--query 'resourceShareInvitations[?status==`PENDING`]'` 參數。

#### AWS RAM API
<a name="Aurora.Managing.Clone.CrossAccount.viewing.api"></a>

**查看複製其他 AWS 帳戶所擁有叢集的邀請**

1.  呼叫 AWS RAM API 操作 [https://docs.aws.amazon.com/ram/latest/APIReference/API_GetResourceShareInvitations.html](https://docs.aws.amazon.com/ram/latest/APIReference/API_GetResourceShareInvitations.html)。此操作會傳回所有這類邀請，包括任何您已接受或拒絕的邀請。

1.  (選用) 透過針對 `resourceShareAssociations` 的 `status` 值選取 `PENDING` 傳回欄位，來只尋找需要您採取動作的邀請。

### 接受共用其他 AWS 帳戶所擁有叢集的邀請
<a name="Aurora.Managing.Clone.CrossAccount.accepting"></a>

 您可以接受邀請，以共用不同 AWS 組織中其他 AWS 帳戶擁有的叢集。若要使用這些邀請，請使用 AWS CLI、 AWS RAM 和 RDS APIs 或 AWS RAM 主控台。目前，您無法使用 RDS 主控台執行這項程序。

 如需在 AWS RAM 主控台中使用邀請的程序，請參閱*AWS RAM 《 使用者指南*》中的[存取與您共用的資源](https://docs.aws.amazon.com/ram/latest/userguide/working-with-shared.html)。

#### AWS CLI
<a name="Aurora.Managing.Clone.CrossAccount.accepting.cli"></a>

**接受從另一個 AWS 帳戶共用叢集的邀請**

1.  執行 AWS RAM CLI 命令 尋找邀請 ARN[https://docs.aws.amazon.com/cli/latest/reference/ram/get-resource-share-invitations.html](https://docs.aws.amazon.com/cli/latest/reference/ram/get-resource-share-invitations.html)，如下所示。

1.  呼叫 AWS RAM CLI 命令 接受邀請[https://docs.aws.amazon.com/cli/latest/reference/ram/accept-resource-share-invitation.html](https://docs.aws.amazon.com/cli/latest/reference/ram/accept-resource-share-invitation.html)，如下所示。

   針對 Linux、macOS 或 Unix：

   ```
   aws ram accept-resource-share-invitation \
     --resource-share-invitation-arn invitation_arn \
     --region region
   ```

   在 Windows 中：

   ```
   aws ram accept-resource-share-invitation ^
     --resource-share-invitation-arn invitation_arn ^
     --region region
   ```

#### AWS RAM 和 RDS API
<a name="Aurora.Managing.Clone.CrossAccount.accepting.api"></a>

**接受共享其他人叢集的邀請**

1.  呼叫 AWS RAM API 操作 尋找邀請 ARN[https://docs.aws.amazon.com/ram/latest/APIReference/API_GetResourceShareInvitations.html](https://docs.aws.amazon.com/ram/latest/APIReference/API_GetResourceShareInvitations.html)，如前所示。

1.  將該 ARN 做為 `resourceShareInvitationArn` 參數傳遞至 RDS API 操作 [AcceptResourceShareInvitation](https://docs.aws.amazon.com/ram/latest/APIReference/API_AcceptResourceShareInvitation.html)。

### 複製另一個 AWS 帳戶擁有的 Aurora 叢集
<a name="Aurora.Managing.Clone.CrossAccount.cloning"></a>

 接受來自擁有資料庫叢集 AWS 之帳戶的邀請後，您可以複製叢集，如下所示。

#### 主控台
<a name="Aurora.Managing.Clone.CrossAccount.cloning.console"></a>

**複製另一個 AWS 帳戶擁有的 Aurora 叢集**

1. 登入 AWS 管理主控台 ，並在 [https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)：// 開啟 Amazon RDS 主控台。

1.  在導覽窗格中，選擇 **Databases (資料庫)**。

    在資料庫清單頂端，您應該會看到一或多個 **Role (角色)** 值為 `Shared from account #account_id` 的項目。基於安全理由，您只能看到關於原始叢集的有限資訊。您可以看到的屬性為資料庫引擎和版本等在您複製叢集中也必須相同的屬性。

1.  請選擇您想要複製的叢集。

1.  針對 **Actions** (動作)，選擇 **Create clone** (建立複製)。

1.  遵循 [主控台](Aurora.Managing.Clone.md#Aurora.Managing.Clone.Console) 中的程序來完成設定複製叢集。

1. 若需要的話，請啟用複製叢集的加密。若您要複製的叢集經過加密，您必須為複製叢集啟用加密。與您共用叢集的 AWS 帳戶也必須共用用來加密叢集的 KMS 金鑰。您可以使用相同的 KMS 金鑰或是您自己的 KMS 金鑰來加密複製。您無法為使用預設 KMSS 金鑰加密的叢集建立跨帳戶複製。

    擁有加密金鑰的帳戶必須使用金鑰政策，將使用金鑰的許可授予目標帳戶。這項程序與共享加密快照的程序相似，因為他們都是使用將利用金鑰的許可授予目標帳戶的金鑰政策。

#### AWS CLI
<a name="Aurora.Managing.Clone.CrossAccount.cloning.cli"></a>

**複製另一個 AWS 帳戶擁有的 Aurora 叢集**

1.  接受來自擁有資料庫叢集 AWS 之帳戶的邀請，如下所示。

1.  在 RDS CLI 命令 [https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-to-point-in-time.html](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-to-point-in-time.html) 的 `restore-db-cluster-to-point-in-time` 參數中指定來源叢集的完整 ARN，如以下所示。

    若做為 `source-db-cluster-identifier` 傳遞的 ARN 尚未共享，則會傳回相同的錯誤，就好像指定的叢集不存在般。

   對於 Linux、macOS 或 Unix：

   ```
   aws rds restore-db-cluster-to-point-in-time \
     --source-db-cluster-identifier=arn:aws:rds:arn_details \
     --db-cluster-identifier=new_cluster_id \
     --restore-type=copy-on-write \
     --use-latest-restorable-time
   ```

   在 Windows 中：

   ```
   aws rds restore-db-cluster-to-point-in-time ^
     --source-db-cluster-identifier=arn:aws:rds:arn_details ^
     --db-cluster-identifier=new_cluster_id ^
     --restore-type=copy-on-write ^
     --use-latest-restorable-time
   ```

1.  若您要複製的叢集經過加密，請透過在其中包含 `kms-key-id` 參數來加密您的複製叢集。這個 `kms-key-id` 值可以和用來加密原始資料庫叢集的值相同，或是使用您自己的 KMS 金鑰。您的帳戶也必須具備使用該加密金鑰的許可。

   對於 Linux、macOS 或 Unix：

   ```
   aws rds restore-db-cluster-to-point-in-time \
     --source-db-cluster-identifier=arn:aws:rds:arn_details \
     --db-cluster-identifier=new_cluster_id \
     --restore-type=copy-on-write \
     --use-latest-restorable-time \
     --kms-key-id=arn:aws:kms:arn_details
   ```

   在 Windows 中：

   ```
   aws rds restore-db-cluster-to-point-in-time ^
     --source-db-cluster-identifier=arn:aws:rds:arn_details ^
     --db-cluster-identifier=new_cluster_id ^
     --restore-type=copy-on-write ^
     --use-latest-restorable-time ^
     --kms-key-id=arn:aws:kms:arn_details
   ```

    擁有加密金鑰的帳戶必須使用金鑰政策，將使用金鑰的許可授予目標帳戶。這項程序與共享加密快照的程序相似，因為他們都是使用將利用金鑰的許可授予目標帳戶的金鑰政策。以下是金鑰政策的範例。

------
#### [ JSON ]

****  

   ```
   {
       "Id": "key-policy-1",
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Allow use of the key",
               "Effect": "Allow",
               "Principal": {
                   "AWS": [
                       "arn:aws:iam::111122223333:user/KeyUser",
                       "arn:aws:iam::111122223333:root"
                   ]
               },
               "Action": [
                   "kms:CreateGrant",
                   "kms:Encrypt",
                   "kms:Decrypt",
                   "kms:ReEncrypt*",
                   "kms:GenerateDataKey*",
                   "kms:DescribeKey"
               ],
               "Resource": "*"
           },
           {
               "Sid": "Allow attachment of persistent resources",
               "Effect": "Allow",
               "Principal": {
                   "AWS": [
                       "arn:aws:iam::111122223333:user/KeyUser",
                       "arn:aws:iam::111122223333:root"
                   ]
               },
               "Action": [
                   "kms:CreateGrant",
                   "kms:ListGrants",
                   "kms:RevokeGrant"
               ],
               "Resource": "*",
               "Condition": {
                   "Bool": {
                       "kms:GrantIsForAWSResource": true
                   }
               }
           }
       ]
   }
   ```

------

**注意**  
[restore-db-cluster-to-point-in-time](https://docs.aws.amazon.com/cli/latest/reference/rds/restore-db-cluster-to-point-in-time.html) AWS CLI 命令只會還原資料庫叢集，而不會還原該資料庫叢集的資料庫執行個體。若要為已還原的資料庫叢集建立資料庫執行個體，請呼叫 [create-db-instance](https://docs.aws.amazon.com/cli/latest/reference/rds/create-db-instance.html) 命令。以 `--db-cluster-identifier` 指定已還原資料庫叢集的識別碼。  
只在 `restore-db-cluster-to-point-in-time` 命令完成且資料庫叢集可用時，您才能建立資料庫執行個體。

#### RDS API
<a name="Aurora.Managing.Clone.CrossAccount.cloning.api"></a>

**複製另一個 AWS 帳戶擁有的 Aurora 叢集**

1.  接受來自擁有資料庫叢集 AWS 之帳戶的邀請，如下所示。

1.  在 RDS API 操作 [https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBClusterToPointInTime.html](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBClusterToPointInTime.html) 的 `RestoreDBClusterToPointInTime` 參數中指定來源叢集的完整 ARN 來複製叢集。

    若做為 `SourceDBClusterIdentifier` 傳遞的 ARN 尚未共享，則會傳回相同的錯誤，就好像指定的叢集不存在般。

1.  若您要複製的叢集經過加密，請在其中包含 `KmsKeyId` 參數來加密您的複製叢集。這個 `kms-key-id` 值可以和用來加密原始資料庫叢集的值相同，或是使用您自己的 KMS 金鑰。您的帳戶也必須具備使用該加密金鑰的許可。

    在您複製磁碟區時，目標帳戶必須具備用來加密來源叢集的加密金鑰使用許可。Aurora 會使用在 `KmsKeyId` 中指定的加密金鑰來加密新的複製叢集。

    擁有加密金鑰的帳戶必須使用金鑰政策，將使用金鑰的許可授予目標帳戶。這項程序與共享加密快照的程序相似，因為他們都是使用將利用金鑰的許可授予目標帳戶的金鑰政策。以下是金鑰政策的範例。

------
#### [ JSON ]

****  

   ```
   {
       "Id": "key-policy-1",
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Allow use of the key",
               "Effect": "Allow",
               "Principal": {
                   "AWS": [
                       "arn:aws:iam::111122223333:user/KeyUser",
                       "arn:aws:iam::111122223333:root"
                   ]
               },
               "Action": [
                   "kms:CreateGrant",
                   "kms:Encrypt",
                   "kms:Decrypt",
                   "kms:ReEncrypt*",
                   "kms:GenerateDataKey*",
                   "kms:DescribeKey"
               ],
               "Resource": "*"
           },
           {
               "Sid": "Allow attachment of persistent resources",
               "Effect": "Allow",
               "Principal": {
                   "AWS": [
                       "arn:aws:iam::111122223333:user/KeyUser",
                       "arn:aws:iam::111122223333:root"
                   ]
               },
               "Action": [
                   "kms:CreateGrant",
                   "kms:ListGrants",
                   "kms:RevokeGrant"
               ],
               "Resource": "*",
               "Condition": {
                   "Bool": {
                       "kms:GrantIsForAWSResource": true
                   }
               }
           }
       ]
   }
   ```

------

**注意**  
[RestoreDBClusterToPointInTime](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_RestoreDBClusterToPointInTime.html) RDS API 操作只會還原資料庫叢集，而不會還原該資料庫叢集的資料庫執行個體。若要為已還原的資料庫叢集建立資料庫執行個體，請呼叫 [CreateDBInstance](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_CreateDBInstance.html) RDS API 操作。以 `DBClusterIdentifier` 指定已還原資料庫叢集的識別碼。只有在 `RestoreDBClusterToPointInTime` 操作完成後，且資料庫叢集為可用時，您才能建立資料庫執行個體。

### 檢查資料庫叢集是否為跨帳戶複製
<a name="Aurora.Managing.Clone.CrossAccount.checking"></a>

 `DBClusters` 物件可識別每個叢集是否是跨帳戶複製。您可以在執行 RDS CLI 命令 [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html) 時，使用 `describe-db-clusters` 選項來查看您具備複製許可的叢集。但是，您無法看到這類叢集的大部分組態詳細資訊。

#### AWS CLI
<a name="Aurora.Managing.Clone.CrossAccount.checking.cli"></a>

**檢查資料庫叢集是否為跨帳戶複製**
+  請呼叫 RDS CLI 命令 [https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-clusters.html)。

   以下範例會示範實際或潛在跨帳戶複製資料庫叢集在 `describe-db-clusters` 輸出中的顯示方式。對於您 AWS 帳戶擁有的現有叢集， `CrossAccountClone` 欄位會指出叢集是否為另一個 AWS 帳戶擁有之資料庫叢集的複製。

   在某些情況下，項目的 AWS 帳號可能與 `DBClusterArn` 欄位中的帳號不同。在此情況下，該項目代表由不同 AWS 帳戶擁有且您可以複製的叢集。這類項目除了 `DBClusterArn` 之外還有一些欄位。在建立複製叢集時，請指定與原始叢集相同的 `StorageEncrypted`、`Engine` 和 `EngineVersion` 值。

  ```
  $aws rds describe-db-clusters --include-shared --region us-east-1
  {
    "DBClusters": [
        {
            "EarliestRestorableTime": "2023-02-01T21:17:54.106Z",
            "Engine": "aurora-mysql",
            "EngineVersion": "8.0.mysql_aurora.3.02.0",
            "CrossAccountClone": false,
  ...
        },
        {
            "EarliestRestorableTime": "2023-02-09T16:01:07.398Z",
            "Engine": "aurora-mysql",
            "EngineVersion": "8.0.mysql_aurora.3.02.0",
            "CrossAccountClone": true,
  ...
        },
        {
            "StorageEncrypted": false,
            "DBClusterArn": "arn:aws:rds:us-east-1:12345678:cluster:cluster-abcdefgh",
            "Engine": "aurora-mysql",
            "EngineVersion": "8.0.mysql_aurora.3.02.0
    ]
  }
  ```

#### RDS API
<a name="Aurora.Managing.Clone.CrossAccount.checking.api"></a>

**檢查資料庫叢集是否為跨帳戶複製**
+  請呼叫 RDS API 操作 [DescribeDBClusters](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBClusters.html)。

   對於您 AWS 帳戶擁有的現有叢集， `CrossAccountClone` 欄位會指出叢集是否為另一個 AWS 帳戶擁有之資料庫叢集的複製。`DBClusterArn` 欄位中具有不同 AWS 帳號的項目代表您可以複製且由其他 AWS 帳戶擁有的叢集。這些項目除了 `DBClusterArn` 之外還有一些欄位。在建立複製叢集時，請指定與原始叢集相同的 `StorageEncrypted`、`Engine` 和 `EngineVersion` 值。

   以下範例會顯示傳回值，示範實際和潛在的複製叢集。

  ```
  {
    "DBClusters": [
        {
            "EarliestRestorableTime": "2023-02-01T21:17:54.106Z",
            "Engine": "aurora-mysql",
            "EngineVersion": "8.0.mysql_aurora.3.02.0",
            "CrossAccountClone": false,
  ...
        },
        {
            "EarliestRestorableTime": "2023-02-09T16:01:07.398Z",
            "Engine": "aurora-mysql",
            "EngineVersion": "8.0.mysql_aurora.3.02.0",
            "CrossAccountClone": true,
  ...
        },
        {
            "StorageEncrypted": false,
            "DBClusterArn": "arn:aws:rds:us-east-1:12345678:cluster:cluster-abcdefgh",
            "Engine": "aurora-mysql",
            "EngineVersion": "8.0.mysql_aurora.3.02.0"
        }
    ]
  }
  ```