Amazon web services 如何在谷歌云功能中访问AWS服务?

Amazon web services 如何在谷歌云功能中访问AWS服务?,amazon-web-services,google-cloud-functions,Amazon Web Services,Google Cloud Functions,我需要从Google云功能(GCF)中访问DynamoDB 使用Lambda,使用IAM获取访问其他AWS服务所需的AWS凭据当然很简单,如前所述 对于Heroku,我使用了process.env,如下所述: 通过Cloud Foundry,我使用了用户提供的服务,如下所述: 在我的GCF中,我尝试了以下方法,但没有成功: AWS.WebIdentityCredentials, sts.assumeRoleWithWebIdentity, AWS.CognitoIdentityCredentia

我需要从Google云功能(GCF)中访问DynamoDB

使用Lambda,使用IAM获取访问其他AWS服务所需的AWS凭据当然很简单,如前所述

对于Heroku,我使用了process.env,如下所述:

通过Cloud Foundry,我使用了用户提供的服务,如下所述:

在我的GCF中,我尝试了以下方法,但没有成功:

AWS.WebIdentityCredentials,
sts.assumeRoleWithWebIdentity,
AWS.CognitoIdentityCredentials

我不需要来自用户的任何数据,所以我甚至不想走上web身份联合的道路。我只想使用我的AWS creds,而不将它们硬编码到GCF中。如何最好地做到这一点?

只有付费计划的项目才能访问外部HTTP服务,以防止匿名滥用。你在其中运行功能的项目是付费计划吗?谢谢,弗兰克。是的,我已确认此项目已启用计费功能。希望有人会有更好的功能,但在此期间,我将只导入一个本地JSON文件作为云函数依赖项:
AWS.config.loadFromPath('./AWSconfig.JSON')
。或者,对于不使用AWS但正在寻找基本类似解决方案的用户,
const cert=require('path/to/serviceAccountKey.json')
。不过,我希望避免这种情况,以便在github推送后通过自动部署启用CI/CD(因为带有Cred的配置文件当然不属于repos)。理论上,应该可以使用Cloud KMS将机密加密到云存储中,并在读取时解密,这至少能让他们远离回购协议,如果有人偷偷摸摸,还能给你提供审计线索。OTOH,目前对我来说,隐藏的安全性太高了-我无法在云函数中解密,可能是因为你无法为它们运行的计算引擎实例分配自定义作用域。。。
cf cups aws-creds-service -p "{\"accessKeyId\": \"XYZ\",\"secretAccessKey\": \"ABC\"}"
cf bind-service my-app aws-creds-service
AWS.WebIdentityCredentials,
sts.assumeRoleWithWebIdentity,
AWS.CognitoIdentityCredentials