

 从补丁 198 开始，Amazon Redshift 将不再支持创建新的 Python UDF。现有的 Python UDF 将继续正常运行至 2026 年 6 月 30 日。有关更多信息，请参阅[博客文章](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

# 使用 IAM 身份验证生成数据库用户凭证
<a name="generating-user-credentials"></a>

您可以根据通过 AWS Identity and Access Management (IAM) 权限策略授予的权限生成临时数据库凭证，以管理用户的 Amazon Redshift 数据库访问权限。

通常，Amazon Redshift 数据库用户提供数据库用户名和密码以登录到数据库。不过，您不必在 Amazon Redshift 数据库中维护用户名和密码。作为替代方法，您可以将系统配置为允许用户创建用户凭证，并根据其 IAM 凭证登录到数据库。

Amazon Redshift 提供 [GetClusterCredentials](https://docs.aws.amazon.com/redshift/latest/APIReference/API_GetClusterCredentials.html) API 操作以生成临时数据库用户凭证。您可使用 Amazon Redshift JDBC 或 ODBC 驱动程序来配置您的 SQL 客户端，这些驱动程序可管理调用 `GetClusterCredentials` 操作的过程。它们通过检索数据库用户凭证并在您的 SQL 客户端和您的 Amazon Redshift 数据库之间建立连接来完成此操作。您也可以使用数据库应用程序以编程方式调用 `GetClusterCredentials` 操作，检索数据库用户凭证并连接到数据库。

如果您已在 AWS 外部管理用户身份，您可以使用与安全断言标记语言 (SAML) 2.0 兼容的身份提供者 (IdP) 管理对 Amazon Redshift 资源的访问。配置您的 IdP 以允许联合身份用户访问 IAM 角色。通过使用该 IAM 角色，您可以生成临时数据库凭证并登录到 Amazon Redshift 数据库。

SQL 客户端需要具有权限才能为您调用 `GetClusterCredentials` 操作。您将通过创建 IAM 角色并附加 IAM 权限策略（该策略授权或限制对 `GetClusterCredentials` 操作和相关操作的访问）来管理这些权限。作为最佳实践，我们建议将权限策略附加到 IAM 角色，然后根据需要将其分配给用户和组。有关更多信息，请参阅 [Amazon Redshift 中的 Identity and Access Management](https://docs.aws.amazon.com/redshift/latest/mgmt/redshift-iam-authentication-access-control.html)。

该策略还授权或限制对特定资源 (例如，Amazon Redshift 集群、数据库、数据库用户名和用户组名称) 的访问。

**注意**  
我们建议使用 Amazon Redshift JDBC 或 ODBC 驱动程序来管理调用 `GetClusterCredentials` 操作并登录数据库的过程。为简单起见，我们在整个主题中假定您将 SQL 客户端与 JDBC 或 ODBC 驱动程序结合使用。  
有关使用 `GetClusterCredentials` 操作或并行 `get-cluster-credentials` CLI 命令的具体详细信息和示例，请参阅 [GetClusterCredentials](https://docs.aws.amazon.com/redshift/latest/APIReference/API_GetClusterCredentials.html) 和 [get-cluster-credentials](https://docs.aws.amazon.com/cli/latest/reference/redshift/get-cluster-credentials.html)。

为了集中管理身份验证和授权，Amazon Redshift 支持使用 IAM 进行数据库身份验证，从而通过企业联合进行用户身份验证。您也可以不创建用户，而是使用来自 AWS Directory Service、您的企业用户目录或 Web 身份提供者的现有身份。这些用户被称为联合身份用户。在通过 IdP 请求访问权限时，AWS 将为联合身份用户分配角色。

要为组织中的用户或客户端应用程序提供联合访问权限以调用 Amazon Redshift API 操作，您还可以使用具有 SAML 2.0 支持的 JDBC 或 ODBC 驱动程序请求从组织 IdP 中进行身份验证。在这种情况下，组织的用户没有 Amazon Redshift 的直接访问权限。

有关更多信息，请参阅 *IAM 用户指南*中的[身份提供者和联合](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html)。