Node(例:Twilio)を介して外部APIにアクセスすることになっているAPIゲートウェイを介してラムダ関数が構成されています。関数の資格情報を右に保存したくないラムダ関数。しかし、それらを設定するより良い場所はありますか?
これを行う機能は、おそらくこの質問が投稿された後にLambdaに追加されました。
AWSのドキュメントでは、環境変数を使用して機密情報を保存することをお勧めしています。 AWS Lambdaコンソールを使用してLambda関数を作成すると、AWSが決定したキー(aws/lambda)を使用して(デフォルトで)暗号化されます。
AWS KMSを活用して、AWSが決定したキーを使用するか、独自のKMSキーを選択する(暗号化ヘルパーを有効にするを選択する)ことができます。事前にキーを作成しておく必要があります。
AWSからDOC 1 ...
「環境変数を使用するLambda関数を作成または更新すると、AWS LambdaはAWS Key Management Serviceを使用してそれらを暗号化します。Lambda関数が呼び出されると、これらの値は復号化され、Lambdaコードで利用可能になります。
リージョンで環境変数を使用するLambda関数を初めて作成または更新するときに、AWS KMS内でデフォルトのサービスキーが自動的に作成されます。このキーは、環境変数を暗号化するために使用されます。ただし、Lambda関数の作成後に暗号化ヘルパーを使用し、KMSを使用して環境変数を暗号化する場合は、独自のAWS KMSキーを作成し、デフォルトキーの代わりにそれを選択する必要があります。デフォルトのキーを選択するとエラーが発生します。」
デフォルトのキーは確かに「選択したときにエラーを与える」ので、なぜドロップダウンに入れたのか不思議に思います。
ソース:
まだ自分でやっていませんが、 AWS KMS を使用して、関数内からAPIキーを暗号化/復号化して、LambdaロールにKMSキーへのアクセスを許可する必要があります。
AWSのストレージサービスまたはデータベースサービスは、ここで問題を解決できます。問題は、現在の AWS Lambda 関数ですでに何を使用しているのですか?それに基づいて、次の考慮事項:
いずれにしても、Lambdaと選択したストレージ/データベース間の排他的アクセスを許可するために、セキュリティポリシー(IAMロールまたはS3バケットポリシー)を作成する必要があります。
注: Amazon VPC AWS Lambdaのサポートはすぐ近くにあるため、選択するソリューションは、Lambda関数と同じVPC内にあることを確認してください(詳細については https:// connect .awswebcasts.com/vpclambdafeb2016/event/event_info.html )
AWSの認証情報ではなく、外部のAPIの認証情報を参照していると思いますか?
素晴らしい場所だとは知りませんが、S3に認証情報を入力しているAWSフォーラムに投稿を見つけました。
特定のユースケースではありませんが、このフォーラムスレッドをご覧ください。
https://forums.aws.Amazon.com/thread.jspa?messageID=686261
資格情報をS3に配置する場合は、適切にセキュリティ保護されていることを確認してください。そのLambda関数にのみ割り当てられている特定のIAMロールでのみ使用可能にすることを検討してください。