来自AWS lambda的Google OAuth

时间:2017-12-21 15:33:31

标签: amazon-web-services aws-lambda google-oauth

如何通过AWS lambda函数安全地使用Google服务帐户进行身份验证?我想从AWS lambda调用一些google api。

2 个答案:

答案 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文件