Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS Cron作业与lambdas_Amazon Web Services_Aws Lambda_Aws Cdk - Fatal编程技术网

Amazon web services AWS Cron作业与lambdas

Amazon web services AWS Cron作业与lambdas,amazon-web-services,aws-lambda,aws-cdk,Amazon Web Services,Aws Lambda,Aws Cdk,我想使用lambda函数为我的应用程序设置cron作业。 我当前的架构由一个负载平衡器后面的自动伸缩组组成,两者都位于同一VPC内。 我的意图是使用lambdas调用应用程序的特定路径,例如“/cron/task1”,并使用类似cron的语法定期调用它们。 如何保护我的应用程序,使这些端点只能从lambda函数访问,而不能从vpc外部访问,同时允许最终用户访问应用程序的所有其他路径?您可能需要Api授权。最简单的方法之一(不是最安全的)是 lambda和应用程序共享一个共同的秘密 当lambd

我想使用lambda函数为我的应用程序设置cron作业。 我当前的架构由一个负载平衡器后面的自动伸缩组组成,两者都位于同一VPC内。 我的意图是使用lambdas调用应用程序的特定路径,例如“/cron/task1”,并使用类似cron的语法定期调用它们。
如何保护我的应用程序,使这些端点只能从lambda函数访问,而不能从vpc外部访问,同时允许最终用户访问应用程序的所有其他路径?

您可能需要Api授权。最简单的方法之一(不是最安全的)是

  • lambda和应用程序共享一个共同的秘密
  • 当lambda向您的应用程序发出请求时,您可以像这样散列所有查询参数
myapp.url/cron/task1?a=value&c=something&b=foobar

可以按升序/降序对参数进行排序

{
  "a": "val",
  "b": "foobar"
  "c": "some",
}
  • 通过使用共享公共密钥,您可以散列所有这些密钥,并生成一个新字符串,例如
    cf23df2207d99a74fbe169e3eba035e633b65d94
现在您的请求将被删除

myapp.url/cron/task1?a=val&c=some&b=foobar&token=cf23df2207d99a74fbe169e3eba035e633b65d94

  • 当您的应用程序收到此请求时,它会取出令牌并对其余部分进行排序(使用的顺序与lambda相同),并使用相同的密钥创建散列
  • 如果哈希匹配,那么您就知道它来自lambda,因为它们都知道相同的秘密。如果不是,那么您可以放弃该请求

您可以保留这些秘密,以使其不公开并更加安全。

您可以创建一个lambda来调用path/cron/task1,并使用具有适当规则的cloudwatch事件调用lambda(例如,每隔固定时间间隔触发一次事件)