我有一个 v2 Firebase Cloud Function 函数,需要使用 Firebase Admin SDK 服务帐户进行身份验证。默认情况下,v2 Firebase Cloud Function 函数使用默认计算服务帐户,我需要更改它。然而,我读过,在我看来,这是相互矛盾的建议,但我确信我的猴子大脑只是错误地解析了它。
一个建议是使用包含所需服务帐户密钥的配置文件。当我尝试从 Google Cloud 控制台获取此密钥时,系统建议我不要这样做,而是建议使用 Workload Identity Federation。在我看来,冲突在于联合身份验证旨在用于环境间访问。例如,如果我需要 GitHub 来访问我的 Firebase 服务器,那么我会更喜欢联合身份验证。然而,在我的用例中,所有访问都是环境内的——全部都在 Google 环境中——这让我相信联合身份验证不是这里的最佳用例。
这里的最佳实践是什么?
文档告诉您 Workload Identity Platform 的用途:
借助工作负载身份联合,您可以使用联合身份而不是服务帐号密钥,为本地或多云工作负载提供对 Google Cloud 资源的访问权限。
还有:
传统上,在 GCP 外部运行的应用程序可以使用服务帐号密钥来访问 GCP 资源。但是,服务帐户密钥是强大的凭据,如果管理不正确,可能会带来安全风险。工作负载身份联合消除了与服务帐户密钥相关的维护和安全负担。
如果这不是您所需要的(多云部分访问和安全风险缓解),那么几乎不需要使用工作负载身份联合。 您可以根据自己的特定安全需求来管理服务帐户。
如果不了解您在这些方面的具体需求,就没有真正可遵循的“最佳实践”——做对您的产品要求有意义的事情。