

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

# 为数据库连接凭证创建密钥
<a name="redshift-secrets-manager-integration-create"></a>

您可以创建 Secrets Manager 密钥来存储用于连接到 Amazon Redshift 预置集群或 Redshift Serverless 命名空间和工作组的凭证。在 Amazon Redshift 查询编辑器 v2 中计划查询时，也可以使用该密钥。

**使用 Secrets Manager 控制台为 Amazon Redshift 预调配集群中的数据库创建密钥**

1. 打开 Secrets Manager 控制台（[https://console.aws.amazon.com/secretsmanager/](https://console.amazonaws.cn/secretsmanager/)）。

1. 导航到**密钥**列表，然后选择**存储新密钥**。

1. 选择 **Amazon Redshift 数据仓库的凭证**。在创建密钥的步骤中输入您的信息，如下所示：
   + 在**用户名**的**凭证**中，输入数据仓库管理用户的名称。
   + 在**密码**的**凭证**中，输入**用户名**的密码。
   + 对于**加密密钥**，请选择您的加密密钥。
   + 对于**数据仓库**，请选择包含您的数据的 Amazon Redshift 预调配集群。
   + 对于**密钥名称**，输入密钥的名称。
   + 对于**描述**，请输入密钥的描述。
   + 对于**标签**，输入带有字词 **Redshift** 的**标签键**。当您尝试使用 Amazon Redshift 查询编辑器 v2 连接到数据仓库时，需要使用此标签键来列出密钥。该密钥的标签键必须以字符串 **Redshift** 开头，才能在管理控制台上的 Amazon Secrets Manager 下列出该密钥。

1. 继续通过多个步骤输入有关密钥的信息，直到您在**审核**步骤中**存储**您所做的更改。

   您的凭证、引擎、主机、端口和集群标识符的特定值存储在密钥中。此外，该密钥还使用标签键 `Redshift` 进行标记。

**使用 Redshift Serverless 控制台为 Redshift Serverless 命名空间中的数据库创建密钥**

1. 登录到 Amazon Web Services 管理控制台并打开 Amazon Redshift 控制台，网址：[https://console.aws.amazon.com/redshiftv2/](https://console.amazonaws.cn/redshiftv2/)。

1. 选择 **Redshift Serverless** 并导航到**命名空间配置**。

1. 选择要为其创建密钥凭证的命名空间。

1. 打开**操作**、**编辑管理员凭证**。

1. 对于**管理员密码**，请选择**在 Amazon Secrets Manager 中管理管理员凭证**。

1. 选择**保存更改**以保存您的更改。

确认出现一条消息，说明已成功更改密码。您也可以在 Secrets Manager 控制台中查看密钥。您可以使用该密钥，在 Redshift Serverless 控制台和 Amazon Redshift 查询编辑器 v2 中通过 Amazon Secrets Manager 连接方法连接到工作组中的数据库。该密钥的标签键必须以字符串“Redshift”开头，才能在查询编辑器 v2 Web 应用程序中列出该密钥。该密钥的标签键必须以字符串 **Redshift** 开头，才能在管理控制台上的 Amazon Secrets Manager 下列出该密钥。

**使用 Secrets Manager 控制台为 Redshift Serverless 命名空间中的数据库创建密钥**

1. 打开 Secrets Manager 控制台（[https://console.aws.amazon.com/secretsmanager/](https://console.amazonaws.cn/secretsmanager/)）。

1. 导航到**密钥**列表，然后选择**存储新密钥**。

1. 选择 **Amazon Redshift 数据仓库的凭证**。在创建密钥的步骤中输入您的信息，如下所示：
   + 在**用户名**的**凭证**中，输入数据仓库管理用户的名称。
   + 在**密码**的**凭证**中，输入**用户名**的密码。
   + 对于**加密密钥**，请选择您的加密密钥。
   + 对于**数据仓库**，请选择包含您的数据的 Redshift Serverless 命名空间。
   + 对于**密钥名称**，输入密钥的名称。
   + 对于**描述**，请输入密钥的描述。
   + 对于**标签**，输入带有字词 **Redshift** 的**标签键**。当您尝试使用 Amazon Redshift 查询编辑器 v2 连接到数据仓库时，需要使用此标签键来列出密钥。该密钥的标签键必须以字符串 **Redshift** 开头，才能在管理控制台上的 Amazon Secrets Manager 下列出该密钥。

1. 继续通过多个步骤输入有关密钥的信息，直到您在**审核**步骤中**存储**您所做的更改。

   您的凭证、数据库名称、主机、端口、命名空间和引擎的特定值存储在密钥中。此外，该密钥还使用标签键 `Redshift` 进行标记。

**使用 Amazon CLI 为 Redshift Serverless 命名空间中的数据库创建密钥**

您可以使用 Amazon CLI 创建密钥。一种方法是使用 Amazon CloudShell 来运行 Secrets Manager Amazon CLI 命令，如下所示。您必须具有适当的权限才能运行 Amazon CLI 命令，如以下过程所示。

1. 在 Amazon 控制台上，打开 Amazon CloudShell 命令提示符。有关 Amazon CloudShell 的更多信息，请参阅《Amazon CloudShell User Guide》**中的[What is Amazon CloudShell](https://docs.amazonaws.cn/cloudshell/latest/userguide/welcome.html)。

1. 例如，对于密钥 `MyTestSecret`，输入一条 Secrets Manager 命令，来存储用于连接数据库或计划 Amazon Redshift 查询编辑器 v2 查询的密钥。将命令中的以下值替换为环境的值：
   + {{admin}} 是数据仓库的管理员用户名。
   + {{passw0rd}} 是管理员的密码。
   + {{dev}} 是数据仓库中的初始数据库名称。
   + {{region}} 是包含数据仓库的 Amazon Web Services 区域。例如 `us-east-1`。
   + {{123456789012}} 为 Amazon Web Services 账户。
   + {{namespace-id}} 是类似于 `c3928f0e-c889-4d2b-97a5-5738324d5d3e` 的命名空间标识符。您可以在 Amazon Redshift 控制台中的无服务器命名空间详细信息页面上找到该标识符。

   ```
   aws secretsmanager create-secret \
   --name MyTestSecret \
   --description "My test secret created with the CLI." \
   --secret-string "{\"username\":\"{{admin}}\",\"password\":\"{{passw0rd}}\",\"dbname\":\"{{dev}}\",\"engine\":\"redshift\"}" \
   --tags "[{\"Key\":\"redshift-serverless:namespaceArn\",\"Value\":\"arn:aws:redshift-serverless:{{region}}:{{123456789012}}:namespace/{{namespace-id}}\"}]"
   ```