使用为适用于微软 SQL Server 的亚马逊 RDS 配置 Windows 身份验证 AWS Managed Microsoft AD - AWS 规范指引

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用为适用于微软 SQL Server 的亚马逊 RDS 配置 Windows 身份验证 AWS Managed Microsoft AD

Ramesh Babu Donti,Amazon Web Services

Summary

此模式显示如何使用 AWS Directory Service for Microsoft Active Directory () 为 SQL Server 实例的亚马逊关系数据库服务 (Amazon RDS AWS Managed Microsoft AD) 配置 Windows 身份验证。Windows 身份验证允许用户使用其域凭证而不是数据库特定的用户名和密码连接到 RDS 实例。

您可以在创建新的 RDS SQL Server 数据库时启用 Windows 身份验证,也可以通过将其添加到现有数据库实例来启用 Windows 身份验证。数据库实例与集成 AWS Managed Microsoft AD ,为访问 SQL Server 数据库的域用户提供集中身份验证和授权。

此配置利用现有的 Active Directory 基础设施来增强安全性,并且无需为域用户管理单独的数据库凭证。

先决条件和限制

先决条件

  • AWS 账户 具有适当权限的活跃用户

  • 具有以下特性的虚拟私有云(VPC):

    • 已配置的互联网网关和路由表

    • 公有子网中的 NAT 网关(如果实例需要访问互联网)

  • AWS Identity and Access Management (IAM) 角色:

    • 具有以下 AWS 托管策略的域角色:

      • AmazonSSMManagedInstanceCore启用 AWS Systems Manager

      • AmazonSSMDirectoryServiceAccess,可提供将实例加入目录的权限

    • RDS 增强监控角色(如果启用了增强监控)

  • 安全组:

    • 允许使用 Active Directory 通信端口的目录服务安全组

    • 允许 RDP 3389 和域名通信的亚马逊弹性计算云 (Amazon EC2) 安全组

    • RDS 安全组,允许来自授权来源的 SQL Server 端口 1433

  • 网络连接:

    • 正确的 DNS 解析以及子网之间的网络连接

限制

架构

源技术堆栈

  • 本地活动目录或 AWS Managed Microsoft AD

目标技术堆栈

  • Amazon EC2

  • Amazon RDS for Microsoft SQL Server

  • AWS Managed Microsoft AD

目标架构

该架构包括以下内容:

  • 将 Amazon EC2 实例加入 AWS Managed Microsoft AD 域名的 IAM 角色。

  • 用于数据库管理和测试的亚马逊 EC2 Windows 实例。

  • Amazon VPC,其私有子网用于托管 Amazon RDS 实例和跨可用区的内部资源。

  • 网络访问控制安全组:

    • Amazon RDS 安全组,用于控制来自授权来源的 SQL Server 端口 1433 的入站访问。

    • 一个 Amazon EC2 安全组,用于通过端口3389和域通信端口管理 RDP 访问。

    • Active Directory 的目录服务安全组,可通过端口 5388389445 进行通讯。

  • AWS Managed Microsoft AD 为 Windows 资源提供集中式身份验证和授权服务。

  • 私有子网中的 Amazon RDS for SQL Server 数据库实例,并且已启用 Windows 身份验证。

工具

AWS 服务

  • 亚马逊弹性计算云 (Amazon EC2) 在中提供可扩展的计算容量 AWS Cloud。您可以根据需要启动任意数量的虚拟服务器,并快速纵向扩展或缩减这些服务器。

  • Amazon Relational Database Service(Amazon RDS)可帮助您在 AWS Cloud中设置、操作和扩展关系数据库。

  • AWS Directory Service提供了多种使用微软 Active Directory (AD) 的方法, AWS 服务 例如亚马逊弹性计算云 (亚马逊 EC2)、适用于 SQL Server 的亚马逊关系数据库服务 (Amazon RDS) 和 FSx 适用于 Windows 文件服务器的亚马逊。

  • AWS Directory Service for Microsoft Active Directory允许你的目录感知工作负载和 AWS 资源使用中的 Microsoft Active Directory。 AWS Cloud

  • AWS Identity and Access Management (IAM) 通过控制谁经过身份验证并有权使用 AWS 资源,从而帮助您安全地管理对资源的访问权限。

其他服务

最佳实践

操作说明

Task说明所需技能

设置目录类型。

  1. 从中 AWS 管理控制台,导航到AWS Directory Service

  2. 选择设置目录

  3. 针对目录类型,选择 AWS Managed Microsoft AD

  4. 选择 “创建新的 AWS 托管 AD 域”,然后选择 “下一步”。

数据库管理员、工程师 DevOps

配置目录信息。

目录信息部分中,输入所需信息,并保留可选值:

  1. 版本下,选择符合您的要求的版本。

  2. 目录 DNS 名称下,输入完全限定域名(FQDN)。

  3. 管理员密码下,设置管理员账户的密码,然后选择下一步

数据库管理员、工程师 DevOps

配置 VPC 和子网。

  1. 在 “网络” 下,选择一个目标 VPC(至少必须分别 AWS 可用区设置两个子网)。

  2. 在 “网络类型” 下,IPv4 仅选择。

  3. 在 “子网” 下,分别选择两个私有子网 AWS 可用区,然后选择 “下一步”。

数据库管理员、工程师 DevOps

审视和创建目录。

  1. 查看配置值,然后选择创建目录

  2. 等待目录状态更改为活跃

数据库管理员、工程师 DevOps
Task说明所需技能

为 Windows 配置 AMI。

  1. 从中 AWS 管理控制台,导航到EC2

  2. 选择启动实例

  3. 名称和标签下,输入名称和任何适用的标签。

  4. 选择符合您的要求的适用于 Windows Server 的亚马逊机器映像(AMI)。

  5. 实例类型下,选择大小合适的类型。

  6. 密钥对(登录),选择现有密钥对或创建一个新的密钥对。

数据库管理员、工程师 DevOps

配置网络设置。

  1. 网络设置下,选择用于 AWS Directory Service的相同 VPC。

  2. 选择私有子网。

  3. 防火墙(安全组)下,创建一个允许 RDP 端口 3389 和域通信的组。

数据库管理员、工程师 DevOps

配置存储。

根据需要配置 Amazon EBS 卷。

数据库管理员、工程师 DevOps

配置高级详细信息并启动实例。

  1. 展开高级详细信息部分。

  2. 在 “域加入目录” 中,选择之前创建的 AWS Managed Microsoft AD。

  3. 对于 IAM 实例配置文件,选择具有策略 AmazonSSMManagedInstanceCoreAmazonSSMDirectoryServiceAccess 的角色。

  4. 查看所有配置值,然后选择启动实例

数据库管理员、工程师 DevOps
Task说明所需技能

创建数据库并配置引擎选项。

  1. 导航到 Aurora 和 RDS 控制台,然后选择创建数据库

  2. 引擎选项中,选择 Microsoft SQL Server

  3. 对于数据库管理类型,选择 Amazon RDS

  4. 对于版本,选择符合您要求的 SQL Server。

  5. 对于引擎版本,选择支持的最新版本。

数据库管理员、工程师 DevOps

Choose a template。

选择符合您要求的示例模板。

数据库管理员、工程师 DevOps

配置数据库设置。

  1. 设置数据库实例标识符下,输入唯一的名称。

  2. 主用户名下,配置管理员凭证。

  3. (可选)对于凭证管理,选择在 AWS Secrets Manager中管理自管理

数据库管理员、工程师 DevOps

配置实例。

实例配置部分的数据库实例类下,选择符合您要求的实例大小。

数据库管理员、工程师 DevOps

配置存储。

  1. 存储部分的存储类型下,选择符合您要求的类型。我们建议使用 gp3io1io2

  2. 根据需要为已分配的存储预调配 IOPS存储吞吐量设置初始值。

  3. (可选)展开其他存储配置部分,然后选择启用存储自动扩缩

数据库管理员、工程师 DevOps

配置连接。

  1. 连接部分中,选择是否要设置与数据库计算资源的连接。

  2. 对于 VPC,请选择具有相同的 VPC AWS Directory Service。

  3. 对于数据库子网组,选择跨多个可用区的组。

  4. 对于公有访问权限,选择

  5. 对于 VPC 安全组(防火墙),选择一个现有组或创建一个允许通过 SQL Server 端口 1433 进行访问的新组。

  6. 选择您的首选可用区。

  7. 展开其他配置部分,然后选择是否要使用自定义数据库端口。

数据库管理员、工程师 DevOps

配置 Windows 身份验证。

  1. 微Microsoft SQL Server Windows 身份验证部分,选中启用 Microsoft SQL Server Windows 身份验证复选框。

  2. 对于 Windows 身份验证类型,选择 AWS Managed Microsoft AD

  3. 对于目录,选择浏览目录,然后选择 AWS Managed Microsoft AD

数据库管理员、工程师 DevOps

配置监控。

  1. 监控部分,选择标准或高级数据库见解。

  2. 性能见解下,选中启用性能见解复选框。

  3. 选择保留期和 AWS KMS 密钥。

  4. 其他监视设置下,选中增强监控复选框。

  5. (可选)在日志导出下,选中错误日志复选框。

注意:若您想了解不同进程或线程对 CPU 的使用差异,指标非常有用。 CloudWatch 如果启用了错误日志,您也可以将错误日志导出到 Amazon。

数据库管理员、工程师 DevOps

配置其他设置。

  1. 展开其他配置部分。

  2. 对于数据库参数组数据库选项组,选择默认值或自定义值。

  3. 设置您的首选时区。

  4. 对于排序规则,设置一个值。默认值为 SQL_Latin1_General_CP1_CI_AS

  5. 在备份下:

    • 选中启用自动备份复选框。这将创建数据库快照。

    • 对于备份保留期,选择所需的天数。

    • 对于备份窗口,选择一个值。

    • (可选)对于备份复制,选择启用复制到其他 AWS 区域

    • 选中 “启用加密” 复选框以使用加密实例 AWS KMS。

  6. 维护窗口下,选中选择窗口复选框,然后设置首选时间。

  7. 选中启用删除保护复选框。

数据库管理员、工程师 DevOps

查看成本并创建数据库。

查看月度估算费用部分,然后选择创建数据库

数据库管理员、工程师 DevOps
Task说明所需技能

连接到 Windows 计算机。

连接到您的 Windows 计算机并启动 SQL Server Management Studio。

  1. 使用 RDP 使用 AWS Managed Microsoft AD 凭据连接到你的 Windows 计算机

  2. 开始菜单中输入 SSMS,然后选择 SQL Server Management Studio,启动 SSMS。

数据库管理员、工程师 DevOps

配置 SSMS 连接。

使用 Windows 身份验证设置数据库连接。

  1. 出现连接到服务器对话框时(或者通过导航到对象资源管理器Connect数据库引擎),将服务器类型设置为数据库引擎

  2. 输入 RDS SQL Server 端点(例如,your-rds-instance.region.rds.amazonaws.com

  3. 选择 Windows 身分验证

数据库管理员、工程师 DevOps

配置安全设置。

为 SSMS 版本 20 或更高版本设置所需的安全参数。

  1. 连接属性选项卡中,将加密设置为强制

  2. 选中“信任服务器证书”复选框。

  3. 证书中的主机名字段留空。

  4. (可选)设置数据库名称并根据需要调整连接超时。

数据库管理员、工程师 DevOps

创建 Windows 登录。

  1. 为域用户设置和测试 Windows 身份验证。

  2. 要建立初始连接,选择连接

  3. 在查询窗口中,运行以下查询:

CREATE LOGIN [<domainName>\<user_name>] FROM WINDOWS; GO
数据库管理员、工程师 DevOps

测试 Windows 身份验证。

  1. 注销 Amazon EC2 实例。

  2. 使用您的域凭据重新登录 EC2 实例。

  3. 启动 SSMS。

  4. 使用 Windows 身份验证连接。

  5. 验证连接是否成功。

数据库管理员、工程师 DevOps

相关资源