シークレット マネージャーは、パスワード、API キー、データベース認証情報、およびアプリケーションに必要なその他の種類の機密データを保存および管理するためのツールです。
アプリケーションのソース コードにハードコーディングされているシークレット、またはコードで使用するプレーン テキスト ファイルに保存されているシークレットは、システム内のアプリケーションやコンポーネントを検査できる悪意のあるエンティティによって悪用される可能性があります。このリスクは、シークレット マネージャーを使用すると軽減できます。
dotenv-vault は、シークレットをコードに記述するより安全な代替手段を提供するシークレット マネージャーの 1 つです。
[!注記]
これは dotenv-vault の使用に関するチュートリアルではありません。このドキュメントの目的は、開発者がシークレットをハードコーディングしたり、プレーン テキスト ファイルに保存したりすることを避けるためにシークレット マネージャーがどのように役立つかを説明することです。 dotenv-vault の使用を開始する方法については、こちらをご覧ください。
映画 スター・ウォーズ エピソード V の特定のキャラクターに関する機密情報があり、プログラムでその情報を使用したいとします。
def spoiler(): spoiler = "Darth Vader is Luke Skywalker's father" return { "spoiler": spoiler }
情報をハードコーディングする代わりに、環境変数として .env ファイルに書き込みます。
SPOILER="Darth Vader is Luke Skywalker's father"
dotenv-vault を使用すると、私のプログラムは環境変数を使用して機密情報にアクセスできます。
import os from dotenv_vault import load_dotenv load_dotenv() # Take environment variables from .env def spoiler(): spoiler = os.getenv("SPOILER") # Get the secret return { "spoiler": spoiler }
次に、.env ファイルを同期して環境変数を暗号化します。同期が完了すると、DOTENV_KEY として知られるデータを生成できます。この出力は、本番環境の環境変数としてプログラムで読み取ることができます。
DOTENV_KEY='dotenv://:[email protected]/vault/.env.vault?environment=production' python main.py
その結果、本番アプリケーションはシークレットにアクセスできるようになりました。
{ "spoiler": "Darth Vader is Luke Skywalker's father" }
さまざまなシークレット管理ソリューションが利用可能です。各シークレット マネージャーには、独自の長所と短所があります。組織の要件に最も適したオプションを選択してください。
代替シークレットマネージャーのリスト:
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3