以安全的方式在App Engine应用程序内部获取OAuth2客户端机密

时间:2018-08-20 06:26:53

标签: google-app-engine

我在Google App Engine中有一个使用OAuth2的应用程序。
我假设OAuth ClientID是公开的公开数据,因为它在客户端发送的用于身份验证的URL中使用。

我需要一种访问客户端机密的方法,因为我不想只是将其硬编码到我的代码中。

是否可以使用我的App Engine服务帐户访问凭据数据?

如果不是,以一种安全的方式存储客户端机密的好方法是什么?

1 个答案:

答案 0 :(得分:0)

Google最近发布了一项用于存储机密https://cloud.google.com/kms/的新服务

您可以使用此服务安全地管理任何机密(包括访问密钥和机密轮换,无效...)。考虑以下需要管理秘密的策略(来自https://cloud.google.com/kms/docs/secret-management):

  

选择一个秘密管理解决方案

     

选择最佳的秘密管理解决方案取决于您的独特性   现有环境,机密和安全需求。一些常见   方法包括:

     
      
  1. 以Cloud KMS中的密钥加密的代码中存储机密。这个   解决方案通常是通过在   应用层。使用此解决方案有助于提供额外的   通过限制范围来防止内部威胁   获取秘密。禁止所有人访问机密   有权访问代码的开发商   代码和相应的键。即使在所有情况下   开发人员可以访问代码和密钥,从而实现   该选件具有好处,因为它提供了审核对   机密,这在代码存储库中可能是不可能的。

  2.   
  3. 将机密存储在Cloud Storage的存储桶中,在   休息。该解决方案与以前的解决方案具有相似的优势,   它将对机密的访问权限限制在较小的一组开发人员中,并且   提供了审核该访问权限的能力。另外,通过收藏   秘密存放在单独的位置,您可以更轻松地旋转秘密   必要时;例如,如果检测到安全漏洞。也,   该解决方案允许系统分离;如果代码存储库   使用秘密被泄露,秘密本身可能仍然是   受保护的。

  4.   
  5. 使用第三方秘密管理解决方案。一个专门的秘密   管理工具基于此列表的前两个选项。在   此外,这些工具不仅可以让您更多地旋转秘密   很容易,但是在某些情况下,可以对您的   代表或简化常规轮换。

  6.   
     

警告:另一个常见的选择是将您的机密直接存储在   码。不建议使用此选项。虽然这是最简单的   解决方案的实施,它可能允许任何人访问   您的代码也可以访问您的秘密,使您容易受到攻击   遭受来自组织内部和外部的攻击。这个   漏洞充其量可能导致滥用您的数据和帐户   别处;在最坏的情况下,它可能会将更多数据暴露给   攻击者。