AWS Secrets Manager 推出用于第三方凭证的托管外部密钥
尽管 AWS Secrets Manager 擅长管理 Amazon Web Services (AWS) 密钥的生命周期,但随着组织扩展其云应用程序的使用,管理来自第三方软件提供商的凭证带来了独特的挑战。使用多个第三方服务的组织经常为每个提供商的凭证制定不同的安全方法,因为之前没有标准化的管理方式。当将这些第三方凭证存储在 Secrets Manager 时,组织通常会在密钥值中维护额外的元数据以方便服务连接。这种方法在元数据更改时需要更新整个密钥值,并且需要实施特定于提供商的、手动且耗时的密钥轮换流程。希望自动化密钥轮换的组织通常会针对每个第三方软件提供商开发定制的函数,这需要同时具备第三方和 AWS 系统的专业知识。
为了帮助客户简化第三方密钥管理,我们在 AWS Secrets Manager 中引入了一项名为“托管外部密钥”的新功能。在本文中,我们将探讨这项新功能如何简化第三方软件凭证的管理和轮换,同时保持安全最佳实践。
引入托管外部密钥
AWS Secrets Manager 在通过托管轮换功能帮助客户保护和管理 AWS 服务(如 Amazon Relational Database Service (Amazon RDS) 或 Amazon DocumentDB)的密钥方面有着良好的记录。基于这一成功,Secrets Manager 现在引入了托管外部密钥,这是一种新的密钥类型,它将相同的无缝体验扩展到 Salesforce 等第三方软件应用程序,通过标准化格式和自动化轮换简化了密钥管理挑战。
您可以使用此功能以预定义的格式存储由第三方软件提供商提供的密钥。这些格式是与可信集成合作伙伴合作开发的,旨在定义密钥结构和轮换所需的元数据,从而无需您定义自己的自定义存储策略。托管外部密钥还通过与软件提供商直接集成提供自动化轮换。由于无需维护轮换函数,您可以减少运营开销,同时受益于基本的安全控制,包括使用 AWS Identity and Access Management (IAM) 的细粒度权限管理、通过 Amazon CloudWatch 和 AWS CloudTrail 进行的密钥访问监控,以及通过 Amazon GuardDuty 进行的自动化密钥特定威胁检测。此外,您可以通过单一服务为 AWS 和第三方密钥实施集中且一致的密钥管理实践,从而无需在组织内运行多个密钥管理解决方案。托管外部密钥遵循标准的 Secrets Manager 定价,使用此新密钥类型无需额外费用。
先决条件
要创建托管外部密钥,您需要一个具有适当访问 Secrets Manager 权限的有效 AWS 账户。该账户必须拥有创建和管理密钥的足够权限,包括访问 AWS 管理控制台或通过 AWS Command Line Interface (AWS CLI) 或 AWS SDK 进行编程访问的能力。至少,您需要对以下操作拥有 IAM 权限:secretsmanager:DescribeSecret、secretsmanager:GetSecretValue、secretsmanager:UpdateSecret 和 secretsmanager:UpdateSecretVersionStage。
您必须拥有计划由 AWS 管理密钥的第三方软件提供商的有效凭证和必要的访问权限。
对于密钥加密,您必须决定是使用 AWS 托管的 AWS Key Management Service (AWS KMS) 密钥还是客户托管的 KMS 密钥。对于客户托管密钥,请确保配置了必要的密钥策略。AWS KMS 密钥策略应允许 Secrets Manager 使用该密钥进行加密和解密操作。
创建托管外部密钥
目前,托管外部密钥支持三个集成合作伙伴:Salesforce、Snowflake 和 BigID。Secrets Manager 将继续扩展其合作伙伴列表,未来将添加更多第三方软件提供商。有关最新列表,请参阅集成合作伙伴。
要创建托管外部密钥,请按照以下部分中的步骤操作。
注意:此示例演示了检索 Salesforce 外部客户端应用凭证的步骤,但对于与 Secrets Manager 集成的其他第三方供应商凭证,可以遵循类似的过程。
选择密钥类型并添加详细信息:
- 转到 AWS 管理控制台中的 Secrets Manager 服务,然后选择 存储新密钥。
- 在 密钥类型 下,选择 托管外部密钥。
- 在 AWS Secrets Manager 集成的第三方供应商凭证 部分,从可用选项中选择您的提供商。对于本演练,我们选择 Salesforce 外部客户端应用凭证。
- 在 Salesforce 外部客户端应用凭证密钥详细信息 部分输入您的配置。Salesforce 外部客户端应用凭证由几个关键部分组成:
- 消费者密钥 (client ID),作为 OAuth 2.0 的凭证标识符。您可以直接从 Salesforce 外部客户端应用管理器的 OAuth 设置中检索消费者密钥。
- 消费者密钥 (client secret),作为 OAuth 2.0 身份验证的私有密码。您可以直接从 Salesforce 外部客户端应用管理器的 OAuth 设置中检索消费者密钥。
- 基础 URI,这是您的 Salesforce 组织的基础 URL(格式为
https://MyDomainName.my.salesforce.com),用于与 Salesforce API 交互。 - 应用 ID,用于标识您的 Salesforce 外部客户端应用 (ECA),可以通过调用 Salesforce OAuth 使用端点来检索。
- 消费者 ID,用于标识您的 Salesforce ECA,可以通过调用 Salesforce OAuth 凭据按应用 ID 端点来检索。有关命令列表,请参阅 Salesforce 文档中的 暂存、轮换和删除外部客户端应用的 OAuth 凭据。
- 从下拉菜单中选择 加密密钥。您可以使用 AWS 托管的 KMS 密钥或客户托管的 KMS 密钥。
- 选择 下一步。
配置密钥:
- 在本部分,您需要为密钥的配置提供信息。
- 在 密钥名称 中,输入一个描述性名称,并可选择性地输入详细的 描述,以帮助识别密钥的用途和用法。您还可以使用其他可用的配置选项:可以附加 标签 以便更好地组织资源,设置特定的 资源权限 以控制访问,并选择 复制密钥 以实现多区域弹性。
- 选择 下一步。
配置轮换和权限(可选):
- 在可选的 配置轮换 步骤中,新的密钥配置引入了两个专注于元数据管理的关键部分,这些元数据与密钥值本身分开存储。
- 在 轮换元数据 下,指定您的 Salesforce 应用正在使用的 API 版本。要查找 API 版本,请参阅 Salesforce 文档中的 列出可用的 REST API 版本。注意:所需的最低版本是 v65.0。
- 选择一个 管理员密钥 ARN,其中包含用于轮换 Salesforce 客户端密钥的管理 OAuth 凭据。
- 在 用于密钥轮换的服务权限 部分,Secrets Manager 会自动创建一个具有轮换密钥值所需权限的角色。当您选择 查看权限详细信息 时,这些默认权限会在界面中透明地显示以供审阅。您可以取消选择默认权限,以便对密钥轮换管理进行更精细的控制。
- 选择 下一步。
审阅:
- 在最后一步,系统将显示您的密钥配置摘要。在 审阅 页面上,您可以在继续创建密钥之前验证参数。
- 确认配置正确后,选择 存储 以完成流程并使用指定的设置创建您的密钥。
成功创建后,您的密钥将显示在 密钥 选项卡上。您可以查看、管理和监控密钥的各个方面,包括其配置、轮换状态和权限。创建后,请查看您的密钥配置,包括加密设置和跨账户访问的资源策略,并检查为不同 AWS SDK 提供的示例代码,以便将密钥检索集成到您的应用程序中。密钥 选项卡提供了密钥的概览,允许对密钥进行集中管理。选择您的密钥以查看 密钥详细信息。
您的托管外部密钥已在 Secrets Manager 中成功创建。您可以通过 Secrets Manager 控制台或使用 AWS API 以编程方式访问和管理此密钥。
作为集成合作伙伴加入 Secrets Manager
借助新的托管外部密钥类型,第三方软件提供商可以与 Secrets Manager 集成,并为其客户提供一种以编程方式安全管理其在 AWS 上提供的密钥的方法。这种集成为他们的客户提供了一个集中式解决方案,用于管理 AWS 和第三方密钥的生命周期,包括从密钥创建那一刻起的自动轮换功能。Salesforce 等软件提供商已经在使用此功能。
“在 Salesforce,我们相信安全不应成为创新的障碍,而应是推动力。我们与 AWS 在托管外部密钥方面的合作代表了‘安全默认’在行动,在为客户减轻运营负担的同时提供企业级保护。随着 AWS Secrets Manager 现在扩展到合作伙伴,以及自动化零接触轮换消除了人为风险,我们正在设定一个新的行业标准,即安全的凭证管理变得无缝,无需专业知识或额外成本。” — Jay Hurst,Salesforce 产品管理高级副总裁
作为集成合作伙伴加入 Secrets Manager 无需额外费用。要开始使用,合作伙伴必须遵循合作伙伴加入指南中列出的流程。如果您对成为集成合伙人有疑问,请通过 aws-secrets-mgr-partner-onboarding@amazon.com 联系我们的团队,主题为:[合作伙伴名称] 加入请求。
结论
在本文中,我们介绍了托管外部密钥,这是 Secrets Manager 中的一种新密钥类型,它通过预定义格式和自动化轮换解决了安全管理第三方密钥生命周期的挑战。通过消除定义自定义存储策略和开发复杂轮换函数的需要,您现在可以通过单一服务一致地管理您的密钥——无论是来自 AWS 服务、自定义应用程序还是第三方提供商。托管外部密钥提供与标准 Secrets Manager 密钥相同的安全功能,包括细粒度权限管理、可观察性和合规性控制,同时添加了与可信合作伙伴的内置集成,且无需额外费用。
要开始使用,请参阅技术文档。有关将现有合作伙伴密钥迁移到托管外部密钥的信息,请参阅迁移现有密钥。此功能在 AWS Secrets Manager 可用的所有 AWS 区域均可用。有关 Secrets Manager 可用的区域列表,请参阅 AWS 区域表。如果您对本文有任何反馈,请在下面的 评论 部分提交评论。如果您对本文有任何疑问,请在 Secrets Manager re:Post 上开始一个新主题或联系 AWS Support。