Elastic Beanstalkの環境変数は、秘密の値を保存する適切な場所ですか?


15

DjangoアプリケーションをElastic Beanstalkにデプロイしました。環境変数設定インターフェイスを使用して、APIキーをソースに保存する代わりに保存します(こちら/programming//a/17878600を参照)。

これを行った後、Beanstalkが環境変数と呼ぶものは実際にはシェル環境変数ではなく(ここで/programming//a/24564832/378638で言及されているように)、設定ファイルのインスタンスに(こちら/programming//a/24566283/378638で説明されています)。

これは私にとってセキュリティの問題のようです。これは、ソースから秘密鍵を保護する目的に反しませんか?それらはレポに含まれていないことは理解していますが、インスタンスでは引き続きアクセス可能です。

リスクを誤解していますか?私は継承によってシステム管理者ですので、ここで私の無知を許してください。設定ファイルを介してBeanstalk変数をシェル環境変数としてロードし、ファイルはルートからのみアクセスできるため、先に進む必要がありますか、それとも私の懸念は有効ですか?ありがとうございました。

回答:


12

ソースコードから秘密を守ることのポイントは、それらがソース管理に入らないようにすることです。これは、オープンソースプロジェクトで特に役立ちます。

展開するとき、秘密がファイルまたはenvvarにあるかどうかは関係ありません。重要なのは、プログラムを実行しているOSユーザーのみがそれを読み取れることです。これはenvvarsのデフォルトであり、便利です。

ルートは常にすべてを読み取ることができます。そのため、Amazonは必要に応じて秘密の値を知ることができます。なぜなら、それらはルートだからです。

彼らはサポートしていないあなたの鍵が読めなくなるだろうこれは、かかわらず、高価なハードウェアセキュリティモジュール(HSM)を。もちろん、彼らはまだHSMを使用してあなたのものを解読できますが、実際のキーを取得することはできません。

したがって、Amazonを信頼するか、自分でホストするか、同じ場所に置く必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.