環境変数からシークレットを読み込む
env変数を使い、キーをソースコードから分離します
「環境変数からシークレットを読み込む」はCoddyKit上の無料Flask Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはFlask Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Flask Academyコースには全4レッスンが含まれています。
このレッスンの一部はまだ翻訳されておらず、英語で表示されています。
Secrets Do Not Belong in Code
API keys and passwords pasted into source files leak the moment you push to Git. Keep secrets out of your repository entirely.
The Twelve-Factor Idea
The twelve-factor approach stores config in the environment, so the same code ships everywhere with no edits.
Read One with os.environ
Use os.environ to read a variable. It raises a clear error if the key is missing, which is great for required secrets.
import os
key = os.environ["SECRET_KEY"]Optional Values with get
Use os.environ.get for optional settings and supply a fallback so your app still boots in development.
debug = os.environ.get("DEBUG", "0")Wire It into a Config Class
Read env vars right inside your Config class so every environment gets its secrets from the system, not the source.
SECRET_KEY = os.environ.get("SECRET_KEY")Set a Variable in the Shell
On your machine, export the value before running. The process inherits it, and Flask picks it up.
export SECRET_KEY=super-secretEverything Is a String
Env vars arrive as strings. Convert numbers and booleans yourself, since "0" is truthy in Python.
port = int(os.environ.get("PORT", "5000"))Fail Fast on Missing Secrets
In production, a missing secret should crash on startup, not midway. Fail fast so the problem is obvious immediately.
if not SECRET_KEY:
raise RuntimeError("SECRET_KEY required")Where the Platform Sets Them
Hosts like Heroku, Docker, and Kubernetes inject env vars at deploy time, so no secret ever sits in your image.
Generate a Strong Key
A SECRET_KEY should be long and random. Generate one with secrets.token_hex and store it as an env var.
import secrets
secrets.token_hex(32)Never Log a Secret
Avoid printing config that holds secrets. A stray log line in a dashboard exposes the very value you protected.
Quick Check
How should you handle a required secret that is missing in production?
Recap: Env Secrets
You read secrets from os.environ, gave optional ones defaults, converted types, and failed fast when required keys were missing. 🔐
よくある質問
「環境変数からシークレットを読み込む」レッスンは無料ですか?
はい。「環境変数からシークレットを読み込む」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Flask Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Flask Academyコースには全4レッスンが含まれています。
「環境変数からシークレットを読み込む」で何を学びますか?
env変数を使い、キーをソースコードから分離します ブラウザで直接実行するハンズオンコードでFlask Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Flask Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのFlask Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「環境変数からシークレットを読み込む」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このFlask Academyレッスンでコードを書いて実行できますか?
はい。すべてのFlask Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- 環境ごとの設定クラス
- 環境変数からシークレットを読み込む
- 開発環境でdotenvを使う
- デバッグと機能フラグを切り替える