Git 管理密钥

Git 管理密钥,git,amazon-web-services,secret-key,Git,Amazon Web Services,Secret Key,我有一个应用程序正在Github上的私有回购中存储AWS密钥 建议这样做是因为如果我们的一台计算机发生故障,我们将无法访问这些密钥 我们不需要存储在Github中,只需将计算机传递给他人共享密钥,或者通过私人公司发送 这些似乎都是管理密钥的糟糕方法 是否有一个更好的存储库/保险库或方法用于存储密钥并与团队成员共享 您可以使用它在加密、受密码保护的保险库中共享机密 作为补充说明,如果计算机发生故障,将AWS用户锁定在其帐户之外的风险非常低。在任何情况下,帐户所有者都可以为帐户中的任何IAM用户重新

我有一个应用程序正在Github上的私有回购中存储AWS密钥

建议这样做是因为如果我们的一台计算机发生故障,我们将无法访问这些密钥

我们不需要存储在Github中,只需将计算机传递给他人共享密钥,或者通过私人公司发送

这些似乎都是管理密钥的糟糕方法

是否有一个更好的存储库/保险库或方法用于存储密钥并与团队成员共享

您可以使用它在加密、受密码保护的保险库中共享机密


作为补充说明,如果计算机发生故障,将AWS用户锁定在其帐户之外的风险非常低。在任何情况下,帐户所有者都可以为帐户中的任何IAM用户重新生成一组新的AWS密钥。只要帐户所有者可以连接到AWS帐户,您就安全了

密钥和许多秘密一样,不应尽可能共享

对于AWS用户:

每个用户员工、团队伙伴等都应该为他们创建自己的IAM用户。 每个IAM用户都将生成自己的一组访问密钥/机密,并仅对该用户可用。 该系统有许多好处:

由于密钥不共享,因此它们很难意外泄漏, 由于密钥不共享,如果密钥被泄露,则只影响一个用户;没有其他队友受到影响。 每个IAM用户可以根据自己的要求获得不同的权限。 使用CloudTrail,您可以审核每个用户在AWS帐户中的行为。
并避免在源代码管理git或任何其他文件中保存类似的内容。

避免将凭据与代码一起存储,它们非常容易受到攻击,后果可能是不可逆转的。最好使用IAM角色授予访问权限,并仅在开发时使用密钥,最好每个开发人员使用一个不同的密钥,以便根据需要进行轮换


查看白皮书了解更多详细信息。

密钥管理的首要规则是尽量减少密钥存储的位置数量。因此,对于AWS密钥之类的东西,开发人员应该在他们的机器上存储自己的密钥。对于应用服务器所需的密钥,这些密钥应仅存储在应用服务器上

建议这样做是因为如果我们的一台计算机发生故障,我们将无法访问这些密钥

解决此问题的最佳方法就是旋转关键点。理想情况下,如果需要,您应该始终处于可以快速/轻松生成新密钥的位置,例如在发生安全事件的情况下。如果你丢失了某个主密钥,那么将其存储在一个安全的存储应用程序(如1Password)中,在该应用程序中,你的vault将使用附加密码进行加密

我们不需要存储在Github中,只需将计算机传递给他人共享密钥,或者通过私人公司发送

这些似乎都是管理密钥的糟糕方法

作为一般规则,切勿将AWS密钥或任何其他敏感密钥或密码存储在Github或公司存储库中。您在slack中共享的任何内容都将永远保存在日志中,因此,如果您的公司slack受到威胁,或者slack受到威胁,这种情况已经发生了好几次,那么您日志中的任何内容都会被潜在的攻击者利用

是否有一个更好的存储库/保险库或方法用于存储密钥并与团队成员共享


要长期存储密钥,请使用类似于1个密码的内容。对于共享密钥的短期存储,请使用免责声明之类的内容,我是ShareSecret的创始人。

您可以使用S3存储桶,它只存储密钥,并且只允许特定用户通过IAM组和用户访问此存储桶。这在项目开始时似乎是合理的

如果您需要更为核心的产品,我知道一些大型科技公司会使用:


Simon我如何与使用1密码的人共享密钥?