一个内部看AWS Secrets Manager vs Parameter Store
大约一年前(2018年4月),AWS推出了AWS秘密管理器。secret Manager是一种帮助您保护对应用程序、服务和IT资源的访问的服务。该服务允许您在数据库的整个生命周期中轻松地旋转、管理和检索数据库凭据、API密钥和其他机密。使用Secrets Manager,您可以保护、审计和管理用于访问AWS云、第三方服务和内部资源的秘密。
为什么这是一个伟大的发展,这给我们带来了什么?
好吧,让我们回到过去的日子,刚刚政治家发明了互联网;-)。也许我们是在用老式的ASP或其他语言开发web应用程序。如果我们有一个想要连接的数据库呢?没问题,让我们打开Netscape,搜索数据库的连接字符串。啊,它在那里,真的很酷。我们可以将这个连接字符串直接插入ASP代码,内联地硬编码数据库凭证,访问数据库,执行查询,返回一个记录集,然后开始工作!当然,总会有坏人潜伏在周围,等着好人做傻事。有些愚蠢的事情变成了将数据库凭证硬编码到代码中。黑客们可能在黑客训练营的第一周就学会了如何获取这些信息。因此,好人会从错误中吸取教训,在因大规模安全漏洞而被解雇后找到一份新工作,并学会从代码中内联删除数据库凭据。他们创建配置文件,并从代码中引用配置文件中的秘密。这当然是比硬编码凭证更好的解决方案。AWS出现了,其他选项也可用。
在AWS中,开发人员可以将他们的秘密存储在S3中,甚至可以在休息和传输时加密数据。我们都知道,在AWS中,事物移动和发展非常快。首先是AWS系统管理器参数存储。参数存储是一个安全的、受管理的键/值存储,非常适合存储参数、秘密和配置信息。2018年4月,AWS宣布推出了提供类似功能的secret Manager。它们有什么不同之处,又有什么相似之处呢?
AWS Secrets Manager 和 Parameter Store 的相似性
有很多相似之处,这就引出了一个问题,关键是什么?对于这一点,最好还是保持谨慎,因为AWS将继续发展“秘密管理器”是一个不错的选择。但现在,我们来谈谈它们的相似之处。首先是加密。机密管理器和参数存储都可以使用AWS KMS加密值。KMS是一种托管服务,允许您轻松加密数据。AWS KMS提供了一种高可用性的密钥存储、管理和审计解决方案,您可以在自己的应用程序中加密数据,并跨AWS服务控制存储数据的加密。在KMS和IAM的帮助下,您可以使用策略来控制IAM用户和角色对其具有解密权限的权限。因此,能够轻松地加密您的秘密是参数存储和秘密管理器的一个重要功能。只有我一个人的时候,你才能控制你的秘密。加密只是为你的秘密增加了一层安全保护吗?当然可以,但是如果加密您的秘密是一个遵从性要求呢?它可以直接使用参数存储或秘密管理器。所以,如果你想加密机密,你该如何选择?在这种情况下,参数存储提供了更多的通用性。参数存储提供了存储未加密数据或使用KMS密钥加密数据的选项。使用秘密管理器,秘密被加密存储,没有存储未加密数据的选项。这是参数存储的一个用例。
另一个重要的相似之处是托管的键/值存储服务。这两个服务都允许您在名称或键下存储值。它们还可以存储最多4096个字符的值,键可以有前缀。我将提到的最后一个相似之处是,这两个服务都可以与云形成交互。让我们记住,云形成是作为代码的基础结构!因此,在CloudFormation模板中存储秘密是一种不好的做法,我们希望避免使用参数存储或秘密管理器。值在参数存储或机密管理器中的CloudFormation模板中是可引用的,因此您不必硬编码您的机密!因此,在您的CloudFormation模板中没有理由硬编码数据库密码之类的东西。您的模板是代码,应该像您的应用程序代码一样小心处理,注意安全性。您可以将您的用户名和密码存储在一个秘密中,您的CloudFormation模板可以引用该秘密,因此您只有一个指向模板中的值的指针。
AWS Secrets Manager 和 Parameter Store 之间的区别
好的,现在我们需要讨论参数存储和秘密管理器之间的区别。让我们直接跳到底线,成本。参数存储没有额外的费用。您可以存储的参数数量是有限制的,目前这个限制是10,000。AWS的“秘密管理器”确实有额外的成本,目前每存储一个秘密的成本是40美分。此外,还有一个额外的美元。05每10,000个API调用。我们在这里讨论的是美分,它听起来并不多,但正如您所期望的,这些美分可以为一个大型组织积累起来,如果您正在存储大量的秘密,那么应该考虑使用它。
AWS秘密管理器的制胜之处就在于自动轮换秘密的能力。通过AWS DevOps Pro认证课程了解更多关于这种情况的信息。开箱即用,AWS秘密管理器提供了与RDS的全面密钥旋转集成。这对你意味着什么?秘密管理器可以旋转密钥,并在RDS中为您实际应用新的密钥/密码。我们都知道应该旋转键,但我们真的这么做了吗?机密管理器使这一过程自动化变得非常简单。除了RDS之外,其他服务的密钥轮换又如何呢?我们可以使用工具箱中另一个有价值的工具:Lambda!您可以使用AWS Lambda来编写一个函数来旋转您的键,这是直接集成在Secrets Manager控制台中的。
另一个巨大的不同之处在于,同样的,秘密管理者的胜利在于能够产生随机的秘密。您可以在CloudFormation中随机生成密码,并将密码存储在Secrets Manager中。这不仅仅是云形成的功能。SDK可用于在应用程序代码中实现这一点。最后一个不同之处,也是secret Manager的另一个胜利之处,是秘密可以在多个账户之间共享。
总之,参数存储还是有位置的。同样,您可以存储秘密并对其进行加密,但您也可以存储未加密的数据,而且都是免费的。secret Manager将事情向前推进了几个步骤,看到AWS继续在此功能上构建也就不足为奇了。
本文:https://pub.intelligentx.net/node/807
讨论:请加入知识星球或者小红圈【首席架构师圈】
- 登录 发表评论
- 108 次浏览
最新内容
- 1 week ago
- 1 week ago
- 1 week ago
- 1 week ago
- 1 week ago
- 1 week 6 days ago
- 2 weeks ago
- 2 weeks 2 days ago
- 2 weeks 2 days ago
- 2 weeks 2 days ago