Code With Me セキュリティに関する FAQ
Code With Me は、コードを共同で操作できる強力なツールです。この機能には、コードとアクセスレベルを安全に保つ責任が伴います。Code With Me セッションでコンピューターへのアクセスを許可するときに発生する可能性のある質問を以下に示します。
どのようなデータが JetBrains のサーバーを通過していますか?
プロジェクトデータは、エンドツーエンドで暗号化された JetBrains のサーバーを通過します。エンドツーエンド暗号化は、ホストとゲストがセキュリティコードが両端で一致することを確認した場合にのみ安全です。それ以外の場合、エンドツーエンド暗号化は MitM の影響を受けやすくなります。
ローカル IP アドレス、プロジェクト名、ユーザー名は、JetBrains がホストとゲストの間でセッションを確立できるようにするために使用されるため、暗号化なしで共有されます。新しい Code With Me セッションを開始すると、ホストは TLS1.2 + を介して JetBrains サーバーと通信します。
Code With Me は、JetBrains によって作成されたオープンソースの分散プロトコル(英語)を介して通信し、エンドツーエンドの暗号化に TLS1.3 を使用します。
データを JetBrains サーバー経由で送信したくない場合は、オンプレミスサーバー(英語)を構成できます。
JetBrains はどのプロジェクトデータにアクセスしますか?
JetBrains は、ローカル IP アドレス、プロジェクト名、ユーザー名にアクセスします。JetBrains は、ソース、プロジェクトファイル、構成ファイルなどのプロジェクトコンテンツに関連する情報にアクセスしません。これは、この情報がエンドツーエンドで暗号化されたサーバーを流れるためです。
ライブセッション中にどのようなデータが収集されますか?
JetBrains は、JetBrains サーバーをエンドツーエンドで暗号化して情報が流れるため、Code With Me セッション中に共有されるコードのデータをインスペクションまたは収集しません。
ゲストのマシンにローカルに保存されているファイルはありますか?
いいえ、共有コードはホストのマシンに存在し、クラウドやゲストのコンピューターにアップロードまたは保存されません。
ホストとゲストの両方が、ユーザー名、接続が確立されたリモートアドレス、キャレットの動き、入力されたシンボル、呼び出されたアクション、ファイルの内容の一部、開かれたファイルなど、セッションに関する詳細情報を含むログファイルをローカルに収集して保存できます。ファイルパスなど。
ゲストはどのファイルにアクセスできますか? それらは特定の作業ディレクトリに制限されていますか?
ホストがアクセス許可を与えている場合、ホストのプロジェクトのさまざまな部分へのアクセス、コードの実行、アクティブなセッション中のターミナルツールウィンドウでの作業に制限はありません。
プロキシの背後で Code With Me を使用するにはどうすればよいですか?
ローカルネットワークで作業している場合は、プライベートオンプレミスサーバー(英語)を使用してプロキシ制限をバイパスできます。
別の方法として、許可リストに次の URL を追加できます。
https://code-with-me.jetbrains.com
https://download.jetbrains.com
https://download-cf.jetbrains.com
wss://codewithme-relay-1.europe-north1-gke.intellij.net
wss://codewithme-relay-2.europe-north1-gke.intellij.net
wss://codewithme-relay-1.us-east1-gke.intellij.net
wss://codewithme-relay-2.us-east1-gke.intellij.net
wss://codewithme-relay-1.asia-northeast1-gke.intellij.net
wss://codewithme-relay-2.asia-northeast1-gke.intellij.net
wss://codewithme-relay-1.southamerica-east1-gke.intellij.net
wss://codewithme-relay-2.southamerica-east1-gke.intellij.net
wss://codewithme-relay-1.asia-south1-gke.intellij.net
wss://codewithme-relay-2.asia-south1-gke.intellij.net
安全な Code With Me セッションをホストとして実行するにはどうすればよいですか?
Code With Me セッションへの招待リンクは、信頼できる人とのみ共有してください。知らないゲストやセッションについて確信が持てないゲストを受け入れないでください。パスワードやユーザー名など、コード内の機密情報をハードコードしないでください。セッションで付与するアクセスのレベルは、ゲストに対する信頼のレベルと一致している必要があります。
ホストはどのようにゲストにセッションへの参加を許可しますか?
ホストは、Code With Me セッションの招待リンクを作成し、ゲストに送信します。ゲストが両端で一致するセキュリティコードを持つリンクを受け入れると、ホストは Code With Me セッションへのアクセスを確認します。確認後にのみ、ゲストはセッションに参加できます。
ホストは何を制御できますか?
ホストとして、セッション中にゲストが表示およびアクセスできるものを制御できます。ゲストがセッションにアクセスした後でも、ゲストを削除できます。特定のファイルをアクセスから隠し、コンピューター上のターミナルへのアクセスを制御できます。
招待リンクを作成する場合、招待リンクを送信する前にすべてのゲスト権限を構成できます。詳細については、権限セクションを参照してください。
Code With Me は、IDE の一部が特定のゲストに対してこれらのファイルを非表示にできるようにするファイルの非表示機能を提供します(たとえば、IDE はこれらのファイルを表示または表示しません)。この機能は、ゲストアクセスのレベルに関係なく使用できます。ただし、これは保証された制限としてではなく便宜上提供されており、ゲストによるコマンドラインインターフェース機能の使用に関連するアクセスの可能性を排除するものではありません。
ホストは、セッション内の一部のゲストのアクセス許可を変更できますか?
はい。セッションの前にすべてのゲストのアクセス許可が構成されている場合でも、ホストは Code With Me セッション中に個々のゲストのアクセス許可を変更できます。
ホストはフルアクセスモードでゲストのアクティビティを制限できますか?
はい、ホストは特定のファイルへのアクセスを非表示にし、Code With Me セッション中にアクセスを制限する個々のゲストのアクセス許可を変更できます。
ホストは「非表示」機能を使用してファイルを保存できるため、標準的なアクセス手段では簡単にアクセスしたり見つけられたりすることがなくなります。各ゲストは独自のログを収集しますが、Code With Me では他のストレージ機能は提供されません。ただし、コーディングセッションとデータの記録にサードパーティアプリケーションを使用できることに注意してください。
音声 / ビデオ呼び出しは暗号化されていますか?
音声呼び出しとビデオ呼び出しはエンドツーエンド暗号化(英語)ではありません。
Code With Me セッションでオーディオまたはビデオにアクセスできるのは誰ですか?
Code With Me セッション中は、ホストと承認されたゲストのみがオーディオとビデオにアクセスできます。
Code With Me は、セッション後にビデオ、オーディオ、チャットの記録を保存しますか?
いいえ、Code With Me はビデオ呼び出しや音声呼び出しを保存せず、セッションの終了後にチャットの記録を保持しません。
許可されていないゲストは Code With Me セッションに参加できますか?
各ゲストは、Code With Me セッションに参加する前に、ホストの承認を待つ必要があります。
ホストにはゲストごとにセキュリティコードが提供されます。ただし、ホストはゲストの身元を確認する責任を負います。
クライアントはセッション中にどのような種類のデータを保持しますか?
Code With Me クライアントは、選択された設定とともに、各ゲストのマシンに保持されます。
コミュニケーションはどのように確立されますか?
ホストとゲストは、https://code-with-me.jetbrains.com(英語) の API エンドポイントを介して Code With Me セッション情報を交換します
その後、ゲストとホストは、成功するまで次の方法で接続を試みます。
ホストは 5990-65536 範囲で最初に使用可能な TCP ポートを開き、ゲストが接続するのを待ちます(直接接続)。
ホストとゲストはランダムな UDP ポートをリッスンし、ピアツーピア接続(p2p 接続)の確立を試みます。
一般的な説明については、UDP_hole_punching(英語) を参照してください。
これは、VoIP クライアントが使用するのと同じ方法です。(Skype、Slack、Google Meet など)
最後の手段として、ホストとゲストは JetBrains が提供するリレーを介して通信しようとします。
音声呼び出しとビデオ呼び出しが別のルートを経由しています。ビデオ / ボイスチャットサポートは Jitsi ビデオ会議テクノロジー(英語)によって提供されます。
ホストとゲストがピアツーピア接続を確立しようとしています。
失敗した場合、サードパーティが提供する TURN サーバーを使用しようとします。
p2p と TURN サーバー接続の両方のトラフィックは、エンドツーエンドで暗号化されます。
2 人以上の呼び出しの場合、ビデオ / 音声トラフィックは JetBrains が提供するサーバーを経由します。
関連ページ:
Code With Me 入門
PyCharm を使用すると、ローカルで実行されているプロジェクトを誰とでも共有できる Code With Me プラグインを使用できます。Code With Me を使用すると、リアルタイムのコラボレーション、コードの編集、サーバーの共有、デバッグセッションの実行を行うことができます。セッションの概要については、次のビデオを参照してください。Code With Me 共有セッションには、ホストと 1 人以上のゲスト間の相互作用が含まれます。次の基本的なシナリオのいずれかでセッションを開始できます。ペア...
Code With Me に関する FAQ
Code With Me とは何ですか? Code With Me は、IntelliJ IDEA およびその他の JetBrains IDE のプラグインであり、同僚とリアルタイムでコードを共同で確認、編集、デバッグできます。Code With Me が提供するサービスは、IntelliJ IDEA Ultimate エディションとコミュニティエディションの両方で利用でき、IntelliJ IDEA 早期アクセスプログラム(EAP)中は無料です。Code With Me プラグインはこちらから入手でき...
Code With Me に関する FAQ
Code With Me とは何ですか? :Code With Me は、PyCharm およびその他の JetBrains IDE (現時点では Rider と DataGrip を除く) 用のプラグインで、同僚とリアルタイムで共同でコードをレビュー、編集、デバッグできるようにします。Code With Me が提供するサービスは、PyCharm Professional エディションと Community エディションの両方で利用できます (Community バージョンではセッション時間制限あ...
Code With Me セキュリティの概要
Code With Me は、コードを共同で操作する機能を提供する強力なツールです。その機能には、コードとアクセスレベルを安全に保つ責任が伴います。接続ワークフロー:Code With Me を使用して相互に接続したい 2 人のユーザーがいるとしましょう。ユーザー(ホスト)が Code With Me セッションの開始アクションをクリックして、ローカル IDE でセッションを作成します。ローカル IDE は、セッションの作成に関する通知をロビーサーバーに送信し、セッション接続を要求します。登録後、...