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

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

Oct 14, 2024 am 06:15 AM

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 までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

HTMLを解析するために美しいスープを使用するにはどうすればよいですか? HTMLを解析するために美しいスープを使用するにはどうすればよいですか? Mar 10, 2025 pm 06:54 PM

HTMLを解析するために美しいスープを使用するにはどうすればよいですか?

Pythonでの画像フィルタリング Pythonでの画像フィルタリング Mar 03, 2025 am 09:44 AM

Pythonでの画像フィルタリング

Pythonでファイルをダウンロードする方法 Pythonでファイルをダウンロードする方法 Mar 01, 2025 am 10:03 AM

Pythonでファイルをダウンロードする方法

Pythonを使用してテキストファイルのZIPF配布を見つける方法 Pythonを使用してテキストファイルのZIPF配布を見つける方法 Mar 05, 2025 am 09:58 AM

Pythonを使用してテキストファイルのZIPF配布を見つける方法

Pythonを使用してPDFドキュメントの操作方法 Pythonを使用してPDFドキュメントの操作方法 Mar 02, 2025 am 09:54 AM

Pythonを使用してPDFドキュメントの操作方法

DjangoアプリケーションでRedisを使用してキャッシュする方法 DjangoアプリケーションでRedisを使用してキャッシュする方法 Mar 02, 2025 am 10:10 AM

DjangoアプリケーションでRedisを使用してキャッシュする方法

TensorflowまたはPytorchで深い学習を実行する方法は? TensorflowまたはPytorchで深い学習を実行する方法は? Mar 10, 2025 pm 06:52 PM

TensorflowまたはPytorchで深い学習を実行する方法は?

Pythonで独自のデータ構造を実装する方法 Pythonで独自のデータ構造を実装する方法 Mar 03, 2025 am 09:28 AM

Pythonで独自のデータ構造を実装する方法

See all articles