この記事は ちゅらデータアドベントカレンダーの15日目の記事 になります。
遅刻しました許してください
はじめに
この記事ではAPIキーとひとくくりにしていますが、いわゆる文字列の羅列によって構成されるようなものを指して、これらのキーを流出させないように、また不正利用されないようにどのように管理していくのが望ましいかをまとめていきたいと思います。
1. 環境変数に保管する
まず文字列で構成される場合だと、プログラムに直接書いておくことはとても危険な保管方法になります。ましてチーム開発ともなってくると、gitなどを用いたコード管理も必要になるため、プログラムからキーが流出してしまうリスクも高くなってしまいます。なのでできる限り環境変数に保管しましょう。
2. 機密情報を扱えるライブラリを使用する
例えば dotenv や direnv のような 機密情報をまとめたファイル(.env
)をプロジェクトやディレクトリごとに管理することができるライブラリです。
.env
については多くの言語の間でも共通認識で管理していることが多いためぜひとも推奨したいです。
3. サービスごとの制限を活用する
例えばGoogle Cloud Platformに属するAPIキーではキーを利用する元を制限することができたり、利用できるAPIのなかでも部分的に機能を使うための権限だけを与えたりするといったことが可能です。
ここをキッチリしておくことでよりセキュアにAPIキーを管理することができます。
まとめ
できる人には当たり前の考え方だったりしますが、初めて聞くような管理方法があったならぜひ皆さんの開発に取り込んでいただければと思います。
明日、17日目は @yamachaaan さんが spaCy 業務で使える自然言語処理ライブラリ について紹介してくれます!