使用 亚马逊云科技 Secrets Manager 集成,无需人为干预即可存储亚马逊 Redshift 管理员证书,从而增强您的安全态势

Amazon Redshift 是一项完全托管的 PB 级云端数据仓库服务。您可以从几百千兆字节的数据开始,然后扩展到千兆字节或更多。如今,成千上万的 亚马逊云科技 客户——来自财富 500 强公司、初创公司以及介于两者之间的所有公司——使用 Amazon Redshift 来运行任务关键型商业智能 (BI) 控制面板、分析实时流数据和进行预测分析。随着生成的数据的不断增加,Amazon Redshift客户 在为最终用户提供更好的服务、改进产品以及经营高效和有效的业务方面继续取得 成功

亚马逊云科技 Secrets Manager 可帮助您管理、检索和轮换数据库证书,并原生支持存储 亚马逊关系数据库服务 (亚马逊 RDS)、亚马逊 A urora 、亚马逊 Redshift 和 亚马逊 DocumentDB(兼容 MongoDB) 的数据库密钥。 我们建议您使用 Secrets Manager 来存储 Amazon Redshift 用户证书,因为它允许您配置更安全的密钥轮换、自定义精细的访问控制以及集中审核和监控密钥。你可以通过亚马逊 Redshift API 和查询编辑 器 本地使用现有的 Secrets Manager 密钥来访问亚马 逊 Redshift。

到目前为止,您需要以纯文本形式配置您的亚马逊 Redshift 管理员证书,或者让 Amazon Redshift 为您生成证书。要将这些证书存储在 Secrets Manager 中,您需要手动创建密钥,或者使用硬编码或生成的证书配置脚本。这两个选项都需要人类来检索它们。Amazon Redshift 现在允许您自动创建和存储管理员证书,无需人工查看证书。作为此工作流程的一部分,管理员凭据配置为每 30 天自动轮换一次。通过在配置过程中减少人工查看机密的需求,您可以提高 Amazon Redshift 数据仓库的安全状况并提高审计跟踪的准确性。

在这篇文章中,我们将介绍如何将新的和之前配置的 Redshift 集群以及亚马逊 Redshift 无服务器命名空间的 Ama zon Redshift 管理员凭证与 Secrets Manager 集成。

先决条件

在开始之前,请完成以下先决条件:

  1. 拥有创建和管理 Redshift 无服务器命名空间 或 Redshift 集群的管理员权限。
  2. 拥有在密钥管理器中创建和管理密钥的管理员权限。
  3. (可选)使用 Redshift 无服务器命名空间或 Redshift 集群来启用密钥管理器集成。
  4. (可选)使用不同 的 亚马逊云科技 密钥管理服务 (亚马逊云科技 KMS) 密钥使用密钥管理器进行凭证加密。
  5. 可以访问 亚马逊 Redshift 查询编辑器 v2

使用密钥管理器设置新集群

在本节中,我们提供了使用密钥管理器配置 Redshift 预置集群或 Redshift 无服务器工作组的步骤。

创建已配置 Redshift 的集群

要开始在新的 Redshift 预置集群中使用密钥管理器,请完成以下步骤:

  1. 在 Amazon Redshift 控制台上,选择 创建集群
  2. 根据需要定义 集群配置 示例数据 部分。
  3. 数据库配置 部分中,指定所需的管理员用户名。
  4. 要使用 Secrets Manager 自动创建和存储您的密码,请在 亚马逊云科技 Secrets Manager 中选择 管理管理员证书
  5. 您还可以创建密钥或选择现有密钥,使用自己的 亚马逊云科技 客户管理的 KMS 密钥自定义加密设置。这是用于在密钥管理器中加密密钥的密钥。如果您不选择 “ 自定义加密设置” ,则默认使用 亚马逊云科技 托管密钥。
  6. 根据需要在 集群权限 和其他配置中提供信息 ,然后选择 创建集群
  7. 当集群可用时,您可以在 数据库配置 部分的集群 属性 选项卡上检查包含管理员密码的密钥的 ARN。

创建 Redshift 无服务器工作组

要开始使用带有 Redshift 无服务器的 Secrets Manager,请按照以下步骤创建 Redshift 无服务器工作组:

  1. 在 Amazon Redshift 无服务器控制面板上,选择 创建工作组。
  2. 根据需要定义 工作组名称 容量 网络和安全 部分,然后选择 下一步
  3. 选择 创建新命名空间 并提供合适的名称
  4. 数据库名称和密码 部分,选择 自定义管理员用户和凭据
  5. 提供管理员用户名。
  6. 管理员密码 部分,选择在 亚马逊云科技 Secrets Manager 中 管理管理员证书
  7. 您还可以创建密钥或选择现有密钥,使用自己的 亚马逊云科技 客户管理的 KMS 密钥自定义加密设置。这是用于在密钥管理器中加密密钥的密钥。如果您不选择 “ 自定义加密设置” ,则默认使用 亚马逊云科技 托管密钥。
  8. 在 “ 权限”、“ 加密” 和 “安全” 部分中提供相应的信息,然后选择 “ 下一步” 。
  9. 查看选定的选项,然后选择 “ 创建” 。
  10. 当新创建的工作组和命名空间的状态为 “ 可用” 时 ,选择命名空间。
  11. 你可以在 “ 一般信息 ” 下找到带有管理员凭据的 Secrets Manager ARN。

为现有 Redshift 集群启用密钥管理器

在本节中,我们提供了为现有 Redshift 预置集群或 Redshift 无服务器命名空间启用密钥管理器的步骤。

配置现有的 Redshift 预置集群

要为现有 Redshift 集群启用密钥管理器,请按照以下步骤操作:

  1. 在 Amazon Redshift 控制台上,选择要修改的集群。
  2. 在 “ 属性” 选项卡上,选择 “ 编辑管理员凭据” 。
  3. 亚马逊云科技 Secrets Manager 中选择 管理管理员证书
  4. 要使用 亚马逊云科技 KMS 加密数据,请选择 自定义加密选项, 然后选择现有 KMS 密钥或选择 创建 亚马逊云科技 KMS 密钥
  5. 选择 “ 保存更改” 。
  6. 当集群可用时,您可以在 数据库配置 部分的集群 属性 选项卡上检查包含管理员密码的密钥的 ARN。

配置现有的 Redshift 无服务器命名空间

要在现有 Amazon Redshift 无服务器命名空间上启用 Secrets Manager,请按照以下步骤操作:

  1. 在 Amazon Redshift 无服务器控制面板上,选择要修改的命名空间。
  2. 在 “ 操作” 菜单上,选择 “ 编辑管理员凭据” 。
  3. 选择 “ 自定义管理员用户凭据” 。
  4. 亚马逊云科技 Secrets Manager 中选择 管理管理员证书
  5. 要使用 亚马逊云科技 KMS 加密数据,请选择 自定义加密设置, 然后选择现有的 亚马逊云科技 KMS 密钥或选择 创建 亚马逊云科技 KMS 密钥
  6. 选择 “ 保存更改” 。
  7. 当命名空间状态为 “ 可用” 时 ,你可以在 一般信息 部分的 管理员密码 ARN 下看到密钥管理器 ARN。

在密钥管理器中管理密钥

要在 Secrets Manager 中管理管理员凭证,请按照以下步骤操作:

  1. 在密钥管理器控制台上,选择要修改的密钥。

Amazon Redshift 在创建密钥时默认启用轮换,轮换计划为每 30 天一次。

  1. 要查看管理员凭据,请选择 检索机密值
  2. 要更改密钥轮换,请选择 编辑旋转
  3. 定义新的旋转频率并选择 “ 保存” 。
  4. 要立即轮换密钥,请选择 “立即 旋转密钥”, 然后选择 “ 旋转” 。

Secrets Manager 可以通过 亚马逊云科技 开发工具包与您的应用程序集成,该开发工具包有 Java、JavaScript、C#、Python3、Ruby 和 Go 版本。支持的语言代码片段可在 示例代码 部分找到。

  1. 选择首选语言的选项卡,然后使用应用程序中提供的代码片段。

恢复快照

可以从无服务器快照和预配置快照启动新仓库。您可以按照以下步骤选择将恢复的集群配置为使用密钥管理器证书,即使源集群没有使用密钥管理器:

  1. 导航到 Redshift 快照仪表板以获取已配置集群的快照,或导航到 Redshift 数据备份仪表板以获取无服务器工作组的快照,然后选择要从中恢复的快照。
    在预置的快照仪表板上,在 还原快照 菜单上,选择 还原到已配置的集群 还原到无服务器命名空间。

    在无服务器快照仪表板上,在 “ 操作” 菜单上的 “还原无服务器快照” 下 ,选择 “ 还原到已配置的集群 ” 或 “ 还原到” 无服务器命名空间

    如果您要从任一选项恢复到无服务器端点,则需要事先配置目标无服务器命名空间。
  1. 如果您要使用未配置 Secrets Manager 证书的快照恢复到仓库,则可以通过在 亚马逊云科技 Secrets Manager 中选择 管理管理员凭证在快照还原页面的 数据库配置 部分启用该快照 。
  2. 您还可以创建密钥或选择现有密钥,使用自己的 亚马逊云科技 客户管理的 KMS 密钥自定义加密设置。如果您不选择 “ 自定义加密设置” ,则默认使用 亚马逊云科技 托管密钥。
  3. 如果快照是从使用 Secrets Manager 管理其管理员凭据的集群拍摄的,并且您要恢复到已配置的集群,则可以选择在 Secrets Manager 中更新用于加密证书的密钥。否则,如果您想使用与源快照相同的配置,则可以选择与以前相同的密钥。
  4. 配置所有必要的详细信息后,选择从快照中 恢复群集/保存更改 以启动已配置的集群,或选择 还原 将快照数据写入命名空间。

使用 Secrets Manager 通过查询编辑器 v2 连接到亚马逊 Redshift

要使用查询编辑器 v2 连接到亚马逊 Redshift,请完成以下步骤:

  1. 在 Amazon Redshift 控制台上,选择要连接的集群。
  2. 在 “ 属性” 选项卡上,找到管理员用户和管理员密码 ARN。
  3. 记下将在后续步骤中使用的 ARN。
  4. 在集群详细信息页面顶部的 查询数据 菜单上,选择在 查询编辑器 v2 中查询
  5. 找到要连接的 Redshift 集群或 Redshift 无服务器工作组,选择其名称旁边的选项菜单(三个点),然后选择创建连接。
  6. 在连接窗口中,选择 亚马逊云科技 Secrets Manager
  7. 对于 S ecret ,为您的集群选择相应的密钥。
  8. 选择 “ 创建连接” 。

请注意,对机密的访问权限可以由 亚马逊云科技 身份和访问管理 (IAM) 权限控制。

现在应该与您的集群建立连接,您将能够看到集群中的数据库对象并对集群运行查询

结论

在这篇文章中,我们演示了 Secrets Manager 与 Amazon Redshift 的集成如何简化管理员凭证的存储。这是一项易于使用的功能,可立即使用,可自动执行维护管理员凭据和轮换 Redshift 数据仓库的重要任务。今天就试试吧,如果你有任何问题或建议,请发表评论。


作者简介

塔希尔·阿齐兹 是 亚马逊云科技 的分析解决方案架构师。他在建立数据仓库和大数据解决方案方面工作了超过15年。他喜欢帮助客户在 亚马逊云科技 上设计端到端分析解决方案。工作之余,他喜欢旅行和烹饪。

Julia Beck 是 亚马逊云科技 的分析专家解决方案架构师。她通过设计旨在满足客户特定需求的概念验证工作负载来支持客户验证分析解决方案。

Ekta Ahuja 是 亚马逊云科技 的高级分析专家解决方案架构师。她热衷于帮助客户构建可扩展且强大的数据和分析解决方案。在 亚马逊云科技 之前,她曾担任过多个不同的数据工程和分析职位。工作之余,她喜欢烘烤、旅行和棋盘游戏。