

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

# 使用 DMS 結構描述轉換的完整先決條件
<a name="set-up"></a>

若要設定 DMS 結構描述轉換，請完成下列任務。然後，您就可以設定執行個體設定檔、新增資料提供者，以及建立遷移專案。

**Topics**
+ [根據 Amazon VPC 建立 VPC](#set-up-vpc)
+ [建立 Amazon S3 儲存貯體](#set-up-s3-bucket)
+ [在 中存放資料庫登入資料 AWS Secrets Manager](#set-up-secrets)
+ [建立 IAM 政策](#set-up-iam-policies)
+ [建立 IAM 角色](#set-up-iam-roles)

## 根據 Amazon VPC 建立 VPC
<a name="set-up-vpc"></a>

在此步驟中，您會在 中建立虛擬私有雲端 (VPC) AWS 帳戶。此 VPC 以 Amazon Virtual Private Cloud (Amazon VPC) 服務為基礎，其中包含您的 AWS 資源。

**若要建立用於 DMS 結構描述轉換的 VPC**

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

1. 選擇**建立 VPC**。

1. 在**建立 VPC** 頁面上，輸入下列設定：
   + **要建立的資源** – **VPC 和其他項目**
   + **自動產生名稱標籤** – 選擇**自動產生**並輸入全域唯一名稱。例如，​輸入 **sc-vpc**。
   + **IPv4 CIDR block** (IPv4 CIDR 區塊) – **10.0.1.0/24**
   + **NAT 閘道** – **在 1 個可用區域中**
   + **VPC endpoints** (VPC 端點) – **None** (無)

1. 將其餘設定保留為預設值，接著選擇**建立 VPC**。

1. 選擇**子網路**，並記下您的公用和私有子網路 ID。

   若要連線到 Amazon RDS 資料庫，請建立包含公有子網路的子網路群組。

   若要連線到內部部署資料庫，請建立包含私有子網路的子網路群組。如需詳細資訊，請參閱[建立 DMS 結構描述轉換的執行個體描述檔](getting-started-instance.md)。

1. 選擇 **NAT 閘道**。選擇您的 **NAT 閘道**並記下您的**彈性 IP 地址**。

   設定您的網路，以確保 AWS DMS 可以從此 NAT 閘道的公有 IP 地址存取來源內部部署資料庫。如需詳細資訊，請參閱[使用網際網路連線至 VPC](instance-profiles-network.md#instance-profiles-network-internet)。

在 Amazon RDS 上建立執行個體設定檔和目標資料庫時，請使用此 VPC。

## 建立 Amazon S3 儲存貯體
<a name="set-up-s3-bucket"></a>

若要儲存遷移專案中的資訊，請建立 Amazon S3 儲存貯體。DMS 結構描述轉換會使用此 Amazon S3 儲存貯體來儲存包括評估報告、轉換後的 SQL 程式碼、資料庫結構描述物件的相關資訊等內容。

**若要為 DMS 結構描述轉換建立 Amazon S3 儲存貯體**

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

1. 選擇**建立儲存貯體**。

1. 在**建立儲存貯體**頁面上，選取 S3 儲存貯體的全域唯一名稱。例如，​輸入 **sc-s3-bucket**。

1. 針對 **AWS 區域** 選擇您的區域。

1. 針對**儲存貯體版本控制**，選擇**啟用**。

1. 將其餘設定保留為預設值，接著選擇**建立儲存貯體**。

**注意**  
DMS 結構描述轉換 (SC) 僅適用於使用伺服器端加密搭配 Amazon S3 受管金鑰 (SSE-S3) 的 S3 儲存貯體。 S3-Managed SC 目前不支援其他加密組態，包括使用 AWS KMS 的伺服器端加密 (SSE-KMS)、客戶提供的金鑰 (SSE-C) 或用戶端加密，並防止其存取 S3 儲存貯體。如果使用不同的加密方法，您必須使用 SSE-S3 建立單獨的 S3 儲存貯體，以便與 DMS 結構描述轉換搭配使用。 SSE-S3 

## 在 中存放資料庫登入資料 AWS Secrets Manager
<a name="set-up-secrets"></a>

將您的來源和目標資料庫登入資料存放在其中 AWS Secrets Manager。請務必將這些秘密複寫到 AWS 區域。DMS 結構描述轉換會使用這些密碼來連線至遷移專案中的資料庫。

**在 中存放資料庫登入資料 AWS Secrets Manager**

1. 登入 AWS 管理主控台 並在 https：//[https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/) 開啟 AWS Secrets Manager 主控台。

1. 選擇 **Store a new secret** (儲存新機密)。

1. **選擇機密類型**頁面隨即開啟。針對 **Secret type** (機密類型)，選擇要儲存的資料庫憑證的類型：
   + **Amazon RDS 資料庫的登入資料** – 選擇此選項可儲存 Amazon RDS 資料庫的登入資料。針對**憑證**，輸入您資料庫的憑證。如需**資料庫**，請選擇您的資料庫。
   + **其他資料庫的登入資料** – 選擇此選項可儲存來源 Oracle 或 SQL Server 資料庫的登入資料。針對**憑證**，輸入您資料庫的憑證。
   + **其他類型的機密** – 選擇此選項可僅儲存連線至資料庫所需的使用者名稱和密碼。選擇**新增列**以新增兩個鍵值對。確保您使用 **username** 和 **password** 索引鍵名稱。對於這些索引鍵的相關值，請輸入資料庫的憑證。

1. 針對**加密金鑰**，選擇 Secrets Manager 用來加密秘密值的 AWS KMS 金鑰。選擇**下一步**。

1. 在**設定機密**頁面上，輸入描述性的**機密名稱**。例如​輸入 **sc-source-secret** 或 **sc-target-secret**。

1. 選擇**複製機密**，然後在 **AWS 區域** 選擇您的區域。選擇**下一步**。

1. 在**設定輪換**頁面上，選擇**下一步**。

1. 在 **Review** (檢閱) 頁面上，檢閱機密詳細資訊，然後選擇 **Store** (儲存)。

若要儲存來源和目標資料庫的憑證，請重複上述步驟。

## 建立 IAM 政策
<a name="set-up-iam-policies"></a>

**為 DMS 結構描述轉換建立 IAM 政策以存取 Amazon S3**

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

1. 在導覽窗格中，選擇**政策**。

1. 選擇 **Create policy** (建立政策)。

1. 在**選取服務**頁面上，從清單中選擇 **Amazon S3**。

1. 在**允許的動作**中，選擇 `PutObject`、`GetObject`、`GetObjectVersion`、`GetBucketVersioning`、`GetBucketLocation`、`ListBucket`。

1. 在 **資源**中，指定您在上一節中建立之儲存貯體的 ARN。選擇**下一步**。

1. 在**檢閱和建立**頁面上，輸入描述性名稱。例如：`sc-s3-policy`。然後，選擇**建立政策**。

**為 DMS 結構描述轉換建立 IAM 政策以存取 AWS Secrets Manager**

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

1. 在導覽窗格中，選擇**政策**。

1. 選擇 **Create policy** (建立政策)。

1. 在**選取服務**頁面上，從清單中選擇 **Secrets Manager**。

1. 選擇**下一步**。**新增許可**頁面隨即開啟。

1. 在**允許的動作**中，選擇： `GetSecretValue`和 `DescribeSecret`。

1. 在**檢閱和建立**頁面上，輸入描述性名稱。例如：`sc-secrets-manager-policy`。然後，選擇**建立政策**。

## 建立 IAM 角色
<a name="set-up-iam-roles"></a>

要在遷移專案中使用的 Create AWS Identity and Access Management (IAM) 角色。DMS 結構描述轉換會使用這些 IAM 角色存取您的 Amazon S3 儲存貯體，以及 AWS Secrets Manager其中儲存的資料庫憑證。

**若要建立可提供 Amazon S3 儲存貯體存取權的 IAM 角色**

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

1. 在導覽窗格中，選擇 **Roles** (角色)。

1. 選擇 **Create Role** (建立角色)。

1. 在**選取信任的實體**頁面中，選擇 **AWS 服務**。選擇 **DMS**。

1. 選擇**下一步**。**新增許可**頁面隨即開啟。

1. 對於**篩選政策**，請輸入 **S3**。選擇您在上一節中建立的 **sc-s3-policy** 政策。

1. 選擇**下一步**。**命名、檢閱和建立**頁面隨即開啟。

1. 對於**角色名稱**，輸入描述性名稱。例如，​輸入 **sc-s3-role**。選擇建**立角色**。

1. 在**角色**頁面，針對**角色名稱**輸入 **sc-s3-role**。選擇 **sc-s3-role**。

1. 在 **sc-s3-role** 頁面上，選擇**信任關係**標籤。選擇**編輯信任政策**。

1.  AWS DMS 的區域服務主體格式如下：

   ```
   dms.region-name.amazonaws.com
   ```

   `region-name` 將 取代為您的區域名稱，例如 `us-east-1`：下列程式碼範例顯示`us-east-1`區域的委託人：

   ```
   dms.us-east-1.amazonaws.com
   ```

   下列程式碼範例顯示存取 AWS DMS 結構描述轉換的信任政策：

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "dms.us-east-1.amazonaws.com"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

**建立提供 存取權的 IAM 角色 AWS Secrets Manager**

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

1. 在導覽窗格中，選擇 **Roles** (角色)。

1. 選擇 **Create Role** (建立角色)。

1. 在**選取信任的實體**頁面中，選擇 **AWS 服務**。選擇 **DMS**。

1. 選擇**下一步**。**新增許可**頁面隨即開啟。

1. 對於**篩選政策**，請輸入 `s3`。選擇您在上一節中建立的 **sc-secrets-manager-policy**。

1. 選擇**下一步**。**命名、檢閱和建立**頁面隨即開啟。

1. 對於**角色名稱**，輸入描述性名稱。例如，​輸入 **sc-secrets-manager-role**。選擇建**立角色**。

1. 在**角色**頁面，針對**角色名稱**輸入 **sc-secrets-manager-role**。選擇 **sc-secrets-manager-role**。

1. 在 **sc-secrets-manager-role** 頁面上，選擇**信任關係**標籤。選擇**編輯信任政策**。

1. 在**編輯信任政策**頁面上，編輯角色要使用的信任關係`schema-conversion.dms.amazonaws.com`，以及做為信任實體 AWS DMS 的區域服務主體。此 AWS DMS 區域服務主體的格式如下：

   ```
   dms.region-name.amazonaws.com
   ```

   `region-name` 將 取代為您的區域名稱，例如 `us-east-1`：下列程式碼範例顯示`us-east-1`區域的委託人：

   ```
   dms.us-east-1.amazonaws.com
   ```

   下列程式碼範例顯示存取 AWS DMS 結構描述轉換的信任政策：

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "dms.us-east-1.amazonaws.com"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

**建立與 `dms-vpc-role` CLI 或 AWS DMS API 搭配使用的 IAM AWS 角色**

1. 使用下列 IAM 政策建立 JSON 檔案。將 JSON 檔案命名為 `dmsAssumeRolePolicyDocument.json`。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "dms.amazonaws.com"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

   然後，使用下列命令使用 AWS CLI 建立角色：

   ```
   aws iam create-role --role-name dms-vpc-role --assume-role-policy-document file://dmsAssumeRolePolicyDocument.json                    
   ```

1. `dms-vpc-role` 使用下列命令將`AmazonDMSVPCManagementRole`政策連接至 ：

   ```
   aws iam attach-role-policy --role-name dms-vpc-role --policy-arn arn:aws:iam::aws:policy/service-role/AmazonDMSVPCManagementRole   
   ```

**建立與 `dms-cloudwatch-logs-role` CLI 或 AWS DMS API 搭配使用的 IAM AWS 角色**

1. 使用下列 IAM 政策建立 JSON 檔案。將 JSON 檔案命名為 `dmsAssumeRolePolicyDocument2.json`。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "dms.amazonaws.com"
               },
               "Action": "sts:AssumeRole"
           }
       ]
   }
   ```

------

   然後，使用下列命令使用 AWS CLI 建立角色：

   ```
   aws iam create-role --role-name dms-cloudwatch-logs-role --assume-role-policy-document file://dmsAssumeRolePolicyDocument2.json
   ```

1. `dms-cloudwatch-logs-role` 使用下列命令將`AmazonDMSCloudWatchLogsRole`政策連接至 ：

   ```
   aws iam attach-role-policy --role-name dms-cloudwatch-logs-role --policy-arn arn:aws:iam::aws:policy/service-role/AmazonDMSCloudWatchLogsRole
   ```