Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Postman Vaultを使った秘密情報の安全な管理

草薙昭彦
February 02, 2025

Postman Vaultを使った秘密情報の安全な管理

サービスでAPIを活用しようとした時に、必ず考慮しなければいけないのがセキュリティとデータプライバシー。Postmanで扱う秘密情報を不正なアクセスや漏洩から守るベストプラクティスは以前からありましたが、2024年5月リリースのPostman v11で導入されたPostman Vaultを使えば、誰もが手間をかけずに安全に秘密情報を扱うことができます。Postman API Night Tokyo 2025 Winterでの発表資料です。

草薙昭彦

February 02, 2025
Tweet

More Decks by 草薙昭彦

Other Decks in Technology

Transcript

  1. Postman で秘密情報を扱うシーン @postman_japan • API 認証・認可 ◦ API キー、アクセストークン、・・・ •

    API で個人情報 PII や業務情報を送信す るとき ◦ 顧客・社員の個人情報、クレジットカード 情報、・・・ これらの情報をパブリッククラウドに 送信することを制限している企業は多い
  2. Postman ユーザーからよく聞かれる質問 Top 10 @postman_japan 1. Postman はどこでデータをホストしていますか? 2. どのようなデータが

    Postman クラウドに保存されますか? 3. 個人や機密データが Postman クラウドに送信されないようにするための指針はありますか? 4. Postman で API キーや認証情報を使用する際の指針を教えてください 5. Postman でコレクションや OpenAPI Spec をシームレスにインポートする方法はありますか? 6. Postman でチームコラボレーションをするためのベストプラクティスを教えてください。 7. Postman を使ったテストのベストプラクティスは何ですか? 8. Postman を使って API コレクションのドキュメントを作成できますか? 9. Postman は、関係者がアセットを発見し、利用するための内部ポータルを公開していますか? 10. 最後に、Postman が企業に提供する主な機能を教えてください https://blog.postman.com/top-10-questions-from-postman-users/
  3. Postman クラウドに保存されるデータ @postman_japan • コレクションや環境など、ユーザーが編集可能な データは、すべて Postman クラウドに同期され る ◦

    Postman クラウド内では暗号化され格納 • 例外として、環境変数・グローバル変数の現在値 Current value) と Postman Vault の値はクラ ウドには同期されない ⚠ Postman の共有責任モ デルでは、ユーザー側も 機密データの取り扱いに ついて責任を持つ必要 がある ワークスペースの公開範囲、ア クセス権の設定、API キーの管 理、アカウントの管理などは ユーザーが行う 同期されない 同期される
  4. データがクラウドに送信されないようにする指針 @postman_japan • リクエストにダミーデータを使用 ◦ フェイカーライブラリ を使用して、テスト用にランダムなサンプルデータを生 成 フェイカーライブラリとは? 名前・住所・電話番号・メールアドレス

    など、さまざまな形式のダミーデータ を自動生成するライブラリ Postman では動的変数でフェイカーを利 用できる パラメーターやボディ: {{$randomPhoneNumber}} スクリプト: pm.variables.replaceIn('{{$randomFirs tName}}') 例:faker-js
  5. API キーや認証情報を使用する際の指針 @postman_japan • 2024年5月より前(Postman v10 より前) ◦ 他人に見られないようにする(マスキング) ▪

    「シークレット 」タイプの変数 ◦ 他人に共有できないようにする ▪ 環境変数の現在値に値を保存し、初期値にはダミーか説明を格納する
  6. Postman Vault の基本 @postman_japan • アクセストークン、API キーなどの機密データを安全に Postman のローカルイ ンスタンスに保存して再利用できるしくみ

    • 初めて Vault を使う際には、Vault にアクセスするための Vault キーを生成して 安全な場所に保存する必要がある ◦ Vault キーは OS のパスワードマネージャー にも保存できる ⚠ コレクションランナーのスケジュール実行、モニ ター、Postman CLI、Newman では利用不可 ⚠ Postman からサインアウトすると、Vault に保存さ れたシークレットは削除される
  7. Vault シークレットの使い方 @postman_japan パラメーターや認可タブのフィールドで指定 マウスを当てると Vault のタグと使われる値が 確認できる 空または未解決の Vault

    シークレットの場合 赤くハイライトされるので、マウスを当ててその 場限りの値を入力するか、入力した値を Vault に保存することができる
  8. Vault シークレットの使い方(スクリプトから) @postman_japan 1. Vault の Settings でスクリプトでのサ ポートを有効にする 2.

    スクリプトを書く console.log(await pm.vault.get(secretKey)); 3. スクリプト実行時に出るダイアログで Vault アクセスを許可する 4. 結果を得る "*****"
  9. Postman Vault を推奨する理由 @postman_japan • シークレットは暗号化されてからローカルに保存される • シークレットはすべてのワークスペースで利用可能 • シークレットは

    Postman コンソールに記録される際にマスクされる • シークレットは有効/無効にすることができ、 安全でありながら柔軟性がある • シークレットは特定のドメインに対してのみ 解決するように制限することができ、不用意 に間違った API に紐付けてシークレットを 共有することを防ぐ
  10. Postman Vault インテグレーション @postman_japan • 各ユーザーがローカル環境にシークレットを格納するための操作の必要もなくな るため、さらに安全 • 外部 Vault

    の認証情報や取得したシークレットは、Postman のローカルインスタ ンスや Postman クラウドには保存されない ◦ Postman を再立ち上げしたり認証期限が切れたら、再度外部 Vault の認 証をやり直す必要がある • 動作環境 ◦ Enterprise プラン + Advanced Security Administration アドオン ◦ Postman デスクトップアプリのみ
  11. まとめ @postman_japan • API キーや認証情報などの機密データは Postman Vault に格納して安全に使 おう •

    システム全体のセキュリティレベルは、一番弱い部分のレベルに下げられてしま います。機密データの管理は、すべてのユーザーの責任で取り組みましょう