APIキー流出を防ぐenv
3分22秒 | WEBAPI
基本情報技術者試験の頻出テーマを解説した音声コンテンツです。
トランスクリプト(字幕テキスト)
あなたが作ったアプリを勢いとGitHubで公開したとします。 よし、最高傑作だ。 でもその直後、冷や汗が、待てよ、ソースコードにAPIキーが丸見えのままじゃないかと。 これ悪用されたらどうなるんだって、もう一瞬で血の気が引きますよね。 この秘密情報をコードに直接書いちゃうハードコーディング、誰もが一度はヒヤリとする経験かもしれません。 まあまあ、落ち着いてください。大丈夫です。 そのパニックすごくよくわかります。 いやあ、でも。 そして幸いなことに、これはちゃんと安全で、しかもとてもシンプルな解決策があるんです。 本当ですか? 今回はAPIキーみたいな秘密の情報を環境変数と
.envファイルを使って安全に管理する方法を一緒に見ていきましょう。 お願いします。 具体的にはどうすればいいんですか? コードからキーをただ消すだけではもちろんアプリが動かなくなってしまいますよね。 おっしゃる通りです。 まず最初のステップは、プロジェクトの中に.envという名前の、ただのテキストファイルを作ることです。 ドットから始まる.envですね。 はい。 そのファイルの中にAPI_KEY=ここに実際のキーを貼り付けという感じで、キーと値の形式で秘密の情報を書きます。 なるほど。 そして次、ここが一番重要なんですが、.gitignoreというファイルにですね。 ああ、Gitにアップロードしたくないファイルを指定するあれですね。 そうです。そのファイルにたった一言.envと書き加える。 たったこれだけです。 え、それだけで? これだけでその秘密が書かれたファイルが間違ってGitHubにアップロードされることは決してなくなります。 なるほど。 仕組みはシンプルですね。 そして最後のステップですが、実際のプログラムの方ではキーを直接書く代わりに環境変数を読み込むという風にコードを書き換えます。 ああ、そうか。 これによって、プログラムの設計図であるソースコードと、絶対に秘密にすべき鍵を完全に分離できるわけです。 なるほど、よくわかりました。 秘密の鍵は.envという、金庫みたいなものに入れておいて、 ええ。 で、.gitignoreでその金庫が人目に付かないように隠しておく、と。 そうです、そうです。 コードの方はその金庫の場所を知っているだけで、中身を直接見る必要はないということですね。 ええ、その通りです。その理解で完璧ですよ。 ソースコードは公開しても安全な状態を保ちながら、秘密の情報は自分のコンピューターの中に留めておく。 いやあ、安心しました。 これがセキュリティの本当に基本的な原則なんです。 ということは、今回の結論としては、APIキーみたいな秘密情報はもう決してハードコーディングしない。 はい。 そして.envと.gitignoreを常にセットで使う、と、これを覚えておけば良いわけですね。 まさにその通りです。 では最後に、あなたに一つちょっと考えてみてほしいことがあります。 何でしょう? このコードと秘密情報を分離するという考え方って、実はAPIキー以外にももっと広く応用できるんですよ。 ほう。 あなたのプロジェクトの中にこの方法で守るべき他の大切な情報はないでしょうか? 例えば、データベースのパスワードとか、外部サービスのURLとか。 一度見直してみるのも良いかもしれませんよ。このコンテンツは Web society で視聴・学習できます。