没有API网关的情况下如何认证AWS Lambda?

时间:2018-12-11 07:58:23

标签: amazon-web-services aws-lambda cloud

我有一个iOS购物应用程序,想将故障转储发送到AWS Lambda函数。

为了节省API网关的成本,我想直接将它们发送到Lambda。

如何验证应用程序并对其进行配置,以便其他任何应用程序都无法将故障转储发送到我的Lambda函数?

2 个答案:

答案 0 :(得分:1)

  1. AWS Cognito https://aws.amazon.com/cognito/
  2. 手动开发所有身份验证代码。例如,带有JWT令牌的OAuth 2.0。 在这种情况下,您的Lambda可以被任何人执行(错误的主意),但是您仍然可以 限制并发执行。

答案 1 :(得分:0)

我会告诉您我为类似问题所做的事情:

  • 为该应用创建一个AWS用户,因此该应用可以访问AWS_SECRET_KEY_IDAWS_SECRET_ACCESS_KEY
  • 在应用程序中,(出于安全考虑)(例如,使用KMS密钥)使用aws凭据加密制作的json
  • 以加密的有效负载为参数调用lambda函数,解密有效负载并获得用户身份,如下所示:
session = boto3.Session(
            aws_access_key_id=session['access_key'],
            aws_secret_access_key=session['secret_access_key'],
            aws_session_token=session['security_token']
        )
client = session.client('sts')
response = client.get_caller_identity()