跳转到主要内容
Chinese, Simplified

安全性是任何基础设施的一个重要方面,特别是对于云中的基础设施。然而,在快速迭代的应用程序部署周期中,有关参数和秘密的最佳安全实践常常被忽略。如果AWS能够管理服务来帮助存储参数和秘密,同时保持安全最佳实践不变,那不是很好吗?你很幸运!

其中一个服务是SSM参数存储,它是一个安全的、受管理的密钥/值存储,非常适合存储参数、秘密和配置信息。然而,在2018年4月,AWS也推出了另一项名为AWS秘密管理器的服务,提供类似的功能。考虑到这两种服务都做同样的事情,选择哪一种还不清楚。考虑到这一点,让我们看看这两个服务的异同,以更好地了解哪种服务最适合您的体系结构需求。

相似之处

托管的键/值存储服务

如前所述,这两个服务之间有许多相似之处。这两个服务都提供了将值存储在名称或键下的解决方案。这两个服务都可以存储最多4096个字符的值,并允许键具有前缀。与S3类似,SSM参数存储和AWS秘密管理器都允许您在参数名称前面加上前缀。例如,可以将参数或秘密放在以下前缀中:模式应用程序/环境/参数名或满足应用程序需要的任何其他前缀组合中。这很有用,因为应用程序的部署可以根据部署到的环境引用不同的参数/秘密。

类似的加密选项

这两个服务都可以利用AWS KMS来加密值。通过使用KMS,可以将IAM策略配置为控制IAM用户和角色对值解密的权限。虽然可以通过IAM限制对值的访问,但加密提供了额外的安全层,有时需要遵从性。

SSM参数提供了以明文形式存储值或使用KMS密钥加密值的选项。AWS秘密管理器只存储加密的数据(否则,如果值以明文形式存储,就不是秘密;它将是一个不安全的参数)。本文更详细地描述了AWS秘密管理器是如何加密其秘密的。类似地,可以在这里找到SSM参数存储加密文档。

两者都可用于 CloudFormation

关于SSM参数存储和AWS秘密管理器如何与云形成交互的文章可能是另一篇文章。但是,总结一下,这两个服务的值在CloudFormation模板中都是可引用的,因此您不需要硬编码秘密或其他动态值。例如,通过CloudFormation创建RDS实例时,在CloudFormation脚本中硬编码主密码是不明智的做法。相反,可以将主服务器的用户名和密码存储在一个秘密中,CloudFormation可以在提供RDS资源时引用这个秘密。通过这种方式,CloudFormation脚本只有一个指向密码位置的指针,而不是以明文形式包含密码。

类似地,可以以相同的方式引用其他参数(不仅仅是密码)来提供更动态的云形成脚本。本文提供了更多关于如何在AWS云形成中使用参数或秘密的信息。

差异

密码生成

虽然这些服务很相似,但它们之间也有许多不同之处。第一个区别是AWS secret Manager能够通过AWS CLI或SDK生成随机的秘密。例如,当通过CloudFormation模板创建一个新的RDS实例时,您还可以创建一个随机生成的密码并在RDS配置中引用它,因为它需要一个主用户名和密码。云结构可以将用户名和密码存储在AWS秘密管理器秘密中,该秘密只能由数据库管理员访问。

密码生成不仅在CloudFormation模板中很有用,而且应用程序(通过SDK)也可以利用这个特性。生成随机字符串的功能仅对AWS机密管理器可用,而在SSM参数存储中不可用。

秘密旋转

AWS秘密管理器的另一个独特功能是能够旋转秘密值。开箱即用,AWS秘密管理器提供了与RDS的全面密钥旋转集成。这意味着AWS密钥管理器可以旋转密钥并实际为您在RDS中应用新的密钥/密码。对于RDS以外的服务,AWS允许您使用AWS Lambda函数编写自定义键旋转逻辑。更多关于AWS秘密管理器密钥旋转的信息可以在这里找到。

成本

使用SSM参数存储不需要额外的费用。但是,每个帐户有10,000个参数的限制。另一方面,AWS的秘密管理器的确会产生额外的成本。在撰写本文时,每个秘密存储的成本为0.40美元,10,000个API调用的成本为0.05美元。

交叉帐户访问

AWS秘密管理器与SSM参数存储有本质区别的另一个方面是,秘密可以跨帐户共享。例如,一个开发或生产AWS帐户中的IAM用户和应用程序资源将能够访问存储在不同AWS帐户(例如,安全AWS帐户)中的秘密。对于客户需要与合作伙伴共享特定秘密的用例,这种功能也很有用。本文演示了如何设置一个交叉帐户AWS秘密管理器秘密。

用例

虽然理论上这两个服务都可以满足键/值存储需求,但我认为在用例中,何时使用一个服务而不是另一个服务是有区别的。AWS理解在参数存储中管理秘密是可能的,但它在功能上缺乏。因此,创建AWS秘密管理器来存储秘密也就不足为奇了。AWS秘密管理器提供了一些额外的功能,如密钥旋转、跨账户访问和与AWS服务的更紧密集成,为存储秘密提供了一个很好的解决方案,而不必与其他第三方解决方案集成。

AWS秘密管理器不替换SSM参数存储功能。通过存储环境配置数据或其他必要的参数,Parameter Store继续提供了一些功能,可以轻松地优化和简化应用程序部署。它是免费的!

 

最终的想法

正如前面提到的,这两个服务对于AWS生态系统非常有价值,可以在AWS上简化解决方案和有效地部署应用程序。如果您对这些托管的键/值存储服务(或任何其他AWS服务)有任何疑问,请告诉我们!安排一次咨询。我们很乐意与您讨论1Strategy如何帮助您的业务进入AWS云。

 

原文:https://www.1strategy.com/blog/2019/02/28/aws-parameter-store-vs-aws-secrets-manager/

本文:https://pub.intelligentx.net/node/806

讨论:请加入知识星球或者小红圈【首席架构师圈】

关注:公众号【首席架构师圈】

 

 

Tags
 
Article
知识星球
 
微信公众号
 
视频号