我需要存储用户提供给我的非常敏感的秘密(用于身份验证到第三方API的username+password+certificate)。
我首先考虑的是AWS秘密管理器,它非常昂贵,IMHO主要用于基础设施机密(数据库密码、API密钥、.)而不是客户提供的秘密。现在,我决定使用AWS KMS (并使用信封加密将加密的秘密存储在数据库(AWS RDS)中)和Hashicorp Vault。
根据我所读到的,我得出的结论是,Vault KV主要用于基础设施机密,Vault Transit可能在某种程度上相当于AWS KMS (更好地用于客户提供的秘密)。
由于我正在构建一个非常小的应用程序,如果我决定使用Vault KV,那么我根本不需要数据库。但我不确定Vault KV是否合适。
对于这个用例,我应该注意到Vault KV是否存在一些限制或可能的问题?
谢谢
发布于 2020-12-22 13:07:29
关于KMS
AWS KMS实际上只用于管理主密钥。参数存储将使用遮罩下的KMS来管理其加密密钥。如果您在AWS中部署Vault,您可能也会使用KMS来解封并作为主密钥。您可能不想直接使用KMS (因为其他解决方案为您提供了每个秘密/路径策略、秘密版本控制、审计日志、所有您可能希望/需要的特性,而KMS不会直接提供这些特性)
金库KV机密引擎与Vault中转机密引擎
金库密钥-值机密引擎允许您存储秘密,而Vault管理加密、审计日志、访问(如果使用KV v2的话还有版本)。
传输机密引擎可以被看作是“加密为服务”:
您应该使用Vault还是AWS SSM参数存储?
就像很多事情一样:视情况而定。这取决于你的标准。我确实喜欢这两种情况,但是对于不同的用例,所以让我列出我在这两者之间看到的主要区别,希望它能给您提供足够的上下文来做出选择:
我的经验法则是:如果AWS足够了,而且除了简单的秘密存储之外,您没有任何其他需要,那么SSM参数存储听起来是个不错的主意。
如果您有其他加密需求,或者其他一些身份验证/策略需求,这将使构建在IAM< Vault之上的工作更具挑战性。
如果您有很多秘密要存储/加密/解密,Vault的传输秘密引擎可以对数据进行加密/解密,而用于存储这些加密blob的常规DB将非常完美地工作。
发布于 2021-01-27 16:32:33
好奇您为什么要避免AWS SSM。如果您有大量的数据需要加密和存储,但只是好奇,这可能有点限制。
看起来,如果您想要避免秘密管理器的成本,那么加密的RDS数据库不会给您带来太多好处。
AWS秘密经理似乎相当合理,除非你有一个非常大的音量。
https://stackoverflow.com/questions/61286584
复制相似问题