使用多普勒的秘密管理介绍
像API密钥、数据库配置、SSH凭证以及许多类似的项目都有管理和安全的需要。这种数据库配置,如端口号、用户密码和API密钥(用于验证API调用和访问API的唯一代码值)往往容易受到安全攻击。
如果不了解正确的工具或管理方法,软件开发者往往不能保证秘密的安全,导致秘密的生命周期不长。
在本教程中,我们将了解秘密并管理秘密密钥。稍后,我们将了解作为开发者可以用来管理秘密的最佳工具/平台--多普勒。
什么是秘密?
当您开发应用程序、微服务或容器化应用程序时,您经常与第三方API、用户凭证、端口号和许多其他秘密密钥等东西进行交互。这些特权凭证被称为"秘密"。
这些是私人信息,可以解锁工具、应用服务器、基础设施即代码(IaC)环境、甚至CI/CD管道中的受保护资源或敏感信息。秘密需要被特别处理,以维护应用程序的安全。
为什么要管理秘密?
秘密管理方法旨在减轻秘密密钥向外部系统的传播。
主要是,秘密管理使开发人员能够负责。
- 秘密是如何存储和轮换的?
- 谁可以接触到秘密?
- 它们的共享频率如何?
- 它们被撤销的频率如何?
有了适当的秘密管理,组织可以避免恶意活动并获得对其系统的控制。
管理秘密的非常规方法
使用任何工具构建可扩展和安全的应用程序都是一项困难的任务。之所以如此,是因为需要细粒度的控制来检查对敏感信息的未授权访问,并避免数据泄漏。
然而,有一些传统的秘密管理方法,开发人员在编写他们的应用程序时被引诱到。这些方法可能不适合你的产品。试图使用它们只会使你的功能或应用程序容易受到攻击。
一些非常规的方法包括。
环境变量
一些开发者发现在源代码或版本控制之外引用存储在环境变量中的秘密更容易。
存储在环境变量中的秘密密钥很容易通过子进程意外暴露出来,这正是我们想要避免的。
因此,建议用外部秘密管理器(如Doppler和AWS Secrets Manager)取代环境变量。
硬编码的秘密
硬编码涉及将用户ID、密码和其他凭证嵌入项目中。公共项目中的硬编码秘密可以很容易地被查看,从而暴露给攻击者。
攻击性的漏洞可以抓取访问密钥,改变权利和权限,并进行其他恶意行为,如向应用程序注入勒索软件和病毒。
在公共场所存储秘密 - Github
注册表和Github等公共存储库是不应该发现秘密的地方。这些存储库在开发团队、测试团队之间共享,或者可能与整个世界共享(如开源软件的情况),使项目变得脆弱。
项目的最佳秘密管理选项应该利用无缝的秘密生命周期、基于角色的访问控制,以及对任何处于静止状态或传输中的秘密进行加密。
你现在可能想知道是否有任何最佳和更简单的方法来管理秘密。是的!有一个多普勒,一个在任何开发水平上为你的秘密提供的秘密管理器。
多普勒
本节将展示一个关于使用Doppler存储秘密的简单指南。多普勒有一个统一的仪表盘平台,不需要.env 文件、硬编码或使用公共存储库。
通过多普勒的统一仪表盘,可以集中管理团队、项目和机密。
为什么是多普勒?
多普勒是一个容错的、可管理的、多基础设施的服务,为开发者提供无限的项目环境,与传统的秘密管理方案不同,它是在本地存储秘密。
多普勒与流行的云供应商整合得很好。它还提供基于仪表盘的项目与其他秘密管理器的集成,如AWS Secrets Manager、Parameter Store和Hashicorp Vault。
多普勒CLI
多普勒CLI是一个轻量级的可安装文件,在本地开发和生产之间提供了一致的体验。
无论在本地还是在生产环境中工作,您都可以使用doppler run 命令启动您的应用程序的秘密。这将执行你的应用程序,并将你的最新秘密注入你的工作环境中。
要安装Doppler CLI,需要有软件包管理器,如scoop。为了到达多普勒的scoop仓库进行安装,在命令提示符下运行下面的脚本。
scoop bucket add doppler https://github.com/DopplerHQ/scoop-doppler.git

在成功添加多普勒桶后,你将通过下面的脚本安装多普勒CLI。
scoop install doppler

安装完成后,您可以在命令提示符中运行doppler login,输入您的多普勒账户详细信息,启动认证过程。
多普勒仪表板
多普勒仪表板是一个基于浏览器的交互式平台,用户可以将秘密组织到项目和环境中。多普勒仪表板可以访问项目中的秘密,使本地开发和多普勒保持同步。
使用多普勒工作
在Doppler中,您可以根据需要创建任意多的项目--考虑到正在开发的应用程序。每个项目中的秘密可以存在于任何环境中--开发、测试、加载或生产。

现在,是时候创建一个将处理秘密的项目了。
在多普勒仪表板上导航到+ 按钮,点击启动一个项目。你可以为你的项目命名,以反映你将在工作区存储的秘密。

在多普勒中创建的任何项目都带有开发、测试和生产环境,以帮助定义秘密等级。

然后你可以单独存储秘密,或者导入一些带有秘密的JSON文件--创建一个批量秘密选项。
要做到这一点,点击Add Secret 按钮,将秘密的键值注入到你的项目中进行保存。


你可以通过多普勒CLI将本地项目环境与你的多普勒秘密连接起来。在您的终端或代码编辑器中导航到现有的本地项目文件夹,并运行下面的片段。
该命令将在本地开发环境中设置您当前的Doppler项目。
doppler setup

在将您的本地项目与多普勒项目连接起来后,您可以访问、过滤和下载秘密,作为纯值或JSON文件。
运行命令doppler secrets get DOPPLER_PROJECT DOPPLER_CONFIG --plain ,选择您当前的项目及其环境,如下图所示。

从这里,你可以看到你的项目和它的环境,不管是开发,prod,还是staging。接下来,我们将访问存储在Doppler项目中的秘密。
为了完成这个任务,在终端运行以下命令。
doppler secrets --only-names
doppler secrets
所有存储的秘密将如下面的截图所示。
这些秘密将被注入到你的本地工作环境,并完成访问。
总结
在这篇文章中,我们已经了解了什么是秘密,为什么要管理它们,以及如何有效地管理它们以提高生产力。我们还研究了多普勒--一个通用的秘密管理器,它已经发展成为首选的秘密存储,处理秘密的蔓延、秘密的旋转和可追溯性。
现在是你作为开发者将你的项目秘密运送到一个可管理的仪表板的最佳时机。