質問: 自分の API キーが他の人の GitHub 検索の一部にならないようにするにはどうすればよいですか?
回答: API キーをコードに直接保存することは、潜在的なセキュリティ リスクのため、通常は推奨されません。 コードが共有されたり、一般にアクセス可能になったりすると、API キーを見た人は誰でもそのコードを使用できるようになり、悪用やセキュリティ侵害につながる可能性があります。
API キーを安全に保存するには、いくつかの方法があります。
- 環境変数: API キーをマシン上の環境変数に保存し、コードからこれらの変数にアクセスできます。 この方法には、キーがコードに含まれないようにするという利点があります (キーはコードが実行される環境内にあります)。 これは、ローカル マシン、開発サーバー、運用サーバーなどの環境ごとにキーが異なる可能性があることも意味します。
- 構成ファイル: コード リポジトリに含まれていない別の構成ファイルに API キーを保存することもできます。 このファイルは .gitignore ファイルがリポジトリにコミットされないようにします。 不正なアクセスを防ぐために、この構成ファイルに適切なファイルレベルの権限を必ず追加してください。 コードでは、このファイルから API キーを読み取ります。
- 機密管理システム: 大規模なアプリケーションや機密性の高いデータの場合は、 秘密管理システム。 これらは、AWS Secrets Manager、HashiCorp の Vault、Google の Secret Manager などの特殊なツールで、API キーなどのシークレットへのアクセスの管理に役立ちます。
- 環境固有の構成サービス: Heroku や Netlify などのプラットフォームには、API キーを保存するために使用できる環境変数を設定するための特定の機能またはサービスがあります。
- 暗号化されたストレージ: API キーをデータベースまたは他のストレージ システムに保存する必要がある場合は、暗号化する必要があります。 そうすれば、たとえ誰かが ストレージ システムへのアクセスを取得します、暗号化キーがなければキーを使用できません。
これらのソリューションの中で最もオーバーヘッドが低い最初の XNUMX つをセキュア コーディングで実装する方法を見てみましょう。 ここではサンプル言語として Python を使用しましたが、どの言語でも同様の概念があります。 Python の利点はそのシンプルさと使いやすさであり、その優れたデータ処理機能と相まって、ほとんどの用途に最適です。
API キーの保存に環境変数を使用するには
環境変数を使用すると、API キーなどの機密情報をソース コードの外部に保存できます。 これらは実行時にアプリケーションにアクセスでき、さまざまな環境 (開発、ステージング、実稼働など) で簡単に構成できます。
まず、アプリケーションが実行されているシステムまたはプラットフォームに環境変数を設定します。 Unix ベースのシステムでは、次のコマンドを使用して環境変数を設定できます。 export コマンド:
% エクスポート API_KEY=
次に、アプリケーションのコード内の環境変数にアクセスします。 たとえば、Python では、次のコマンドを使用して環境変数の値にアクセスできます。 os モジュール:
% python import os api_key = os.environ['API_KEY']
API キーの保存に外部設定ファイルを使用するには
初心者の開発者またはデータ サイエンティストが API キーを保存するもう XNUMX つの方法は、外部構成ファイルを使用することです。 これらは非常に便利です。 ただし、次を使用してリポジトリからそれらを除外する必要があります。 .gitignore または同等のもの。
まず、次のような構成ファイルを作成します。 config.jsonを作成し、そこに API キーを保存します。
json { "api_key": " " }
次に、設定ファイルをプロジェクトの .gitignore (または同等のもの) を使用して、バージョン管理システムによって追跡されないようにします。
最後に、アプリケーションのコードに構成ファイルをロードして、API キーにアクセスします。 たとえば、Python では、次のように JSON 構成ファイルをロードして API キーにアクセスできます。
open('config.json') を f として json をインポートします
config =load(f) api_key = config['api_key']
API をロックアップする
環境変数または外部構成ファイルを使用すると、 API キーを偶発的な公開から保護します、機密情報の管理が簡素化され、さまざまな環境に合わせてさまざまな構成を維持することが容易になります。 不正なアクセスを防ぐために、環境変数と構成ファイルに適切なアクセス制御を適用する必要があります。
プロジェクトの複雑さ (および重要性) が増すにつれて、機密アイテムを保存するための機密管理システムや環境固有の構成サービスなどの固有の機能を備えたプラットフォームに移行することをお勧めします。 ただし、これらの簡単な解決策は、より安全な足場から始めるのに役立ちます。
- SEO を活用したコンテンツと PR 配信。 今日増幅されます。
- EVMファイナンス。 分散型金融のための統一インターフェイス。 こちらからアクセスしてください。
- クォンタムメディアグループ。 IR/PR増幅。 こちらからアクセスしてください。
- プラトアイストリーム。 Web3 データ インテリジェンス。 知識増幅。 こちらからアクセスしてください。
- 情報源: https://www.darkreading.com/edge/how-do-i-protect-my-api-keys-from-appearing-in-github-search-results-
- :持っている
- :は
- :not
- :どこ
- $UP
- a
- できる
- 虐待
- アクセス
- アクセス可能な
- 加えます
- 追加されました
- 利点
- 許す
- また
- しかし
- an
- および
- どれか
- 誰も
- API
- 申し込み
- 適切な
- です
- AS
- At
- AWS
- BE
- になる
- になる
- 開始
- さ
- より良いです
- 違反
- by
- 缶
- 機能
- コード
- コーディング
- コミットした
- 複雑さ
- コンセプト
- 設定された
- 検討
- コントロール
- controls
- 作ります
- データ
- データサイエンティスト
- データベース
- Developer
- 開発
- 異なります
- 直接に
- do
- 原因
- 間に
- e
- 緩和する
- 使いやすさ
- 容易
- 簡単に
- どちら
- ほかに
- 暗号化
- 強制します
- 確保
- 環境
- 環境
- 同等の
- 等
- エーテル(ETH)
- さらに
- EVER
- 例
- export
- 外部
- 特徴
- File
- 名
- 手ごわい
- から
- 一般に
- GitHubの
- でログイン
- 育ちます
- ハンドリング
- 持ってる
- 助けます
- 認定条件
- How To
- しかしながら
- HTTPS
- i
- 理想
- if
- 実装する
- import
- 重要性
- in
- 含まれました
- 情報
- 生来の
- IT
- リーディングシート
- ITS
- JPG
- JSON
- キープ
- 保管
- キー
- キー
- 言語
- より大きい
- 主要な
- ような
- 負荷
- ローカル
- 見て
- 機械
- 維持する
- make
- 管理します
- 管理
- マネージャー
- 五月..
- 手段
- 方法
- かもしれない
- モジュール
- 他には?
- 最も
- my
- 必要
- of
- オフ
- on
- or
- OS
- その他
- でる
- 外側
- 部
- パーミッション
- プラットフォーム
- プラットフォーム
- プラトン
- プラトンデータインテリジェンス
- プラトデータ
- 潜在的な
- :
- 防ぐ
- 生産
- プロジェクト
- 適切な
- 守る
- 公然と
- Python
- クイック
- 読む
- 推奨される
- 倉庫
- 結果
- リスク
- ランニング
- s
- 科学者
- を検索
- 秘密
- 安全に
- しっかりと
- セキュリティ
- セキュリティリスク
- 見て
- 敏感な
- 別
- サービス
- セッションに
- 設定
- いくつかの
- shared
- すべき
- 同様の
- 単純
- 簡素化する
- ソリューション
- 誰か
- ソース
- ソースコード
- 専門の
- 特定の
- ステージング
- start
- ストレージ利用料
- 店舗
- そのような
- システム
- 取る
- それ
- それら
- その後
- ボーマン
- 彼ら
- この
- 〜へ
- 一緒に
- 豊富なツール群
- 2
- つかいます
- 中古
- 使用されます
- 値
- さまざまな
- ボールト
- Ve
- バージョン
- バージョン管理
- 非常に
- 、
- 仕方..
- 方法
- which
- 誰
- 意志
- 無し
- 勝った
- でしょう
- 貴社
- あなたの
- ゼファーネット