2016-10-29 7 views
0

設定/デプロイメント/ビルドスクリプト(fabfile.py、circle.yml、Dockerfileなど)と一緒に(gitで)コードを作成して、シームレスな自動ビルド/デプロイメントプロセスを実現します。シームレスではない1つの部分は、さまざまな種類の資格情報を格納する場所です。これらはsshキー、コード署名証明書、awsアクセスキー、ssl証明書のようなものです...現在、プロセスはフラッシュドライブから必要なキー/証明書をコピーしてから(例えば)ファブリックを実行します。devopsの資格情報を保存する場所

git(コードと並んで)のような資格情報を格納するのが最適な場所ではないようですが、はどれですか?が最適ですか? devopsのような情報をどこに格納するのが推奨されるベストプラクティスですか?賛否両論とは異なる選択肢について議論する参考資料はありますか?

答えて

2

秘密管理の問題は、まだ正確に任意のツールを使用することにより、「解決」されていないものです。

さまざまな秘密管理ツール(それぞれ異なる種類のメリット/統合を提供しています)を使用できます。

私は個人的にHashicorp Vaultを好みます。サイバーマークはもう一ついいです。

ただし、ソリューションでこれらのツールを使用する方法には、一般的な使用パターンがあります。

1)あなたの秘密を暗号化している場合は、あなたの秘密をあなたのSCMに保存することができます...しかし、これでも同じ問題が発生しますが、起動時に秘密を安全に配信する必要がありますデプロイされた秘密(パスワード、資格情報、秘密、証明書)を復号化することができます。そこに秘密管理ツール(そのようなVault)が入ってきます。このツールを使用すると、秘密の復号に必要な秘密情報を安全に取得できます。

2)上記の他の方法があります。シークレットマネージメントツール自体にSCMの外にあるすべての秘密や証明書などを実際に格納し、展開/起動時にそれらを取得することです。

どちらかといえば、賛否両論があります。すなわち、第1のアプローチは、任意の時点で1つまたは2つの秘密しか管理しないので、複雑さを軽減する。一方、すべての秘密を保管庫に保管すると、1つの秘密にアクセスすることで他のすべての秘密にアクセスできないため、生態系全体に関連する妥協の可能性が減ります。

最終的には、すべてあなたのユースケース/利用可能なセキュリティ構造と、あなたが囲んでいる人々にまで下がります。その日の終わりに、誰かがどこか秘密を知る必要があるので...

関連する問題