アプリケーションに必要な資格情報を保存する方法は?


13

資格情報をバージョン管理(git)に保存することは悪いことだと誰もが言っています。したがって、はるかに優れた資格情報を格納する他の方法が必要です。

アプリケーションは、依存するサービスを使用するためにどこかから資格情報を受け取る必要があります。これらの資格情報は通常、構成ファイルに格納されます。各サーバーを手動で入力してそのファイルを作成することは問題外です。サーバーが人間の介入なしに行き来するためです。

アプリケーションの資格情報を管理する方法は?


4
また、これは本のサイズではない単一の回答には多すぎる可能性があります。
coderanger 2017年

1
@coderangerプレゼンテーションを見て、さまざまなタイプの秘密の分類は素晴らしいです。そして、私はあなたがその本をどう思うか見ることができます...しかし、上記の質問は分類を求めていません。特定の問題の解決策のみを求めています。
エフゲニー

2
特定の状況がある場合は、質問を編集して、使用しているシークレットのタイプ(データベースパスワード、TLSキーなど)などの詳細を含めてください。
coderanger 2017年

1
これは広すぎます。カスタムスクリプトやテンプレートを含まない、これがやろうと、少なくとも14個のツール利用できるあります:gist.github.com/maxvt/bb49a6c7243163b8120625fc8ae3f3cd 追加の詳細が必要とされている(CLIが必要とされているように、クラウドネイティブソリューションのためまたはビッグのためにそれをありますモノリシックアプリケーションなど)
Alexandre

1
@Alexandre Hah、私はそれを開いて「いい編集リストだ」と思った後、自分が一番下に引用されているのを見る:)
coderanger

回答:


5

アプリケーションのシークレットを適切に管理することは、常に課題でした。クラウドの採用に伴い、新たな課題が生じました。シークレットをクラウドに保存することの現実と課題についての素晴らしいOWASPプレゼンテーションがあります。

シークレットをソースコードに格納することは、提示されたソリューション(または「アーキテクチャ」)の1つであると聞いて驚くかもしれません。それは、現在、完璧なアーキテクチャやこれを行う方法がないためです。結局のところ、あなたの秘密は暗号化されているかもしれません...しかし、暗号化キーを保護しているものは何ですか?「ずっと下に亀」と彼らは言った。

あらゆるタイプの秘密管理には長所と短所があり、プレゼンテーションはすでにそれをカバーしています。代わりに、シークレット(資格情報)管理ソリューションで探している可能性のあるいくつかの機能について説明します。

  • アクセス制御:管理者に書き込みアクセス権を与え、アプリケーションに読み取りアクセス権を与えることができますか?読み取ることができるアプリケーションを制限できますか(アプリケーションAはそれらのシークレットにのみアクセスできます)?
  • 監査ログ:多くのコンプライアンスレポートに必要であり、何かが間違っているかどうかを把握する良い方法
  • 秘密の安全な保管:秘密を保管するソリューションはどのようになっていますか?暗号化されたDB?暗号化されたFS?暗号化キーを保持しているのは誰/何ですか?このキーはどのように使用されますか?起動時に一度、そして安全に破棄されますか?
  • キー/パスワードのローテーションまたは更新:シークレットが侵害された場合、それを取り消して、更新されたシークレットをアプリケーションに送信できますか?アプリケーションはシークレット管理サービスをプールできますか?
  • 互換性:これらのソリューションの一部は、特定の言語またはフレームワークとの緊密な統合を提供します。REST APIを提供するものもあります。これに興味がありますか?

これらの項目、それらがあなたにとってどのように重要であるか、そしてそれらがソリューションによってどのように実装されるかを見ることで、そこから秘密管理サービスの1つを選択することができます。


3

純粋にEC2ベースの環境の場合、最も簡単なソリューションは、AWS IAMロールとS3バケットポリシーを使用することです。このパターンのいくつかの定式化には、暗号化にはKMSが含まれ、ストレージにはS3の代わりにDynamoDBが含まれますが、どちらを使用するかという非常に説得力のある理由はわかりません。https://github.com/poise/citadelをチェックしてください。これは特にChefユーザーを対象としていますが、基になるパターンは何でも機能します。S3から実際にダウンロードするには、独自のヘルパーを作成する必要があるだけです。


1
将来的には、これは以前のより具体的なバージョンの質問に答えます。
coderanger 2017年

2
AWSは、KMSを介した暗号化を含むキー値ストレージ専用のサービスを提供するようになりました:aws.amazon.com/ec2/systems-manager/parameter-store
bnzmnzhnz 2017年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.