ホームページ >バックエンド開発 >Python チュートリアル >ハードコードされたシークレットを Secrets Manager に移動する
シークレット マネージャーは、パスワード、API キー、データベース認証情報、およびアプリケーションに必要なその他の種類の機密データを保存および管理するためのツールです。
アプリケーションのソース コードにハードコーディングされているシークレット、またはコードで使用するプレーン テキスト ファイルに保存されているシークレットは、システム内のアプリケーションやコンポーネントを検査できる悪意のあるエンティティによって悪用される可能性があります。このリスクは、シークレット マネージャーを使用すると軽減できます。
dotenv-vault は、シークレットをコードに記述するより安全な代替手段を提供するシークレット マネージャーの 1 つです。
[!Note]
これは、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://:key_1234@dotenv.org/vault/.env.vault?environment=production' python main.py
その結果、運用アプリケーションはシークレットにアクセスできるようになりました。
{ "spoiler": "Darth Vader is Luke Skywalker's father" }
さまざまなシークレット管理ソリューションが利用可能です。各シークレット マネージャーには、独自の長所と短所があります。組織の要件に最も適したオプションを選択してください。
代替 Secrets Manager のリスト:
以上がハードコードされたシークレットを Secrets Manager に移動するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。