如何通过AWS lambda函数安全地使用Google服务帐户进行身份验证?我想从AWS lambda调用一些google api。
答案 0 :(得分:1)
您也可以存储在Lambda环境变量中加密的凭据。您可以在aws控制台中以编程方式存储或配置它。
更多详情:
http://docs.aws.amazon.com/lambda/latest/dg/env_variables.html
<强> CLI:强>
aws lambda create-function \
--region us-east-1
--function-name myTestFunction
--zip-file fileb://path/package.zip
--role role-arn
--environment Variables="{LD_LIBRARY_PATH=/usr/bin/test/lib64}"
--handler index.handler
--runtime nodejs6.10
--profile default
的NodeJS:
http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Lambda.html
检查
变量:{
在下面的代码中。
要加密,请检查KMSKeyArn并提供您的KMS Arn值。
var params = {
FunctionName: 'STRING_VALUE', /* required */
DeadLetterConfig: {
TargetArn: 'STRING_VALUE'
},
Description: 'STRING_VALUE',
Environment: {
Variables: {
'<EnvironmentVariableName>': 'STRING_VALUE',
/* '<EnvironmentVariableName>': ... */
}
},
Handler: 'STRING_VALUE',
KMSKeyArn: 'STRING_VALUE',
MemorySize: 0,
Role: 'STRING_VALUE',
Runtime: nodejs | nodejs4.3 | nodejs6.10 | java8 | python2.7 | python3.6 | dotnetcore1.0 | nodejs4.3-edge,
Timeout: 0,
TracingConfig: {
Mode: Active | PassThrough
},
VpcConfig: {
SecurityGroupIds: [
'STRING_VALUE',
/* more items */
],
SubnetIds: [
'STRING_VALUE',
/* more items */
]
}
};
lambda.updateFunctionConfiguration(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
希望它有所帮助。
答案 1 :(得分:0)
您可以将凭据存储在JSON文件中,并将该文件添加到部署包中,您将能够导入您的凭据,类似于从本地目录中读取文件。
例如:
CLIENT_SECRETS_FILE = "client_secrets_web.json"
SCOPES = ["https://www.googleapis.com/auth/yt-analytics-monetary.readonly"]
flow = google_auth_oauthlib.flow.Flow.from_client_secrets_file(
CLIENT_SECRETS_FILE, scopes=SCOPES)
您的部署包(.zip)应该包含您的lambda函数代码,任何其他依赖项和您的JSON文件