在 Amazon RDS for PostgreSQL 中使用 Kerberos 身份验证 - Amazon Relational Database Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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 Managed Microsoft AD 目录来存储用户凭证。然后,您将 Active Directory 的域和其他信息提供给 PostgreSQL 数据库实例。当用户使用 PostgreSQL 数据库实例进行身份验证时,身份验证请求将转发到 AWS Managed Microsoft AD 目录。

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

Kerberos 提供了与 AWS Identity and Access Management (IAM) 不同的身份验证方法。数据库可以使用 Kerberos 或 IAM 身份验证,但不能同时使用这两种。有关 IAM 身份验证的更多信息,请参阅适用于 MySQL 和 PostgreSQL 的 IAM 数据库身份验证

Amazon RDS 在以下 AWS 区域中的 PostgreSQL 数据库实例上支持 Kerberos 身份验证:

  • 美国东部(俄亥俄州)

  • 美国东部(弗吉尼亚北部)

  • 美国西部(加利福尼亚北部)

  • 美国西部(俄勒冈)

  • 亚太地区(孟买)

  • 亚太区域(首尔)

  • 亚太区域(新加坡)

  • 亚太区域(悉尼)

  • 亚太区域(东京)

  • 加拿大 (中部)

  • 欧洲(法兰克福)

  • 欧洲(爱尔兰)

  • 欧洲(伦敦)

  • 欧洲(斯德哥尔摩)

  • 南美洲(圣保罗)

  • 中国(北京)

  • 中国 (宁夏)

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

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

  1. 使用 AWS Managed Microsoft AD 创建 AWS Managed Microsoft AD 目录。您可以使用 AWS 管理控制台、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 区域中激活和停用 AWS STS

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

  4. 如果打算将目录和数据库实例放在不同的虚拟私有云 (VPC) 中,请配置 VPC 对等连接。有关更多信息,请参阅 Amazon VPC Peering Guide 中的什么是 VPC 对等连接?

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

    在创建或修改数据库实例时,请提供在创建目录时生成的域标识符(d-* 标识符)。还要提供您创建的 IAM 角色的名称。您可以在与目录相同的 VPC 或在不同 VPC 中找到数据库实例

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