我正在使用带有Pubsub触发器的Google Cloud Function(GCF),该触发器向第三方API发送HTTP请求 .
GCF从服务使用的Pubsub主题接收通知,该主题不应该知道第三方API .
第三方API需要使用基本HTTP身份验证进行身份验证 .
为了不必在我的源代码中对密码进行硬编码,我每次部署我的函数时都使用Google KMS生成新的加密密钥 . 每次实例化该功能时,我都在使用Google Cloud KMS来解密密码 .
对于使用KMS进行解密,我必须为NodeJS Google API提供服务帐户的私钥 .
我今天的主要问题是,如果我希望我的GCF正常工作,我必须将我的私钥推送到GCloud Bucket .
是否可以使用Runtime Configurator或Deployment Manager来配置Google Cloud Function的机密?
谢谢 .
2 回答
没有内置服务可以让您配置此时Google Cloud Functions直接访问的机密,因此您当前使用的方法是暂时处理 Cloud 功能机密的正确方法 . 这可能会随着产品仍处于测试阶段而改变 .
如果您愿意,可以使用相应的issue tracker向Cloud Function团队发出功能请求 .
仅在过去几个月内推出的另一个解决方案是使用带有Firebase功能的Google Cloud Runtime配置:https://firebase.google.com/docs/functions/config-env
Firebase for Functions似乎可以访问通过其他方式尚未提供的多个功能 .
Runtime Configurator不收取使用费,但强制执行以下API限制和配额:
顺便说一句,我发现Firebase for Functions中的这个冲突是滑稽的:
片刻之后:
KMS解决方案是一种可行的替代方案,但它似乎对功能而言代价高昂 . KMS的每个活动密钥每月收费0.06美元,每10,000次操作收费0.03美元 .
然后,这会将您的 Cloud 功能的成本从每百万次调用0.40美元更改为每百万次调用3.40美元 . 这是一个很大的跳跃 .
https://cloud.google.com/kms/
https://cloud.google.com/functions/