要約
はい、Postmanは、デフォルトで有効になっているクラウド同期を伴う環境変数にAPIキーやその他の認証情報を保存すると、それらを保存します。これはPostmanがあなたのキーを悪用しているという意味ではありませんが、あなたの認証情報がサードパーティのサーバーに存在することを意味します。このことを理解することで、Postmanのデフォルト設定があなたのセキュリティ要件に合致するかどうか、またApidogのようなローカルファーストのツールがより良い選択肢となるのはいつか、を判断するのに役立ちます。
はじめに
「Postmanは私のAPIキーを保存しているのか?」という疑問は、開発者コミュニティで頻繁に持ち上がります。Redditのr/webdevやr/programmingを検索すれば、セキュリティ監査の指摘やセキュリティチームとの会話がきっかけとなって、同様の質問をしている開発者のスレッドが見つかるでしょう。
この懸念は正当なものです。APIキーは、本質的にあなたのサービスへのパスワードです。決済プロセッサのAPIキーが漏洩すると、不正な請求につながる可能性があります。クラウドプロバイダーのキーが漏洩すると、不正なリソース作成、データ流出、または数万ドルにも及ぶ請求につながる可能性があります。これらのキーを開発ツールに保存する開発者は、そのツールに信頼を置いていることになります。
ほとんどの開発者は、APIキーを公開GitHubリポジトリにコミットすべきではないことを知っています。APIクライアントツールに関する認識は低いのが現状です。Postmanには3000万人以上のユーザーがおり、これは多くの開発者が、認証情報がどこに行くのかを完全に理解せずにツールに保存していることを意味します。
この記事では、APIキーの保存に関する質問に直接的かつ技術的な回答を提供し、それに対して何ができるかを説明します。
直接的な回答:はい、ただし重要な背景があります
Postmanは、以下のシナリオでAPIキーを保存します。
環境変数を使用する場合。 Postmanの環境システムは、リクエストで使用する認証情報を保存するための標準的な方法です。API_KEYという名前の環境変数をsk-abc123...という値で作成すると、クラウド同期が有効な場合にその値はPostmanのクラウドサーバーに同期されます。これはデフォルトの動作です。
コレクション変数を使用する場合。 コレクションレベルで保存された変数も同様に同期されます。
グローバル変数を使用する場合。 グローバル変数はあなたのPostmanアカウントに同期されます。
認証情報がリクエストボディまたはヘッダーに表示される場合。 リクエストヘッダー(例:Authorization: Bearer sk-abc123...)に認証情報をハードコーディングしてコレクションを保存すると、その値が同期されます。
デフォルトで同期されないもの: Postman Vaultに保存された値。Vaultは、Postmanのクラウドに明示的に同期されないローカルの認証情報ストアです。環境変数ではなく、そこに手動で認証情報を保存する必要があります。
「クラウド同期」が実際に意味するもの
Postmanにおけるクラウド同期とは、ワークスペースデータのコピーがPostmanのサーバー上で継続的に維持されることを意味します。これはバックグラウンドで自動的に行われます。「保存」や「同期」をクリックする必要はありません。作業を進めるにつれて、変更はクラウドに伝播します。
その目的は、共同作業と永続性です。ノートPCが故障しても、作業はPostmanのクラウド上にあるため失われることはありません。マシンを切り替えても、コレクションや環境はアカウントに同期されているため、引き継がれます。
セキュリティ上の意味合いは、あなたのノートPC上のアプリに存在すると考えがちなAPIキーが、実際にはあなたのノートPCとPostmanのクラウドの両方に存在しているということです。
Postmanはこのデータを暗号化します。具体的な方式は、保存データにはAES-256暗号化、転送データにはTLSを使用しています。これは標準的で合理的な暗号化です。キーがPostmanのデータベースのどこかに平文で保存されているわけではありません。
しかし、暗号化されているからといってアクセスできないわけではありません。Postmanはサービスを提供するためにデータにアクセスできます。もしあなたのPostmanアカウントが侵害された場合(フィッシング、クレデンシャルスタッフィング、またはPostmanでのデータ漏洩を通じて)、保存されているAPIキーは、アクセス権を得た人物によってアクセスされる可能性があります。
Postmanのプライバシーポリシーがあなたの認証情報について述べていること
Postmanのプライバシーポリシーでは、彼らがあなたのワークスペースのコンテンツについて、データ管理者ではなくデータ処理者であると説明されています。彼らはサービスを提供するためにあなたのデータを処理します。彼らはあなたのワークスペースのコンテンツを第三者に販売することはありません。
彼らのデータ取り扱いに関する文書からの主要なポイント:
目的制限。 Postmanは、ワークスペースのコンテンツをサービス提供と改善のために使用し、マーケティングや再販のためではないと述べています。
サブプロセッサ。 Postmanは、インフラ、サポート、分析のために第三者サービスを利用しています。これらのサブプロセッサは、サービス提供の一部としてあなたのデータを処理する場合があります。Postmanは、彼らのドキュメントでサブプロセッサのリストを公開しています。
政府からの要求。 米国企業として、Postmanは国家安全保障書簡を含む米国法執行機関からの要求に従う義務があります。米国サーバーに保存されたデータは、法的手続きを通じて強制的に開示される可能性があります。
情報漏洩通知。 Postmanの規約には、セキュリティ侵害通知の規定が含まれています。あなたのデータが漏洩に関与した場合、Postmanは契約上あなたに通知する義務があります。
データ削除。 アカウントを削除すると、Postmanはあなたのデータを削除します。バックアップの保持期間は異なります。
これはB2B SaaS企業にとって通常のポリシーです。悪意を示すものではありません。問題は、あなたの組織のセキュリティポリシーがAPI認証情報をサードパーティのクラウドサービスに保存することを許可しているか、そしてPostmanが実際に何をしているかに対してそのポリシーを確認したかどうかです。
ワークスペースの可視性という側面
クラウド同期に加えて、PostmanのAPIキーリスクにはもう一つの側面があります。それはワークスペースの可視性です。
Postmanのワークスペースは、Public、Team、またはPrivateに設定できます。Publicワークスペースは、認証なしで誰でもアクセス可能です。それらはPostmanの公開APIネットワークで検索可能です。
2023年、CloudSEKの研究者は、実際のAPIキー、トークン、その他の認証情報を含む30,000以上の公開Postmanワークスペースを発見しました。RazorpayやNew Relicを含む企業が、公開ワークスペースに機密性の高い認証情報を持っていたことが判明しました。この情報漏洩は侵害によるものではなく、開発者が同じワークスペースに実際の認証情報が環境変数として保存されていることに気づかずに、ワークスペースを公開設定にしたことによるものでした。
これが2番目の、異なるリスクです。Postmanのクラウドセキュリティを信頼しているとしても、ワークスペースの可視性を誤って設定すると、認証情報がインターネット全体に公開される可能性があります。
最もリスクが高いのは誰か
すべての開発者がPostmanの認証情報処理から同じレベルのリスクに直面するわけではありません。以下の場合にリスクが高まります。
Postmanに本番環境の認証情報を保存している場合。 本番環境のキーで本番APIに対してテストを行うということは、本番環境の認証情報がPostmanのクラウドにあることを意味します。これは一般的であり、真に危険です。
チームワークスペースへのアクセス権が広すぎる場合。 50人の会社の全員が同じPostmanチームに所属し、すべてのワークスペースにアクセスできる場合、たった1つのアカウントが侵害されると、すべての認証情報が公開されてしまいます。
規制された業界で働いている場合。 医療、金融、政府、防衛などの組織には、特定のデータをどこに保存できるかについて明確な規則があることがよくあります。PHI(保護対象保健情報)や金融データを保持するシステムへのアクセスを許可するAPIキーをサードパーティのクラウドに保存することは、これらの規則に違反する可能性があります。
APIキーが高い権限を持っている場合。 公開APIの読み取り専用キーはリスクが低いです。クラウドインフラや決済プロセッサの管理者キーはリスクが高いです。情報漏洩の結果は、キーの権限レベルに応じて増大します。
請負業者またはコンサルタントである場合。 クライアントのAPI認証情報を個人のPostmanアカウントに保存するということは、クライアントの認証情報があなたの個人アカウントに紐付けられたサードパーティのサーバーに存在することを意味します。そのアカウントが侵害された場合、クライアントのセキュリティが危険にさらされます。
Postman Vaultが状況をどう変えるか
これらの懸念に対処するために導入されたPostman Vaultは、認証情報の値をローカルマシンに保存します。Vault内の値はPostmanのクラウドに同期されません。リクエストでは{{vault:variable_name}}構文を使用して参照します。
これは重要なセキュリティ改善です。Vaultに保存されたAPIキーはPostmanのサーバーにはありません。
制限事項:これは意図的な行動変更を必要とします。開発者には、環境変数に関する長年の慣れがあります。Vaultは各チームメンバーが自身のローカルVaultを設定する必要があり、これは認証情報がPostmanのチーム機能を通じて共有されないことを意味します。チームメンバーのオンボーディングには、別途秘密共有メカニズムが必要です。
また、Vaultはリクエストヘッダーやボディに直接表示される認証情報、またはコレクション変数やグローバル変数内の認証情報には対処しません。
ローカルファーストツールと代替モデル
ローカルファーストツールとの根本的な違いは、そのデフォルト設定です。Postmanでは、クラウド同期はオフにしない限りオンになっています(さらに、認証情報にはVaultが特に必要です)。Apidogでは、同期をオンにしない限りデータはローカルに保持されます。
設定なしでツールが秘密情報を安全に扱うことを必要とする開発者にとって、これは重要な違いです。Vaultについて知る必要も、設定する必要も、チーム全体に使い方を訓練する必要もありません。安全な挙動がデフォルトの挙動です。
Brunoはさらに進んでおり、すべてをファイルシステム上のファイルに保存します。Apidogのようなクラウドオプションは一切ありません。ローカルオンリーが厳格な要件である場合、Brunoはその問題を完全に解消します。
実践的な推奨事項
現在保存しているものを監査してください。 Postmanの環境を開き、すべての変数をレビューしてください。APIキー、トークン、パスワード、および秘密情報を探してください。Postmanのクラウドに何があるかを把握してください。
認証情報をPostman Vaultに移行してください。 Postmanに留めておく必要がある認証情報については、Vaultに移行してください。チームのドキュメントとオンボーディングプロセスを更新してください。
テストには、スコープが限定され、権限が制限されたキーを使用してください。 開発およびテスト専用に、最小限の必要な権限を持つAPIキーを作成してください。テストキーが漏洩しても、その影響は限定的です。開発ツールで管理者キーや本番キーを使用しないでください。
ワークスペースの可視性を確認してください。 認証情報を含むワークスペースがPublicに設定されていないことを確認してください。すべてのワークスペースをデフォルトでPrivateに設定してください。
脅威モデルを考慮してください。 個人プロジェクトや機密性の低いAPIの場合、Postmanの現在の設定で問題ないかもしれません。本番環境の認証情報、規制対象データ、またはクライアント作業の場合、Postmanでセキュリティを確保するための追加手順は、ローカルファーストツールを使用することで単に回避する方が簡単かもしれません。
よくある質問
Postmanは私のAPIキーやワークスペースデータを販売していますか?いいえ。Postmanのプライバシーポリシーでは、ユーザーのワークスペースコンテンツを販売しないと明記されています。彼らはサービスを提供し、改善するためにそれを使用します。
Postmanアカウントが侵害された場合、攻撃者は私のAPIキーを取得できますか?はい、クラウドに同期される環境変数にそれらのキーが保存されている場合です。このため、認証情報にPostman Vaultを使用し、Postmanアカウントで多要素認証を有効にすることが両方とも重要です。
Postmanは多要素認証をサポートしていますか?はい。Postmanは認証アプリを介したMFAをサポートしています。MFAを有効にすることで、アカウント侵害のリスクを大幅に軽減できます。
Postman Vault内のAPIキーは安全ですか?Postman Vaultに保存されたキーはローカルに保存され、Postmanのクラウドには同期されません。それらはあなたのローカルマシンと同程度に安全です。あなたのマシンが侵害された場合、Vaultの内容はアクセス可能です。しかし、あなたのマシンも侵害せずにPostmanまたはPostmanアカウントを侵害した人物にはアクセスできません。
どのクラウドツールにもAPIキーを保存できない場合、何を使用すべきですか?Brunoは最も制限の厳しいオプションであり、クラウドコンポーネントは一切ありません。ローカルモードのApidogは、すべてをデバイス上に保存します。クラウドツールが全くないチーム環境の場合、Hoppscotchのセルフホスト版またはApidogのセルフホスト版は、サードパーティのクラウドに依存せずに共同作業を可能にします。
PostmanのクラウドからAPIキーを削除するにはどうすればよいですか?Postmanの環境に移動し、認証情報を含む変数を削除し、Vaultへの参照に置き換えてください。過去の同期データを削除したい場合は、ワークスペースと関連するすべてのデータをPostmanアカウント設定から削除する必要があります。
「Postmanは私のAPIキーを収集しているのか」という問いに対する答えは、デフォルト設定および一般的な使用パターンでは「はい」です。それはPostmanが悪い製品であるという意味ではありません。機密性の高い認証情報を保存する前にデータモデルを理解し、セキュリティ要件がそれを求める場合にはVaultまたは代替ツールを使用する必要があるということです。
