使用 RDP 连接到 RDS Custom 数据库实例 - Amazon Relational Database Service

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

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

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

完成以下步骤中的任务:

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

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

配置您的 VPC 安全组

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

在主机上设置防火墙规则

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

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

使用 Systems Manager 会话管理器设置防火墙规则
  1. 连接到会话管理器,如 使用 AWS 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

检索您的私有密钥

使用 AWS Management Console 或 AWS CLI 检索您的私有密钥。

要检索私有密钥
  1. 登录 AWS 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/ 的 AWS 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 文件。