🪵

CursorのPrivacy Modeについて

に公開

はじめに

2025年に入ってから話題になっているCursorについて、そのプライバシーポリシーをしっかりと確認する機会がありましたのでこの記事でも共有してみようと思います。

Cursorは、AIを活用したコード補完や自動生成機能を備えたコードエディタです。ChatGPTやClaudeなどの大規模言語モデルと連携し、プログラミングをサポートします。しかし、AIツールを使う際にはプライバシーとセキュリティの懸念は常につきもの。特に業務利用では、プライバシーポリシーの理解が欠かせません。

https://www.cursor.com/ja

プライバシーポリシー

Cursorのプライバシーポリシーのページはこちらになります。
今回は主にPrivacy Modeについての内容にフォーカスを当てています。
「View Full Policy」をクリックして全文を把握する必要がありますが、本記事では省略している点にご注意ください。

https://www.cursor.com/ja/privacy

生成AIに要約させた内容はこちらです。

プライバシーポリシーの要約

Cursor(AIコードエディタ)のプライバシーポリシーの要約です:

主な内容

  • 「プライバシーモード」を有効にすると、データは一切保持されず、コードは当社や第三者によって保存・学習されることはありません。
  • 「プライバシーモード」をオフにすると、テレメトリ、使用データ、コードベースデータが収集されます。これには、プロンプト、エディタアクション、コードスニペット、リポジトリ内のファイル、コードの編集内容が含まれます。これらのデータはAI機能の評価と改善に使用されます。バージョン0.49.0以前にオンボーディングを完了した場合、コードベース全体が保存・学習されることはありません。
  • 「プライバシーモード」がオフで自動補完を使用する場合、推論プロバイダーのFireworksも推論速度向上のためにプロンプトを収集することがあります。

その他の注意点

  • APIキーを使用しても、リクエストは当社のバックエンドを経由します(最終的なプロンプト構築が行われる場所)。
  • コードベースのインデックス作成を選択すると、Cursorはコードベースを小さなチャンクでサーバーにアップロードして埋め込みを計算しますが、すべてのプレーンテキストコードはリクエスト終了後に存在しなくなります。コードベースの埋め込みとメタデータ(ハッシュ、ファイル名)はデータベースに保存される場合がありますが、プライバシーモードでは、コード自体は保存されません。
  • レイテンシーとネットワーク使用量を削減するため、ファイルの内容を一時的にサーバーにキャッシュします。ファイルはクライアント生成の一意のキーで暗号化され、これらの暗号化キーはリクエスト中のみサーバーに存在します。キャッシュされたファイル内容はすべて一時的なもので、永続的に保存されることはなく、プライバシーモードが有効な場合はトレーニングデータとして使用されることはありません。

プライバシーモード(privacy mode)

業務や会社でCursorを利用する場合はprivacy modeをオンにすることは必須になるかと思います。

webページでログイン後左側がこのような表示になっていればOKです。

ちなみに、Businessプランでは、チーム全体に対してプライバシーモードを強制することができるため、個々のチームメンバーがプライバシーモードを無効にしてしまうリスクを回避できます。

このようにPrivacy modeの設定変更ができなくなります。

APIキーを使用する場合

Cursorではこのように自分たちで用意したAPIキーを利用することが可能です。

しかしながら、APIキーの有無にかかわらず、リクエストはCursorのバックエンドインフラを経由して各AIサービスにアクセスしています。
リクエストを直接AIサービスにアクセスしているのではありません。

ですのでAPIキーを自分たちで用意したものを設定したとしてもCursor側のインフラへのアクセスが引き続きおこなわれるという点に注意が必要です。

Privacy modeを設定していれば安心なのか?

https://www.cursor.com/ja/security

Cursorのsecurityページには以下のように書かれています。

Note that code data is sent up to our servers to power all of Cursor's AI features (see AI Requests section), and that code data for users on privacy mode is never persisted (see Privacy Mode Guarantee section).
コードデータは、Cursor のすべての AI 機能を実行するために当社のサーバーに送信されます(「AI リクエスト」セクションを参照)。また、プライバシーモードのユーザーのコードデータは永続化されません(「プライバシーモード保証」セクションを参照)。

つまりコードデータは一度Cursor側のインフラに送られるが、保存はしてないということですね。

さらにprivacy-mode-guaranteeのセクションを見てみましょう
https://www.cursor.com/ja/security#privacy-mode-guarantee

Cursorのプライバシーモードでは、コードデータがサーバーやサブプロセッサーに平文で保存されないことを保証しています。このモードは無料・Proユーザー共に有効にでき、チームメンバーには強制適用されます。リクエスト処理中はメモリ内で短時間データが可視化されますが、ファイルキャッシングはクライアント生成キーで暗号化されます。技術的には「x-ghost-mode」ヘッダーに基づき専用インフラで処理され、ユーザーがチームに参加してから最大5分以内にプライバシーモードが保証されます。

要約するとこのような内容です。

Privacy Mode Guaranteeの直訳

原文の忠実な翻訳です

プライバシーモード保証

プライバシーモードは初期設定時または設定で有効にできます。有効にすると、コードデータが当社のサーバーまたはサブプロセッサーで平文として保存されないことを保証します。プライバシーモードは誰でも(無料またはProユーザー)有効にでき、チームのメンバーであるユーザーには、デフォルトで強制的に有効になります。

私たちはプライバシーモード保証を非常に真剣に受け止めています。Cursorユーザーの約50%がプライバシーモードを有効にしています。プライバシー保証についての詳細は、プライバシーポリシーでご確認いただけます。

プライバシーモードが有効な場合、コードデータは当社のサーバーまたはサブプロセッサーに保存されません。コードデータはリクエストの存続期間中、サーバーのメモリ内で見ることができ、長時間実行されるバックグラウンドジョブ、KVキャッシング、または一時ファイルキャッシングのためにわずかに長い期間(数分から数時間のオーダー)存在する可能性があります。ファイルキャッシングについては特に、すべてのデータはクライアント生成のキーで暗号化され、リクエスト期間中のみ保持されます。プライバシーモードユーザーから提出されたコードデータがトレーニングに使用されることは決してありません。

ユーザーのプライバシーモード設定はクライアントに保存されます。サーバーへの各リクエストには「x-ghost-mode」ヘッダーが含まれます。プライバシーモードユーザーを誤って非プライバシーモードユーザーとして扱うのを防ぐため、ヘッダーが欠けている場合は常にユーザーがプライバシーモードであると仮定します。

サーバーへのすべてのリクエストはまずプロキシに到達し、どの論理サービスがリクエストを処理すべきかを決定します(例えば「チャットサービス」または「Cursorタブサービス」)。各論理サービスは、ほぼ同一の2つのレプリカで構成されています:プライバシーモードリクエストを処理する1つのレプリカと、非プライバシーモードリクエストを処理する1つのレプリカです。プロキシは「x-ghost-mode」ヘッダーの値をチェックし、適切なレプリカにリクエストを送信します。レプリカ自体も冗長性のためにヘッダーをチェックします。デフォルトでは、プライバシーモードレプリカからのすべてのログ機能はノーオペレーションであり、「infoUnrestricted」のように接尾辞が付いている場合を除き、これらは潜在的なコードデータやプロンプトが添付されないよう慎重に確認しています。バックグラウンドタスクを生成するリクエストについても、プライバシーモードと非プライバシーモードのために並列のキューとワーカーレプリカを同様に持っています。この並列インフラにより、プライバシーモード保証とその偶発的なミスやバグに対する耐性に自信を持っています。

チームレベルのプライバシーモード強制のために、各クライアントは5分ごとにサーバーに接続し、ユーザーがプライバシーモードを強制するチームに所属しているかをチェックします。そうである場合、クライアントのプライバシーモード設定を上書きします。クライアントによるプライバシーモードの接続が何らかの理由で失敗するケースを防ぐために、サーバーもホットパスで、ユーザーがプライバシーモードを強制するチームの一部であるかをチェックし、そうである場合はヘッダーが別の内容を示していても、リクエストがプライバシーモードであるかのように扱います。レイテンシーに敏感なサービスでは、この値を5分間キャッシュし、キャッシュミスが発生した場合はユーザーがプライバシーモードであると仮定します。総じて、これはユーザーがチームに参加した場合、遅くともチームに参加してから5分後には、プライバシーモードが保証されることを意味します。

Cursorのプライバシーモード保証の技術的なポイントを簡潔にまとめると以下のようになります

  1. プライバシーモード有効時は、コードデータがサーバーやサブプロセッサーに平文で保存されない
  2. リクエスト処理中のみメモリ内でデータが可視化される
  3. 一時的なファイルキャッシングはクライアント生成のキーで暗号化され安全に保管
  4. 「x-ghost-mode」ヘッダーを使用し専用インフラでリクエストを処理
  5. プライバシーモードとそうでないリクエストは分離された並列インフラで処理される

これらの技術的対策により、プライバシーモードを有効にしていればソースコードが外部流出するリスクに対して一定の安全性は確保できると考えて良いのではないでしょうか?

まとめ

この記事では、Cursorのプライバシーポリシーとプライバシーモードについて詳しく見てきました。エンジニアツールを選ぶ際には、機能性や使いやすさだけでなく、プライバシーポリシーをしっかり確認することが大切ですね。

Cursorのプライバシーモードを有効にすれば、コードデータが永続的に保存されない保証があり、企業内での利用でも一定の安全性が確保できることがわかりました。特にBusinessプランでは、チーム全体にプライバシーモードを強制できる機能があるので、組織のセキュリティポリシーを確実に守れる点は魅力的です。

どんなツールを使う場合でも、プライバシーポリシーを読んで理解することは重要です。特に生成AIツールは日々進化していて、ポリシーも更新される可能性があるので、定期的に確認する習慣をつけるといいでしょう。

最後に、Cursorに限らず、コードやデータを扱うツールを選ぶときは、「便利さ」と「セキュリティ」のバランスを考えて、自社のセキュリティ基準に合わせて判断することが大事です。プライバシーポリシーを読むのは面倒かもしれませんが、将来的なリスクを避けるための大切な一歩と言えます。

Discussion