DjangoアプリケーションをElastic Beanstalkにデプロイしました。その環境変数設定インターフェイスを使用して、APIキーをソースに保存するのではなく、ここに保存するつもりです https: //stackoverflow.com/a/178786 )。
これを行った後、私はBeanstalkが環境変数と呼んでいるものは実際にはシェル環境変数(ここで言及されている https://stackoverflow.com/a/24564832/378638 )ではなく、構成ファイル内のインスタンス(ここで説明しているように https://stackoverflow.com/a/24566283/378638 )。
これはセキュリティの問題のようです。これは、秘密鍵をソースから遠ざけるという目的を無効にしませんか?私はそれらがリポジトリに存在しないことを理解していますが、インスタンスからは引き続きアクセスできます。
リスクを誤解していますか?私は継承によるシステム管理者ですので、ここで私の無知を許してください。設定ファイルを介してBeanstalk変数をシェル環境変数としてロードし、ルートからしかアクセスできないので次に進むべきですか、それとも私の懸念は有効ですか?ありがとうございました。
秘密をソースコードに入れないことのポイントは、それらがソースcontrolに入らないようにすることです。これは、オープンソースプロジェクトで特に役立ちます。
展開するとき、シークレットがファイルまたはenvvarにあるかどうかは関係ありません。重要なのは、プログラムを実行しているOSユーザーだけがそれを読み取ることができるということです。これは、便利なenvvarsのデフォルトです。
ルートは常にすべてを読み取ることができます。したがって、Amazonはrootであるため、必要に応じて秘密の値を知ることができます。
それらは サポートを行う 高価なハードウェアセキュリティモジュール(HSM)ですが、キーが読めなくなります。もちろん、HSMを使用して自分のデータを復号化し、実際のキーを取得することはできません。
したがって、Amazonを信頼するか、自分でホストするか、コロケーションする必要があります。