我在Google App Engine中有一个使用OAuth2的应用程序。
我假设OAuth ClientID是公开的公开数据,因为它在客户端发送的用于身份验证的URL中使用。
我需要一种访问客户端机密的方法,因为我不想只是将其硬编码到我的代码中。
是否可以使用我的App Engine服务帐户访问凭据数据?
如果不是,以一种安全的方式存储客户端机密的好方法是什么?
答案 0 :(得分:0)
Google最近发布了一项用于存储机密https://cloud.google.com/kms/的新服务
您可以使用此服务安全地管理任何机密(包括访问密钥和机密轮换,无效...)。考虑以下需要管理秘密的策略(来自https://cloud.google.com/kms/docs/secret-management):
选择一个秘密管理解决方案
选择最佳的秘密管理解决方案取决于您的独特性 现有环境,机密和安全需求。一些常见 方法包括:
以Cloud KMS中的密钥加密的代码中存储机密。这个 解决方案通常是通过在 应用层。使用此解决方案有助于提供额外的 通过限制范围来防止内部威胁 获取秘密。禁止所有人访问机密 有权访问代码的开发商 代码和相应的键。即使在所有情况下 开发人员可以访问代码和密钥,从而实现 该选件具有好处,因为它提供了审核对 机密,这在代码存储库中可能是不可能的。
将机密存储在Cloud Storage的存储桶中,在 休息。该解决方案与以前的解决方案具有相似的优势, 它将对机密的访问权限限制在较小的一组开发人员中,并且 提供了审核该访问权限的能力。另外,通过收藏 秘密存放在单独的位置,您可以更轻松地旋转秘密 必要时;例如,如果检测到安全漏洞。也, 该解决方案允许系统分离;如果代码存储库 使用秘密被泄露,秘密本身可能仍然是 受保护的。
使用第三方秘密管理解决方案。一个专门的秘密 管理工具基于此列表的前两个选项。在 此外,这些工具不仅可以让您更多地旋转秘密 很容易,但是在某些情况下,可以对您的 代表或简化常规轮换。
警告:另一个常见的选择是将您的机密直接存储在 码。不建议使用此选项。虽然这是最简单的 解决方案的实施,它可能允许任何人访问 您的代码也可以访问您的秘密,使您容易受到攻击 遭受来自组织内部和外部的攻击。这个 漏洞充其量可能导致滥用您的数据和帐户 别处;在最坏的情况下,它可能会将更多数据暴露给 攻击者。