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

将 Kerberos 身份验证用于 Amazon RDS for Db2

当用户连接到 Amazon RDS for Db2 数据库实例时,您可以使用 Kerberos 身份验证来验证用户的身份。您的数据库实例与 Amazon Directory Service for Microsoft Active Directory(Amazon Managed Microsoft AD)结合使用以启用 Kerberos 身份验证。当用户对加入到信任域的 RDS for Db2 数据库实例进行身份验证时,身份验证请求将转发至您使用 Amazon Directory Service 创建的目录。有关更多信息,请参阅《Amazon Directory Service 管理员指南》中的什么是 Amazon Directory Service?

首先,创建一个 Amazon Managed Microsoft AD 目录来存储用户凭证。然后,将您的 Amazon Managed Microsoft AD 目录中的域和其它信息添加到 RDS for Db2 数据库实例。当用户使用 RDS for Db2 数据库实例进行身份验证时,身份验证请求将转发到 Amazon Managed Microsoft AD 目录。

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

有关 Kerberos 身份验证的信息,请参阅以下主题。

区域和版本可用性

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

注意

对于 RDS for Db2 数据库实例已弃用的数据库实例类,不支持 Kerberos 身份验证。有关更多信息,请参阅 Amazon RDS for Db2 实例类

RDS for Db2 数据库实例的 Kerberos 身份验证概述

要为 RDS for Db2 数据库实例设置 Kerberos 身份验证,请完成以下一般步骤,稍后将详细介绍这些步骤:

  1. 使用 Amazon Managed Microsoft AD 创建 Amazon Managed Microsoft AD 目录。您可以使用 Amazon Web Services Management Console、 Amazon Command Line Interface(Amazon CLI)或 Amazon Directory Service 创建目录。有关更多信息,请参阅《Amazon Directory Service 管理指南》中的创建您的 Amazon Managed Microsoft AD 目录

  2. 创建使用托管式 IAM 策略 AmazonRDSDirectoryServiceAccess 的 Amazon Identity and Access Management(IAM)角色。此 IAM 角色允许 Amazon RDS 调用您的目录。

    为了让 IAM 角色允许访问,Amazon Security Token Service(Amazon STS)端点必须在您的 Amazon Web Services 账户的正确 Amazon Web Services 区域中激活。Amazon STS 端点默认为在所有 Amazon Web Services 区域中处于活动状态,您无需执行任何进一步操作即可使用它们。有关更多信息,请参阅《IAM 用户指南》中的在 Amazon Web Services 区域中激活和停用 Amazon STS

  3. 通过以下方法之一使用 Amazon Web Services Management Console、Amazon CLI 或 RDS API 创建或修改 RDS for Db2 数据库实例:

    您可以在与目录相同的 Amazon Virtual Private Cloud(VPC)中或在不同的 Amazon Web Services 账户或 VPC 中找到数据库实例。创建或修改 RDS for Db2 数据库实例时,请执行以下任务:

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

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

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

  4. 配置 Db2 客户端,并验证对于以下端口,流量是否可以在客户端主机与 Amazon Directory Service 之间流动:

    • TCP/UDP 端口 53 – DNS

    • TCP 88 – Kerberos 身份验证

    • TCP 389 – LDAP

    • TCP 464 – Kerberos 身份验证

在域中管理数据库实例

您可以使用 Amazon Web Services Management Console、Amazon CLI 或 RDS API 来管理数据库实例及其与 Microsoft Active Directory 的关系。例如,您可以关联 Active Directory 以启用 Kerberos 身份验证。您也可以删除 Active Directory 的关联以禁用 Kerberos 身份验证。您也可以将由一个 Microsoft Active Directory 在外部进行身份验证的数据库实例移到另一个 Active Directory。

例如,使用 modify-db-instance CLI 命令,您可以执行以下操作:

  • 重新尝试为失败的成员资格启用 Kerberos 身份验证,方法是为 --domain 选项指定当前成员资格的目录 ID。

  • 通过为 --domain 选项指定 none 来禁用数据库实例的 Kerberos 身份验证。

  • 通过为 --domain 选项指定新域的域标识符,将数据库实例从一个域移动到另一个域。

了解域成员资格

在创建或修改数据库实例后,它将成为域的成员。您可以在控制台中查看域成员资格的状态,也可以通过运行 describe-db-instances 命令来查看。数据库实例的状态可以是以下状态之一:

  • kerberos-enabled – 数据库实例已启用 Kerberos 身份验证。

  • enabling-kerberos – Amazon 正在此数据库实例上启用 Kerberos 身份验证。

  • pending-enable-kerberos – 启用 Kerberos 身份验证正在此数据库实例上等待处理。

  • pending-maintenance-enable-kerberos – Amazon 将尝试在下一个计划的维护时段在数据库实例上启用 Kerberos 身份验证。

  • pending-disable-kerberos – 禁用 Kerberos 身份验证正在此数据库实例上等待处理。

  • pending-maintenance-disable-kerberos – Amazon 将尝试在下一个计划的维护时段在数据库实例上禁用 Kerberos 身份验证。

  • enable-kerberos-failed – 出现一个配置问题,导致 Amazon 无法在数据库实例上启用 Kerberos 身份验证。在重新发出命令以修改数据库实例之前纠正配置问题。

  • disabling-kerberos – Amazon 正在此数据库实例上禁用 Kerberos 身份验证。

启用 Kerberos 身份验证的请求可能因网络连接问题或不正确的 IAM 角色而失败。在某些情况下,在创建或修改数据库实例时,尝试启用 Kerberos 身份验证可能会失败。如果发生这种情况,请确保使用正确的 IAM 角色,然后修改数据库实例以加入域。