在 Amazon RDS for PostgreSQL 中使用 Kerberos 身份验证 - Amazon Relational Database Service

Amazon RDS for PostgreSQL 中使用 Kerberos 身份验证

在用户连接到运行 PostgreSQL 的数据库实例时,您可以使用 Kerberos 对用户进行身份验证。为此,请将数据库实例配置为使用 AWS Directory Service for Microsoft Active Directory 进行 Kerberos 身份验证。AWS Directory Service for Microsoft Active Directory 也称为 AWS Managed Microsoft AD。这是 AWS Directory Service 提供的一项功能。要了解更多信息,请参阅《AWS Directory Service 管理指南》中的什么是 AWS Directory Service?

要开始操作,请创建一个 AWS Managed Microsoft AD 目录来存储用户凭证。然后,将 Active Directory 的域和其他信息提供给 PostgreSQL 数据库实例。当用户使用 PostgreSQL 数据库实例进行身份验证时,身份验证请求将转发到 AWS Managed Microsoft AD 目录。

将所有凭证保存在同一目录中可以节省您的时间和精力。您具有一个集中位置用于存储和管理多个数据库实例的凭证。使用目录还可以改善您的整体安全概要。

此外,还可以从自己的本地 Microsoft Active Directory 访问凭证。为此,请创建一个信任域关系,以便 AWS Managed Microsoft AD 目录信任您的本地 Microsoft Active Directory。通过这种方式,您的用户可以使用 Windows 单点登录 (SSO) 访问 PostgreSQL 实例,获得与访问本地网络中的工作负载相同的体验。

数据库可以使用密码身份验证,也可以使用带有 Kerberos 或 AWS Identity and Access Management(IAM)身份验证的密码身份验证。有关 IAM 身份验证的更多信息,请参阅 适用于 MariaDB、MySQL 和 PostgreSQL 的 IAM 数据库身份验证

区域和版本可用性

功能可用性和支持因每个数据库引擎的特定版本以及 AWS 区域而异。有关使用 Kerberos 身份验证的 RDS for PostgreSQL 的版本和区域可用性的更多信息,请参阅Kerberos 身份验证

PostgreSQL 数据库实例的 Kerberos 身份验证概述

要为 PostgreSQL 数据库实例设置 Kerberos 身份验证,请执行以下步骤,稍后将详细介绍这些步骤:

  1. 使用 AWS Managed Microsoft AD 创建 AWS Managed Microsoft AD 目录。您可以使用 AWS Management Console、AWS CLI 或 AWS Directory Service API 创建目录。确保打开目录安全组上的相关出站端口,以便目录可以与实例进行通信。

  2. 创建一个角色,以提供对您的 AWS Managed Microsoft AD 目录进行调用的 Amazon RDS 访问权限。为此,请创建使用托管 IAM 策略 AmazonRDSDirectoryServiceAccess 的 AWS Identity and Access Management (IAM) 角色。

    要使 IAM 角色允许访问,必须在您的 AWS 账户的正确 AWS 区域中激活 AWS Security Token Service(AWS STS)端点。原定设置情况下,AWS STS 端点在所有 AWS 区域中处于活动状态,您可以直接使用这些端点,而无需执行任何其他操作。有关更多信息,请参阅 IAM 用户指南中的在 AWS STS 区域中激活和停用 AWS

  3. 使用 Microsoft Active Directory 工具在 AWS Managed Microsoft AD 目录中创建和配置用户。有关在 Active Directory 中创建用户的更多信息,请参阅 AWS 管理指南中的在 AWS Directory Service 托管 Microsoft AD 中管理用户和组

  4. 如果您计划在不同的 AWS 账户或 Virtual Private Cloud (VPC) 中查找目录和数据库实例,请配置 VPC 对等连接。有关更多信息,请参阅 Amazon VPC Peering Guide 中的什么是 VPC 对等连接?

  5. 使用以下方法之一,从控制台、CLI 或 RDS API 中创建或修改 PostgreSQL 数据库实例

    您可以在与目录相同的 Amazon Virtual Private Cloud (VPC) 中或在不同的 AWS 账户或 VPC 中定位实例。创建或修改 PostgreSQL 数据库实例时,请执行以下操作:

    • 请提供创建目录时生成的域标识符(d-* 标识符)。

    • 还要提供您创建的 IAM 角色的名称。

    • 确保数据库实例安全组可以从目录安全组接收入站流量。

  6. 使用 RDS 主用户凭证连接到 PostgreSQL 数据库实例。在 PostgreSQL 中创建用户以在外部进行标识。外部标识的用户可以使用 Kerberos 身份验证登录到 PostgreSQL 数据库实例