Featured image of post AWS Secrets Manager 推出托管外部密钥,简化第三方凭证管理

AWS Secrets Manager 推出托管外部密钥,简化第三方凭证管理

本文介绍了 AWS Secrets Manager 新推出的“托管外部密钥”功能,它专为管理第三方软件凭证(如 Salesforce、Snowflake)而设计。该功能通过预定义的格式和自动轮换,消除了自定义存储策略和复杂轮换函数的需要,帮助用户从单一服务集中管理所有密钥。

AWS Secrets Manager 推出托管外部密钥,简化第三方凭证管理

尽管 AWS Secrets Manager 在管理 Amazon Web Services (AWS) 密钥的生命周期方面表现出色,但随着组织扩大其云应用程序的使用规模,管理来自第三方软件提供商的凭证带来了独特的挑战。使用多个第三方服务的组织通常需要为每个提供商的凭证制定不同的安全方法,因为此前缺乏一种标准化的管理方式。当将这些第三方凭证存储在 Secrets Manager 时,组织通常会在密钥值中维护额外的元数据以便于服务连接。这种方法需要在元数据更改时更新整个密钥值,并实施特定于提供商的、手动且耗时的密钥轮换流程。寻求自动化密钥轮换的组织通常会针对每个第三方软件提供商开发自定义函数,这需要同时具备第三方和 AWS 系统的专业知识。

为了帮助客户简化第三方密钥管理,我们在 AWS Secrets Manager 中引入了一项名为“托管外部密钥”的新功能。在本文中,我们将探讨这项新功能如何在保持安全最佳实践的同时,简化和自动化第三方软件凭证的管理与轮换。

托管外部密钥简介

AWS Secrets Manager 通过托管轮换功能,已拥有帮助客户保护和管理 AWS 服务(如 Amazon RDS 或 Amazon DocumentDB)密钥的良好记录。在此成功基础上,Secrets Manager 现在引入了托管外部密钥这一新密钥类型,它将这种无缝体验扩展到了第三方软件应用程序(如 Salesforce),通过标准化格式和自动化轮换简化了密钥管理的挑战。

您可以使用此功能以预定义的格式存储由第三方软件提供商生成的密钥。这些格式是与可信集成合作伙伴合作开发的,定义了密钥结构和轮换所需的元数据,无需您定义自己的自定义存储策略。托管外部密钥还通过与软件提供商直接集成提供自动化轮换。由于无需维护轮换函数,您可以降低运营开销,同时受益于关键的安全控制,包括使用 AWS IAM 进行精细的权限管理、通过 Amazon CloudWatch 和 AWS CloudTrail 进行密钥访问监控,以及通过 Amazon GuardDuty 进行自动化的密钥特定威胁检测。此外,您可以在单一服务中针对 AWS 和第三方密钥实施集中且一致的密钥管理实践,无需在组织中运行多个密钥管理解决方案。托管外部密钥遵循标准的 Secrets Manager 定价,使用此新密钥类型无需额外付费。

前提条件

要创建托管外部密钥,您需要一个具有适当访问 Secrets Manager 权限的有效 AWS 账户。该账户必须拥有足够的权限来创建和管理密钥,包括能够访问 AWS 管理控制台或通过 AWS CLI 或 AWS SDK 进行编程访问。至少,您需要以下 IAM 操作权限:secretsmanager:DescribeSecretsecretsmanager:GetSecretValuesecretsmanager:UpdateSecretsecretsmanager:UpdateSecretVersionStage

您必须拥有计划让 AWS 管理其密钥的第三方软件提供商的有效凭证和必要的访问权限。

对于密钥加密,您必须决定是使用 AWS 托管的 AWS KMS 密钥还是客户托管的 KMS 密钥。对于客户托管的密钥,请确保配置了必要的密钥策略。AWS KMS 密钥策略应允许 Secrets Manager 使用该密钥进行加密和解密操作。

创建托管外部密钥

目前,托管外部密钥支持三个集成合作伙伴:Salesforce、Snowflake 和 BigID。Secrets Manager 将继续扩展其合作伙伴列表,未来会添加更多第三方软件提供商。有关最新列表,请参阅集成合作伙伴

要创建托管外部密钥,请按照以下步骤操作。

注意:本示例演示了检索 Salesforce 外部客户端应用凭证的步骤,但对于与 Secrets Manager 集成的其他第三方供应商凭证,可以遵循类似流程。

选择密钥类型并添加详细信息

  1. 进入 AWS 管理控制台中的 Secrets Manager 服务,选择 Store a new secret
  2. Secret type 下,选择 Managed external secret
  3. AWS Secrets Manager integrated third-party vendor credential 部分,从可用选项中选择您的提供商。在本演练中,我们选择 Salesforce External Client App Credential
  4. Salesforce External Client App Credential secret details 部分输入您的配置。Salesforce 外部客户端应用凭证包含几个关键组件:
    • Consumer key (client ID):作为 OAuth 2.0 的凭证标识符。您可以直接从 Salesforce 外部客户端应用管理器的 OAuth 设置中检索。
    • Consumer secret (client secret):作为 OAuth 2.0 身份验证的私有密码。您可以直接从 Salesforce 外部客户端应用管理器的 OAuth 设置中检索。
    • Base URI:您 Salesforce 组织的基准 URL(格式为 https://MyDomainName.my.salesforce.com),用于与 Salesforce API 交互。
    • App ID:标识您的 Salesforce 外部客户端应用 (ECA),可以通过调用 Salesforce OAuth 使用端点检索。
    • Consumer ID:标识您的 Salesforce ECA,可以通过调用 Salesforce OAuth credentials by App ID 端点检索。有关命令列表,请参阅 Salesforce 文档中的 Stage, Rotate, and Delete OAuth Credentials for an External Client App
  5. 从下拉菜单中选择 Encryption key。您可以使用 AWS 托管的 KMS 密钥或客户托管的 KMS 密钥。
  6. 选择 Next

配置密钥

  1. 在本部分,您需要为密钥配置提供信息。
  2. Secret name 中,输入一个描述性名称,并可选地输入一个详细的 Description 以帮助识别密钥的用途和用法。您还有其他可用的配置选项:可以附加 Tags 以便更好地组织资源,设置特定的 Resource permissions 以控制访问,以及选择 Replicate secret 以实现多区域弹性。
  3. 选择 Next

配置轮换和权限(可选)

  1. 在可选的 Configure rotation 步骤中,新的密钥配置引入了两个专注于元数据管理的关键部分,这些元数据与密钥值本身分开存储。
  2. Rotation metadata 下,指定您的 Salesforce 应用正在使用的 API 版本。要查找 API 版本,请参阅 Salesforce 文档中的 List Available REST API Versions。注意:所需的最低版本是 v65.0。
  3. 选择一个 Admin secret ARN,其中包含用于轮换 Salesforce 客户端密钥的管理 OAuth 凭证。
  4. Service permissions for secret rotation 部分,Secrets Manager 会自动创建一个具有轮换密钥值所需权限的角色。这些默认权限在界面上透明显示以供查看(选择 view permission details)。您可以根据需要取消选择默认权限,以实现更细粒度的密钥轮换管理控制。
  5. 选择 Next

审查

  1. 在最后一步,系统将显示您密钥配置的摘要。在 Review 页面上,您可以在继续密钥创建之前验证参数。
  2. 确认配置正确后,选择 Store 完成该过程,并使用指定的设置创建您的密钥。

成功创建后,您的密钥将出现在 Secrets 选项卡上。您可以查看、管理和监控密钥的各个方面,包括其配置、轮换状态和权限。创建后,请查看您的密钥配置,包括加密设置和跨账户访问的资源策略,并检查为不同 AWS SDK 提供的示例代码,以便将密钥检索集成到您的应用程序中。Secrets 选项卡提供了密钥的概览,允许集中管理密钥。选择您的密钥以查看 Secret details

您的托管外部密钥已在 Secrets Manager 中成功创建。您可以通过 Secrets Manager 控制台或以编程方式使用 AWS API 来访问和管理此密钥。

作为集成合作伙伴加入 Secrets Manager

借助新的托管外部密钥类型,第三方软件提供商可以与 Secrets Manager 集成,为他们的客户提供一种以编程方式安全管理其应用在 AWS 上生成的密钥的方法。此集成为他们的客户提供了一个集中式解决方案,用于管理 AWS 和第三方密钥的生命周期,包括从密钥创建那一刻起的自动轮换功能。Salesforce 等软件提供商已经在使用此功能。

“在 Salesforce,我们认为安全不应成为创新的障碍,而应是创新的推动力。我们与 AWS 在托管外部密钥方面的合作代表了默认安全实践,在为客户减轻运营负担的同时提供企业级保护。随着 AWS Secrets Manager 扩展到合作伙伴,以及自动化零接触轮换消除了人为风险,我们正在树立一个新的行业标准,使安全凭证变得无缝,无需专业知识或额外成本。” —— Salesforce 高级产品管理副总裁 Jay Hurst

作为集成合作伙伴加入 Secrets Manager 无需额外费用。要开始使用,合作伙伴必须遵循合作伙伴入门指南中列出的流程。如果您对成为集成合作伙伴有疑问,请通过电子邮件联系我们的团队:aws-secrets-mgr-partner-onboarding@amazon.com,主题为:[Partner Name] Onboarding request。

结论

在本文中,我们介绍了托管外部密钥,这是 Secrets Manager 中的一种新密钥类型,它通过预定义格式和自动化轮换解决了安全管理第三方密钥生命周期的挑战。通过消除定义自定义存储策略和开发复杂轮换函数的需要,您现在可以从单一服务一致地管理您的密钥——无论是来自 AWS 服务、自定义应用程序还是第三方提供商。托管外部密钥提供了与标准 Secrets Manager 密钥相同的安全功能,包括细粒度权限管理、可观测性和合规性控制,同时以零额外成本添加了与可信合作伙伴的内置集成。

要开始使用,请参阅技术文档。有关将现有合作伙伴密钥迁移到托管外部密钥的信息,请参见迁移现有密钥。该功能在提供 AWS Secrets Manager 的所有 AWS 区域均可使用。有关 Secrets Manager 可用区域的列表,请参阅 AWS 区域表。如果您对此帖子有反馈,请在下面的“评论”部分提交评论。如果您对此帖子有疑问,请在 Secrets Manager re:Post 上开始一个新主题或联系 AWS Support

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计