

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

# 使用 RDS 連線到您的 RDS Custom 資料庫執行個體
<a name="custom-creating-sqlserver.rdp"></a>

建立 RDS Custom 資料庫執行個體之後，您可以使用 RDP 用戶端連線到此執行個體。此程序與連線 Amazon EC2 執行個體的程序相同。如需詳細資訊，請參閱[連線至您的 Windows 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/connecting_to_windows_instance.html)。

若要連線到資料庫執行個體，您需要與執行個體相關聯的金鑰對。RDS Custom 會為您建立金鑰對。配對名稱使用字首 `do-not-delete-rds-custom-DBInstanceIdentifier`。AWS Secrets Manager 會將您的私有金鑰儲存為秘密。

完成下列步驟中的任務：

1. [將您的資料庫執行個體設定為允許 RDP 連線](#custom-creating-sqlserver.rdp.port).

1. [擷取您的私密金鑰](#custom-creating-sqlserver.rdp.key).

1. [使用 RDP 公用程式連線到 EC2 執行個體](#custom-creating-sqlserver.rdp.connect).

## 將您的資料庫執行個體設定為允許 RDP 連線
<a name="custom-creating-sqlserver.rdp.port"></a>

若要允許 RDP 連線，請設定 VPC 安全群組並在主機上設定防火牆規則。

### 設定您的 VPC 安全群組
<a name="custom-creating-sqlserver.rdp.port.vpc"></a>

請確定與資料庫執行個體相關聯的 VPC 安全群組允許傳輸控制通訊協定 (TCP) 的連接埠 3389 上的傳入連線。若要了解如何設定 VPC 安全群組，請參閱 [設定您的 VPC 安全群組](custom-setup-sqlserver.md#custom-setup-sqlserver.vpc.sg)。

### 在主機上設定防火牆規則
<a name="custom-creating-sqlserver.rdp.port.firewall"></a>

若要允許 TCP 的連接埠 3389 上的傳入連線，請在主機上設定防火牆規則。下列範例示範其做法。

建議您使用特定的 `-Profile` 值：`Public`、`Private` 或 `Domain`。使用 `Any` 指的是全部三個值。您也可指定以逗號分隔的值組合。如需設定防火牆規則的詳細資訊，請參閱 Microsoft 文件中的 [Set-NetFirewallRule](https://docs.microsoft.com/en-us/powershell/module/netsecurity/set-netfirewallrule?view=windowsserver2019-ps)。

**使用 Systems Manager 工作階段管理員來設定防火牆規則**

1. 連線至工作階段管理員，如 [使用 AWS Systems Manager 連線到您的 RDS Custom 資料庫執行個體](custom-creating-sqlserver.ssm.md) 中所示。

1. 執行下列命令。

   ```
   Set-NetFirewallRule -DisplayName "Remote Desktop - User Mode (TCP-In)" -Direction Inbound -LocalAddress Any -Profile Any
   ```

**使用 Systems Manager CLI 命令來設定防火牆規則**

1. 使用下列命令在主機上開啟 RDP。

   ```
   OPEN_RDP_COMMAND_ID=$(aws ssm send-command --region $AWS_REGION \
       --instance-ids $RDS_CUSTOM_INSTANCE_EC2_ID \
       --document-name "AWS-RunPowerShellScript" \
       --parameters '{"commands":["Set-NetFirewallRule -DisplayName \"Remote Desktop - User Mode (TCP-In)\" -Direction Inbound -LocalAddress Any -Profile Any"]}' \
       --comment "Open RDP port" | jq -r ".Command.CommandId")
   ```

1. 使用輸出中傳回的命令 ID，以取得前一個命令的狀態。若要使用以下查詢傳回命令 ID，請確定已安裝 jq 外掛程式。

   ```
   aws ssm list-commands \
       --region $AWS_REGION \
       --command-id $OPEN_RDP_COMMAND_ID
   ```

## 擷取您的私密金鑰
<a name="custom-creating-sqlserver.rdp.key"></a>

使用 AWS 管理主控台 或 AWS CLI 擷取您的私密金鑰。

### 主控台
<a name="custom-creating-sqlserver.rdp.key.CON"></a>

**若要擷取秘密金鑰**

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

1. 在導覽窗格中選擇 **Databases** (資料庫)，然後選擇您要連線的 RDS Custom 資料庫執行個體。

1. 選擇 **Configuration** (組態) 索引標籤。

1. 請記下資料庫執行個體的 **DB instance ID (資料庫執行個體 ID)**，例如 `my-custom-instance`。

1. 前往 [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/) 開啟 Amazon EC2 主控台。

1. 在導覽窗格中，選擇**執行個體**。

1. 尋找 EC2 執行個體的名稱，然後選擇與其相關聯的執行個體 ID。

   在此範例中，執行個體 ID 為 `i-abcdefghijklm01234`。

1. 在 **Details (詳細資訊)** 中尋找 **Key pair name (金鑰對名稱)**。配對名稱包含資料庫識別符。在此範例中，配對名稱是 `do-not-delete-rds-custom-my-custom-instance-0d726c`。

1. 在執行個體摘要中，尋找**公有 IPv4 DNS**。例如，公有 DNS 可能是 `ec2-12-345-678-901.us-east-2.compute.amazonaws.com`。

1. 開啟 AWS Secrets Manager 主控台，網址為 [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/)。

1. 選擇與金鑰對具有相同名稱的密碼。

1. 選擇 **Retrieve secret value (擷取秘密值)**。

### AWS CLI
<a name="custom-creating-sqlserver.rdp.key.CLI"></a>

**若要擷取私有金鑰**

1. 藉由呼叫 `aws rds describe-db-instances` 命令來取得 RDS Custom 資料庫執行個體的清單。

   ```
   aws rds describe-db-instances \
       --query 'DBInstances[*].[DBInstanceIdentifier,DbiResourceId]' \
       --output text
   ```

1. 從範例輸出中選擇資料庫執行個體識別符，例如 `do-not-delete-rds-custom-my-custom-instance`。

1. 藉由呼叫 `aws ec2 describe-instances` 命令來尋找資料庫執行個體的 EC2 執行個體 ID。下列範例使用 EC2 執行個體名稱來描述資料庫執行個體。

   ```
   aws ec2 describe-instances \
       --filters "Name=tag:Name,Values=do-not-delete-rds-custom-my-custom-instance" \
       --output text \
       --query 'Reservations[*].Instances[*].InstanceId'
   ```

   以下範例輸出顯示 EC2 執行個體 ID。

   ```
   i-abcdefghijklm01234
   ```

1. 藉由指定 EC2 執行個體 ID 來尋找金鑰名稱，如以下範例所示。

   ```
   aws ec2 describe-instances \
       --instance-ids i-abcdefghijklm01234 \
       --output text \
       --query 'Reservations[*].Instances[*].KeyName'
   ```

   下列範例輸出會顯示金鑰名稱，該名稱使用字首 `do-not-delete-rds-custom-DBInstanceIdentifier`。

   ```
   do-not-delete-rds-custom-my-custom-instance-0d726c
   ```

## 使用 RDP 公用程式連線到 EC2 執行個體
<a name="custom-creating-sqlserver.rdp.connect"></a>

請遵循《Amazon EC2 使用者指南》**中的[使用 RDP 連線至您的 Windows 執行個體](https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/connecting_to_windows_instance.html#connect-rdp)的程序。此程序假設您已建立包含私有金鑰的 .pem 檔案。