使用 RDP 连接到 RDS Custom 数据库实例 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 RDP 连接到 RDS Custom 数据库实例

创建 RDS Custom 数据库实例后,您可以使用 RDP 客户端连接到此实例。该过程与连接到 Amazon EC2 实例的过程相同。有关更多信息,请参阅连接到 Windows 实例

要连接到数据库实例,您需要与该实例关联的密钥对。RDS Custom 会为您创建密钥对。密钥对名称使用前缀 do-not-delete-rds-custom-DBInstanceIdentifier。Amazon Secrets Manager 将私有密钥存储为密钥。

完成以下步骤中的任务:

配置您的数据库实例以允许 RDP 连接

要允许 RDP 连接,请配置 VPC 安全组并在主机上设置防火墙规则。

配置您的 VPC 安全组

请确保与您数据库实例关联的 VPC 安全组允许在端口 3389 上进行传输控制协议 (TCP) 的入站连接。要了解如何配置 VPC 安全组,请参阅 配置您的 VPC 安全组

在主机上设置防火墙规则

要允许端口 3389 上的 TCP 入站连接,请在主机上设置防火墙规则。以下示例显示如何执行此操作。

建议使用特定的 -Profile 值:PublicPrivate 或者 Domain。使用 Any 指这三个值。您还可以指定用逗号分隔的一组值。有关设置防火墙规则的更多信息,请参阅 Microsoft 文档中的 Set-NetFirewallRule

使用 Systems Manager 会话管理器设置防火墙规则
  1. 连接到会话管理器,如 使用 Amazon Systems Manager 连接到 RDS Custom 数据库实例 中所示。

  2. 运行以下命令。

    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")
  2. 使用输出中返回的命令 ID 获取上一个命令的状态。要使用以下查询返回命令 ID,请确保安装了 jq 插件。

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

检索您的私有密钥

使用 Amazon Web Services Management Console 或 Amazon CLI 检索您的私有密钥。

要检索私有密钥
  1. 登录 Amazon Web Services Management Console 并通过以下网址打开 Amazon RDS 控制台:https://console.aws.amazon.com/rds/

  2. 在导航窗格中,请选择 Databases(数据库),然后选择要连接到的 RDS Custom 数据库实例。

  3. 选择配置选项卡。

  4. 请注意您的数据库实例的 DB instance ID(数据库实例 ID),例如 my-custom-instance

  5. 通过以下网址打开 Amazon EC2 控制台:https://console.aws.amazon.com/ec2/

  6. 在导航窗格中,选择实例

  7. 查找 EC2 实例的名称,然后选择与其关联的实例 ID。

    在此示例中,实例 ID 为 i-abcdefghijklm01234

  8. Details(详细信息)中,查找 Key pair name(密钥对名称)。密钥对名称包括数据库标识符。在此示例中,密钥对名称为 do-not-delete-rds-custom-my-custom-instance-0d726c

  9. 在实例摘要中,查找 Public IPv4 DNS(公有 IPv4 DNS)。在本示例中,公有 DNS 可能是 ec2-12-345-678-901.us-east-2.compute.amazonaws.com

  10. 打开位于 https://console.aws.amazon.com/secretsmanager/ 的 Amazon Secrets Manager 控制台。

  11. 选择与密钥对同名的密钥。

  12. 选择 Retrieve secret value (检索密钥值)

要检索私有密钥
  1. 通过调用 aws rds describe-db-instances 命令获取您的 RDS Custom 数据库实例的列表。

    aws rds describe-db-instances \ --query 'DBInstances[*].[DBInstanceIdentifier,DbiResourceId]' \ --output text
  2. 例如,从示例输出中选择数据库实例标识符,例如 do-not-delete-rds-custom-my-custom-instance

  3. 通过调用 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
  4. 通过指定 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 实例

执行《Amazon EC2 用户指南》中的使用 RDP 连接到 Windows 实例中的过程。此过程假定您创建了包含您的私有密钥的 .pem 文件。