你需要知道的一切 [2023]

保护您的机密数据:深入了解 AWS Secrets Manager

AWS Secrets Manager 是一项强大的服务,旨在安全地存储和管理您的各种敏感信息,包括凭证、数据、密码和其他机密信息。在当今网络攻击日益猖獗的环境下,保护这些关键数据至关重要,它能有效防止数据泄露,并减少组织遭受损失的风险。

本文将详细介绍 AWS Secrets Manager 的功能和优势,帮助您了解如何利用该服务来增强数据安全性。

什么是 AWS Secrets Manager?

AWS Secrets Manager 是一款可以帮助用户管理其机密信息的全生命周期工具。它涵盖了机密的创建、存储、轮换和检索等多个环节。这些机密信息可以是密码、API 密钥、数据库和应用程序凭证等。

简而言之,AWS Secrets Manager 可以安全地存储您组织中任何重要且敏感的数据。这包括用户凭证(如用户名和密码)、OAuth 令牌、AWS 凭证、SSH 密钥、加密密钥、证书和私钥等。

该服务的核心目标是集中管理和保护访问 IT 资源、服务、应用程序和系统所必需的数据。它通过在一个集中的位置存储和管理机密数据,简化了合法用户的访问过程,避免了复杂的代码编写。

AWS Secrets Manager 支持在各种 AWS 服务(例如 Redshift、RDS 和 DocumentDB)之间轮换密钥,确保这些服务中的所有密钥和数据库凭证始终保持最新状态。此外,您可以通过控制台、AWS SDK 或 AWS CLI 等方式,按需或按计划执行密钥轮换。

此外,AWS Secrets Manager 还提供了强大的数据加密和访问控制机制,以增强数据保护。它还允许您监控受保护的信息,并利用多种集成工具进行审核。

从用户规模来看,大型企业是该服务的主要用户群体;从行业类型来看,软件公司是其主要应用领域。

AWS Secrets Manager 的主要功能

#1. 机密信息的存储与管理

AWS Secrets Manager 不仅可以存储机密信息,还可以轻松管理这些信息。 您可以对存储在平台上的数据执行各种操作,例如:

  • 创建机密信息和数据库。
  • 修改已有的机密信息。
  • 查找特定的机密信息。
  • 删除不再需要的机密信息。
  • 恢复丢失或删除的机密信息。
  • 将密钥复制到不同的 AWS 区域。
  • 将复制的密钥提升为独立的密钥。

当您在 Amazon Aurora、Amazon RDS、Amazon DocumentDB 或 Amazon Redshift 中创建账户后,可以将凭证存储在该平台上。 您可以使用 Secrets Manager 控制台、AWS 开发工具包或 AWS CLI 来完成此操作。

#2. 强大的安全保障

AWS Secrets Manager 使用强大的加密技术来保护您的所有机密信息,防止未经授权的访问。 它利用 AWS Key Management Service (KMS) 密钥来加密您的机密信息。

此外,Secrets Manager 还利用 AWS Identity and Access Management (IAM) 来允许用户安全地访问其机密信息。 它提供了高级的访问控制和身份验证机制。

  • 身份验证用于验证发出请求的用户身份。身份验证通过需要多因素身份验证 (MFA) 令牌、访问密钥和密码的登录过程来完成。
  • 访问控制用于确保只有经过批准的用户才能对机密信息执行特定操作。

Secrets Manager 还使用策略来定义哪些用户可以访问哪些资源以及可以对这些机密信息或资源采取哪些操作。您可以使用 AWS IAM 角色在任何地方获取临时凭证,以确保在 AWS 上运行的服务器、应用程序、容器和其他工作负载的安全。

此外,您可以为 AWS 应用程序创建的工作负载启用相同的 IAM 角色和策略,以访问 AWS 和本地设备(如应用程序服务器)中的资源。

#3. 机密信息轮换

AWS Secrets Manager 允许您按计划或按需轮换密钥,而不会中断正在运行的应用程序或重新部署它们。

机密信息轮换是指定期更新组织机密的过程。当您轮换一个密钥时,您需要更新密钥中的数据或凭据以及服务或数据库。此外,您可以通过控制台和 AWS CLI 设置和自动化密钥轮换,从而节省时间并提高效率。

为了更新密钥,AWS Secret Manager 利用 AWS Lambda 函数,并根据预设的计划调用该函数。 您需要设置一个特定的计划,例如每 90 天或 30 天轮换一次密钥。您也可以使用 cron 表达式来完成此操作。

此外,Secrets Manager 可以使用暂存标签在轮换期间标记密钥的版本。它可以通过提供不同的参数在轮换期间多次调用函数。

以下是轮换机密信息的主要步骤:

  • 创建机密的新版本。 它可能包含新的用户名和密码,以及其他机密数据。
  • 更改服务或数据库中的现有凭证,使其与新版本中的新凭证相匹配。根据您实施的轮换策略,将创建一个与现有用户具有相同访问权限的新用户。
  • 测试新创建的机密版本,确保它可以正常访问服务或数据库。根据您的应用程序所需的访问类型,您可以包括读取和写入访问权限。
  • 执行轮换,将新版本切换到旧版本。保留旧版本,以避免完全丢失机密信息。

#4. 机密信息监控

由于违规和效率低下随时可能发生,因此密切关注您的机密信息,并在问题出现时及时采取措施至关重要。AWS Secrets Manager 允许您使用监控工具监控数据,并在出现问题时立即发出警报。

您可以使用日志来调查任何意外的更改或使用情况。如果发现问题,您还可以回滚不需要的更改并检索以前的版本。此外,您可以配置自动检查,以检测任何删除机密信息的尝试或不当使用。

通过监控机密信息,您可以获得以下益处:

  • 使用 AWS CloudTrail 记录事件:AWS CloudTrail 可以记录来自控制台的 API 调用(例如,机密轮换和删除)作为事件。它会显示过去 90 天内记录的事件。您还可以设置 CloudTrail,将来自多个 AWS 区域和账户的日志文件直接发送到 Amazon S3 存储桶。
  • 使用 CloudWatch 进行监控:CloudWatch 可以收集原始数据,并将其处理为实时、可读的指标,以便您轻松监控机密信息。数据将保存 15 个月,以便您评估服务或应用程序的性能。
  • 使用 EventBridge 匹配事件:使用 EventsBridge,可以匹配 AWS CloudTrail 日志文件中的事件。为此,配置规则来查找这些事件,并向目标发送新事件以采取行动。
  • 监控计划删除的机密:通过结合 Amazon CloudWatch Logs、简单通知服务 (SNS) 和 CloudTrail,您可以设置警报,以便在任何未经授权尝试删除机密信息时收到通知。

收到警报后,您有时间决定是否要删除机密信息,或采取措施阻止删除。或者,您可以允许用户使用新密钥并为其提供访问权限。

#5. 强大的集成能力

AWS Secrets Manager 与许多其他 Amazon 和 AWS 工具集成,例如 Alexa for Business、AWS App2Container、App Runner、Amazon AppFlow、AWS AppConfig、Amazon Athena、Amazon DocumentDB、AWS DataSync、AWS CodeBuild、Amazon ElasticCache、Amazon EMR、AWS Elemental Live、Amazon QuickSight、Amazon Redshift、AWS Migration Hub 和 Amazon RDS 等。

为什么应该使用 AWS Secrets Manager?

增强的安全态势

Secrets Manager 可以增强您的组织的安全状况,因为您不需要在应用程序源代码中使用硬编码凭据。 通过将您的凭据存储在 Secrets Manager 中,您可以避免访问应用程序或其组件的人造成与安全相关的损害。

灾难恢复能力

诸如网络攻击之类的灾难随时可能发生。这可能会导致您丢失重要的信息、密码以及其他凭据和数据。您也可能因意外删除而丢失数据。

使用该工具,您可以通过在运行时调用 AWS Secrets Manager 来替换硬编码凭证,以便在需要时动态检索您的凭证。

降低安全风险

Secrets Manager 允许您配置轮换计划,以便在必要时自动轮换机密信息。 这样,您可以用短期机密替换长期机密,这有助于降低安全风险。

此外,轮换凭据不需要应用程序更新或修改应用程序客户端,因为您不会将凭据与应用程序一起存储。

满足合规要求

考虑到日益增加的安全和隐私风险,GDPR 和 HIPAA 等监管机构要求组织遵守其合规标准,以确保安全地处理客户和业务数据。因此,请仅使用安全且符合适用法规的应用程序或服务。

借助 AWS Secrets Manager,您可以监控机密信息,以检测可能危及您数据的安全漏洞或风险,并提前采取措施。这从本质上保护了您的业务和客户信息,对于保持合规至关重要。 您还可以通过记录所有活动来更好地为审核做好准备。

此外,您可以利用 AWS Configs 来评估您的机密信息,以及它们是否符合组织的内部策略、法规和行业准则。它允许您定义机密的合规性要求和内部控制,并识别不合规的机密信息。

更好的控制能力

您可以通过细粒度的策略和访问控制更好地控制您的机密信息、系统和其他数据。AWS IAM 将确保合适的人员对合适的资源拥有合适的访问权限。管理员可以创建或删除帐户、允许或限制用户的访问、添加或删除成员,以及根据需要和情况执行许多其他操作。

如何设置和使用 AWS Secrets Manager

以下是设置和使用 AWS Secrets Manager 的基本步骤:

  • 设置您的 AWS 账户,并输入所需的详细信息。
  • 登录您的 AWS 账户。
  • 转到 AWS Secrets Manager 控制台。
  • 找到“存储新秘密”选项,并单击它以创建并存储您的机密信息。

如何创建和存储新的机密信息

要在 Secrets Manager 中创建密钥,您需要获得 SecretsManagerReadWrite 托管策略的权限。 创建密钥后,Secret Manager 将生成 CloudTrail 日志条目。

请按照以下步骤将您的访问令牌、API 密钥和凭证存储在 AWS Secrets Manager 中:

来源:堆栈溢出

  1. 打开 AWS Secrets Manager 控制台。
  2. 单击“存储新秘密”。

您将进入“选择秘密类型”页面,然后执行以下步骤:

  • 对于要创建的机密类型,选择“其他类型的机密”。
  • 您将看到键/值对。在 JSON 中的键/值对中输入您的机密信息。或者,选择“纯文本”选项卡,并以您选择的格式输入您的机密信息。您可以存储最多 65536 字节的机密信息。
  • 选择 Secret Manager 用于加密密钥值的 AWS KMS 密钥。大多数情况下,您可以使用 aws/secretsmanager 来使用托管密钥,并且不会产生任何费用。
  • 要从不同的 AWS 账户访问密钥,或使用您的 KMS 密钥启用轮换或对此密钥实施策略,请选择“添加新密钥”,或从给定列表中选择客户管理的密钥。请注意,客户管理的密钥是付费的。
  • 选择“下一步”。

  1. 在“配置秘密”页面:
    • 输入机密信息的名称及其描述。该名称必须包含 1-512 个 Unicode 字符。
    • 您可以从“标签”部分向机密信息添加标签。您还可以通过选择“编辑权限”来包含资源策略。
    • 此外,还可以通过选择“复制密钥”将密钥复制到不同的 AWS 区域。这些步骤是可选的。
    • 选择“下一步”。
  2. 如果需要,您可以在“配置轮换”页面启用自动轮换。 此步骤也是可选的。 选择“下一步”。
  3. 从“查看”页面查看机密信息的详细信息,然后选择“存储”。 您已经完成了操作,秘密管理器将返回到机密信息列表。您应该在那里看到新添加的机密信息,如果没有看到,请刷新页面。

除了控制台之外,您还可以通过 AWS SDK 和 AWS CLI 添加密钥。

AWS Secrets Manager 与 AWS Parameter Store 的比较

AWS Parameter Store 是 AWS Systems Manager (SSM) 的应用程序管理工具,它允许用户创建键值参数,用于存储应用程序的配置、凭证、产品密钥和自定义环境变量。

而 AWS Secrets Manager 则是一项专门用于创建、存储、管理、检索和轮换凭证、密钥、API 令牌等敏感信息的服务。

尽管这两种服务都提供了类似的接口,可以轻松声明密钥和参数的键值对,但它们的应用场景和功能侧重点有所不同:

AWS Secrets Manager AWS Parameter Store
存储大小 最多可存储 10 KB 的机密信息。 标准参数最多可存储 4096 个字符或 4 KB,高级参数最多可存储 8 KB。
限制 每个区域/账户最多可存储 500,000 个机密信息。 每个区域/账户最多可存储 10,000 个标准参数。
成本 付费服务,费用为每月每个机密信息 0.40 美元。 标准参数免费,高级参数的费用为每 10,000 次 API 调用 0.05 美元。
轮换 为任何机密信息提供随时自动轮换功能,并且可以自定义轮换策略。 需要您自己编写函数来更新凭证。
跨账户访问 支持跨账户访问。 支持跨账户访问。
跨区域复制 支持跨区域复制。 不支持跨区域复制。
凭证类型 主要用于存储需要加密的机密数据,因此使用场景有限。 应用场景更广泛,可以存储多种类型的凭证,包括应用程序配置变量(如产品密钥、URL 等)。

结论

无论您是来自小型、中型还是大型企业,都可以使用 AWS Secrets Manager 来创建和存储您的密钥。它提供了增强的安全性、隐私性、访问控制和多种功能,以保护您的机密信息免遭未经授权的访问。

此外,您还可以探索如何执行 AWS 安全扫描和配置监控,以进一步提高数据安全性。