2

私はSESを介して電子メールを送信する単純なラムダ関数を持っています。私は必要なデータとPOST要求を使用して呼び出すことができ、それは電子メールを送信します。私の質問は、私はこの機能を確保するために使用できる方法は何ですか?現在、誰でもそのエンドポイントを呼び出して、任意のデータで関数を実行することができます。AWSラムダ関数を安全にする方法は?

+2

難読化をセキュリティ対策と見なさない限り、クライアント側のコードを保護することはできません。あらゆる基本的な連絡フォームはスパムに脆弱です。 –

+3

@ChrisG 'aws-lambda'はサーバ側の技術です – LifeQuery

答えて

5

APIゲートウェイにの承認者を設定する必要があります。このtutorialは素晴らしい出発点です。要約すると

、以下を行う必要があります。

  1. Create a Cognito User Pool
  2. Create a Cognito Identity Pool that uses this User Pool
  3. Make the client to log in and retrieve Cognito credentials
  4. Make the client to send authorization headers for all requests
  5. Set an authorizer in your Lamba function

Y私たちのserverless.yml承認者構成で、次のようになります。あなたはCognitoの承認者に限定する必要はありません

functions: 
    hello: 
    handler: handler.hello 
    events: 
     - http: 
      path: hello 
      method: post 
      authorizer: 
      arn: YOUR_USER_POOL_ARN 

:あなたは、この設定では、ラムダ関数は、認証されたユーザーのみによってトリガーされ、あなたは、ユーザーIDがeventオブジェクトを検査することであるかを識別することができることを意味

などは、Google +、Facebookのための承認者を設定し使用することができます

event.requestContext.authorizer.claims.sub 
関連する問題