2016-02-03 52 views
5

私はAWSラムダサービスに関する基本的なセキュリティ関連の質問に次き:AWS Lambda:AWS Lambdaローカルディスクにデータを保存するのは安全ですか?

  1. AWSラムダストアのデータは、例えば、私がローカルディスク上にデータを保存しようとしない場合はどうなりますか?
  2. ラムダのデータを暗号化することは可能ですか?

ラムダのローカルボリュームに保存されているおかげで

答えて

3

ファイルは一時的な短期保存のためにする必要がありますし、あなたの単一ラムダ関数呼び出しの存続期間を超えて存続すると期待すべきではありません。

データを長期間保存する必要がある場合は、DynamoDBのようなデータベースを使用するか、Amazon S3を使用します。

ローカルボリュームにデータを保存する必要がある場合は、データを暗号化できますが、自分で行う必要があります。また、関数が呼び出されたときには、データがなくなる可能性が高いことに注意してください。

+0

速い応答ありがとうございました はい、次の関数呼び出しでデータが削除されても、一時的なので問題ありません。 S3などでLambdaのローカルディスクがどこにあるのかわかりますか? – obaid

+0

ほとんどの場合、EBSボリュームですが、EC2インスタンスストア(つまり、EC2インスタンスへのローカルハードドライブ)である可能性があります。それはS3ではありません。 –

5

私のラムダ関数に一時的なデータを保存しましたが、問題はありませんでした。

  • ストア/ tmpにあなたのデータは、一時的なデータ他のdirs
  • へのアクセス権を持っていないかもしれません - 名前が示すように - データが敏感であれば、唯一のラムダ
  • の呼び出しのために利用可能です暗号化ライブラリがその言語用にデフォルトで提供されていない場合は、ライブラリをパッケージ化してください)
11

ラムダ関数の/ tmpに対する重要な相違点の1つは、ラムダ関数コンテナが再利用され、スクラッチスペースはではありません。常にが消去されました。呼び出しが以前の呼び出しのためにスピンアップされたコンテナを使用する場合(これは、いくつかのラムダ関数を連続して実行する場合に発生します)、スクラッチスペースは共有されます。

これは私のために一度機能を台無しにしました。

+10

明確にするために、あなたの関数**の後続の呼び出し**のために常に消去されるとは限りません。あなたは他の人のデータをそこで見つけるつもりはありません。 –

+0

@Luc Hendriksどのようにしてtmpフォルダをクリーンアップできますか? – rresol

+0

ファイルを削除するだけで済みます。ノードjsを使用する場合は、 'fs 'を実行できます。readdir'を実行してtmpフォルダ内のすべてのファイルを取得し、各ファイルに対して 'fs.unlink'を実行します。また、子プロセスを生成して、これを実行することもできます(onelinerとして動作するはずですが、requireを分割して非同期にしたいと思っています): 'require( 'child_process')execSync( 'rm -rf/tmp') ' –

2

誰かがデータにアクセスできるかどうかを "安全に"尋ねると、答えはラムダを呼び出すことができる人です。あなたが "安全"であれば、耐久性のあるストレージであるか疑問に思っても、答えはノーです。ラムダ関数は一時的な/tmpフォルダにしかアクセスできません。同じラムダ関数への2回の連続した呼び出しが同じ物理マシン上で実行されるという保証はありません。ただし、短時間に2回呼び出された場合は、同じマシン上で実行され、最初の呼び出しで保存されたファイルが2回目の呼び出しで使用可能になる可能性があります。このテンポラリファイルストレージを使用することを選択した場合は、格納できるデータの量がいくつかあることにも注意してください。limitations

+0

情報をありがとう。ですから正しく理解すれば、他のラムダは/ tmpディレクトリを見ることができますか?これは誰でもデータを削除したり読んだりすることができます(これが当てはまる場合)。別の質問をしてみましょう。ラムダはどのようにRAMを使用しますか?たとえば、1024 RAM(Web UIを介して)を割り当て、平均で5-10ラムダ関数を起動すると(S3はラムダ関数を起動します)、このRAMはすべてのラムダ関数に分割され、またはすべての単一のラムダ関数には1024のRAMが割り当てられますか? – obaid

+1

@obaidいいえ、「各Lambda関数は、自身の/ tmpディレクトリに500MBの非永続ディスク領域を受け取ります。 ([Lambda FAQ](https://aws.amazon.com/lambda/faqs/)からコピーされた強調の鉱山)。 ラムダ関数への各要求には独自のメモリ割り当てがあります。それ以外の場合は、スケールアウトされません。代替(特定のラムダへのすべての要求に対する固定メモリバジェット)は意味がありません。そのような解決策は、必然的にメモリ不足例外が発生するまでトラフィックが増加すると、各要求のメモリ使用量が減少することを意味する。 – matsev

関連する問題