ホームページ >バックエンド開発 >Python チュートリアル >ハードコードされたシークレットを Secrets Manager に移動する

ハードコードされたシークレットを Secrets Manager に移動する

Barbara Streisand
Barbara Streisandオリジナル
2024-10-14 06:15:29522ブラウズ

Move hardcoded secrets to a Secrets Manager

シークレット マネージャーは、パスワード、API キー、データベース認証情報、およびアプリケーションに必要なその他の種類の機密データを保存および管理するためのツールです。

アプリケーションのソース コードにハードコーディングされているシークレット、またはコードで使用するプレーン テキスト ファイルに保存されているシークレットは、システム内のアプリケーションやコンポーネントを検査できる悪意のあるエンティティによって悪用される可能性があります。このリスクは、シークレット マネージャーを使用すると軽減できます。

dotenv-vault

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 のリスト:

  1. 財政
  2. ドップラー
  3. HashiCorp 保管庫
  4. AWS Secrets Manager
  5. Azure Key Vault

以上がハードコードされたシークレットを Secrets Manager に移動するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。