IntelliJ IDEA 2024.1 ヘルプ

セキュリティモデル

作業にリモートサーバーへのアクセスが含まれる場合、ローカルマシンとバックエンド間の接続が保護され、やり取りされるデータが十分に暗号化されていることを確認する必要があります。

リモート開発セキュリティモデルを使用すると、作業のほぼすべてのセキュリティ面を制御できます。

サーバー側とクライアント側の両方で実行される IDE コンポーネントがあります。バックエンドによってロードされた情報は、それ以上のユーザー操作なしでクライアントに転送できます。また、クライアントに提供されたすべての情報は、ユーザー操作なしでサーバー側プロセスに転送できます。

接続セキュリティ

JetBrains Client と IDE バックエンド間の通信は、安全な SSH トンネルで実行される場合でも、1.3 TLS でエンドツーエンド暗号化されます。JetBrains は TLS 1.3 を使用し、それに加えて SSH セキュリティ接続が使用されます。

リモート開発ではルート証明書からの信頼階層がないため、中間者攻撃がないことを確認するために追加の手動チェックが実行されます。

通常の接続リンクは次のようになります。

tcp://0.0.0.0:5990#jt=71b0a870-e082-4e6b-aaf6-757398801cd2&p=IU&fp=17DC5CAB759FD8BB4298AF1116EA7D5E1F1D3C4D520CFC99748DBD0A88840B36&cb=223.2951&jb=17.0.4b535.2
  • 接続時に、クライアントはホスト証明書のフィンガープリントが正確に fp であることを確認します。ホストが正しいことをクライアントに対して検証します (サードパーティーにハイジャックされていない)

  • 接続時に、ホストは、クライアントがワンタイム接続トークン jt を提供することを確認します。このトークンを知らないこのポートの接続を拒否します。

この接続を介して認証情報を転送したり、パブリックスペースを介してこの接続データを渡したりすることは安全です。Code With Me も同様です。

ログと統計の収集

JetBrains は、ユーザーの権限に基づいて統計とログを収集します。デフォルトでは、データ共有はすべてのリリースバージョンで無効になっており、IntelliJ IDEA のプレビューおよび早期アクセスプログラム (EAP) バージョンでは有効になっています。

データ共有を構成する

JetBrains が IntelliJ IDEA の操作時に使用する機能とアクションに関する匿名の統計を収集できるようにするには、使用統計情報を送信するチェックボックスを選択します。

Data Sharing dialog

JetBrains が IntelliJ IDEA を操作するときに使用する機能とアクションに関する統計を収集できるようにするには、EAP バージョンの使用時に使用統計を送信するチェックボックスを選択します。

Data Sharing dialog in the EAP version

このデータの収集と使用に関する詳細については、データ共有設定を参照してください。

ログの収集

JetBrains がログを収集して送信するように要求すると、ログに機密データが含まれている可能性があることも警告されます。

  1. メインメニューで、ヘルプ | ログと診断データを収集に移動します。

  2. データを JetBrains に送信することに同意する場合は、表示されるダイアログで Finder に表示をクリックします。

    the Sensitive Data dialog

JetBrains プライバシーポリシーの詳細については、JetBrainsWeb サイト(英語)を参照してください。

任意のリンクを開く

IDE では、さまざまな機能を使用するためにブラウザーを開くことが必要になる場合があります。サーバー側にはブラウザーがないことに注意してください。この場合、リクエストは JetBrains Client にリダイレクトされます。

クライアントマシンで任意のリンクを開く前に、JetBrains は確認ダイアログを表示します。

Confirmation dialog

コピーアンドペーストアクション

コピーペーストアクションは、実際の貼り付けの前にのみクリップボードのコンテンツを送信し、実際のコピー中にのみバックエンドがクリップボードを変更できるようにします。

SSH 転送設定

SSH 転送設定では、SSH キー転送を使用して、リモートサーバーから Git リポジトリへのアクセスを認証できます。または、SSH-agent ヘルパーを使用して同じ結果を得ることができます。

SSH 転送設定にアクセスする

  1. Ctrl+Alt+S を押して設定を開き、ツール | SSH 転送を選択します。

  2. 右側のオプションから SSH エージェント転送を有効にするを選択し、OK をクリックして変更を保存します。

    SSH Agent Forwarding

ポート転送

リモートサーバーのポートにアクセスするには、ローカルマシンに転送します。デバッグの目的やファイアウォールのバイパスに役立つ場合があります。

実行ツールウィンドウを介してリモートポートを転送する

  1. リモートセッションを開始し、プロジェクトを開きます。

  2. アプリケーションの実行。

    実行ツールウィンドウで、アプリケーションはリスニングポートを表示します。

    Application is listening on ports
  3. 転送するポートをクリックし、オプションのリストからポートの転送を選択します。

    Forward port

    転送後にブラウザーを開きたい場合は、ポートを転送してブラウザーで開くを選択してください。

    その結果、リモートポートはローカルマシンに転送されます。

  4. 作成したポートをクリックして、ブラウザーで結果を確認します。

    Port forwarding result

    転送されたポートはバックエンドコントロールセンターにも追加されます。

    Backend control center

バックエンドコントロールセンターを介してポート転送を管理する

バックエンドコントロールセンターを通じてポートを追加、削除、編集できます。

ポートを追加する

  1. リモートプロジェクトを開きます。

  2. メインツールバーでバックエンドの名前をクリックして、バックエンドコントロールセンターウィンドウを開きます。

  3. 開いたウィンドウのポートタブで、Add new をクリックして新しいポートを追加します。

    Remove port を使用してポートを削除できます。これは、プロジェクトの再起動時に forwardedPorts.xml ファイルからも削除されます。

  4. 提案されたフィールドにポート番号を入力し、「適用」をクリックして変更を保存します。

    Adding the new port
  5. 追加されたポートは forwardedPorts.xml ファイルに保存されます。

    プロジェクトを再起動して、forwardedPorts.xml ファイル内に追加されたポートを確認します。

    Forwared ports

ポートを削除する

  1. リモートプロジェクトを開きます。

  2. メインツールバーでバックエンドの名前をクリックして、バックエンドコントロールセンターウィンドウを開きます。

  3. 開いたウィンドウのポートタブで、削除するポートを選択し、Remove port をクリックします。

    プロジェクトの再起動時に、ポートは forwardedPorts.xml ファイルからも削除されます。

ポートを変更する

  1. 開いたウィンドウのポートタブで、Add new をクリックして新しいポートを追加します。

  2. 提案されたフィールドにポート番号を入力し、「適用」をクリックして変更を保存する前に、ポートアドレスフィールドをクリックしてポート番号を変更します。

    Change port

次の点に注意してください。

  • ポートの転送を停止し、そのポートが他の開いているプロジェクトで使用されていない場合、そのポートは forwardedPorts.xml ファイルから削除されます。

  • アプリケーションを閉じると、ポート転送が停止します。プロジェクトを再度開くと、ポートが forwardedPorts.xml ファイル (プロジェクトごと) からロードされ、転送され、必要な場所に表示されます。

ポート転送を無効にする

セキュリティ上の理由から、特定のユーザーまたはシステム全体のポートフォワーディング設定を無効にすることができます。

変更はホスト IDE 側で行う必要があります。

ユーザー固有の設定については、次のディレクトリにテキストファイルを作成します。

/Users/UserName/Library/Application Support/JetBrains/portForwarding/enabled

システム全体の設定については、次のディレクトリにテキストファイルを作成します。

/Library/Application Support/JetBrains/portForwarding/enabled

ユーザー固有の設定については、次のディレクトリにテキストファイルを作成します。

$HOME/.config/JetBrains/portForwarding/enabled

システム全体の設定については、次のディレクトリにテキストファイルを作成します。

/etc/xdg/JetBrains/portForwarding/enabled

ユーザー固有の設定には、次のレジストリキーを使用します。

HKEY_CURRENT_USER

システム全体の設定には、次のレジストリキーを使用します。

HKEY_LOCAL_MACHINE

SOFTWARE\JetBrains\portForwarding ディレクトリで、この設定の値で有効化されたキーを作成します。

ユーザーまたはシステム全体のポート転送を無効にする

セキュリティ上の理由から、OsRegistryConfigProvider OS レジストリを使用して、特定のユーザーまたはシステム全体に対してポート転送 (porForwarding) を無効にすることができます。レジストリの場所は OS によって異なります。

ユーザー固有の設定については、次のディレクトリにテキストファイルを作成します。

/Users/UserName/Library/Application Support/JetBrains/portForwarding/enabled

システム全体の設定については、次のディレクトリにテキストファイルを作成します。

/Library/Application Support/JetBrains/portForwarding/enabled

ユーザー固有の設定については、次のディレクトリにテキストファイルを作成します。

$HOME/.config/JetBrains/portForwarding/enabled

システム全体の設定については、次のディレクトリにテキストファイルを作成します。

/etc/xdg/JetBrains/portForwarding/enabled

ユーザー固有の設定には、次のレジストリキーを使用します。

HKEY_CURRENT_USER

システム全体の設定には、次のレジストリキーを使用します。

HKEY_LOCAL_MACHINE

SOFTWARE\JetBrains\portForwarding ディレクトリで、この設定の値で有効化されたキーを作成します。

キーが存在しない場合、設定はデフォルトで true とみなされます。

JetBrains Client のダウンロード場所を変更する

ダウンロード後に、JetBrains Client のフォルダーとファイルを保存する場所を再定義できます。

ユーザー固有の設定については、次のディレクトリにテキストファイルを作成します。

/Users/UserName/Library/Application Support/JetBrains/JetBrainsClient/downloadDestination

ファイルの内容は path/to/directory です。

システム全体の設定については、次のディレクトリにテキストファイルを作成します。

/Library/Application Support/JetBrains/JetBrainsClient/downloadDestination

ファイルの内容は path/to/directory です。

ユーザー固有の設定については、次のディレクトリにテキストファイルを作成します。

$HOME/.config/JetBrains/JetBrainsClient/downloadDestination

ファイルの内容は path/to/directory です。

システム全体の設定については、次のディレクトリにテキストファイルを作成します。

/etc/xdg/JetBrains/JetBrainsClient/downloadDestination with content path/to/directory

ファイルの内容は path/to/directory です。

ユーザー固有の設定には、HKEY_CURRENT_USER レジストリを使用します。

システム全体の設定には、HKEY_LOCAL_MACHINE レジストリを使用します。

SOFTWARE\\JetBrains\\JetBrainsClient で、path/to/directory を含む値でキー downloadDestination を作成します。

関連ページ:

Code With Me セキュリティの概要

Code With Me は、コードを共同で操作する機能を提供する強力なツールです。その機能には、コードとアクセスレベルを安全に保つ責任が伴います。接続ワークフロー:Code With Me を使用して相互に接続したい 2 人のユーザーがいるとしましょう。ユーザー(ホスト)が Code With Me セッションの開始アクションをクリックして、ローカル IDE でセッションを作成します。ローカル IDE は、セッションの作成に関する通知をロビーサーバーに送信し、セッション接続を要求します。登録後、...

IntelliJ IDEA の概要

IntelliJ IDEA は、開発者の生産性を最大化するために設計された Java および Kotlin 用の統合開発環境 (IDE) です。優れたコード補完、静的コード分析、リファクタリングを提供することで、日常的な反復タスクを自動化し、ソフトウェア開発の面白い部分に集中できるようにします。これにより、生産性が向上するだけでなく、楽しい体験も得られます。マルチプラットフォーム:IntelliJ IDEA は、Windows、macOS、Linux で一貫したエクスペリエンスを提供するクロスプ...

データの共有

機能の使用状況の統計を収集して分析することは、IntelliJ IDEA の開発に大いに役立ちます。最も多く使用されている機能とテクノロジー、および最も使用されていない機能とテクノロジーに関するインサイトを活用し、パフォーマンスの改善を追跡して、ユーザーが最も必要とする機能を優先します。当社は共有された情報を大切にし、個人情報や機密データが記録されないように慎重に取り扱います。データ共有を構成する:JetBrains が IntelliJ IDEA の操作時に使用する機能とアクションに関する匿...

ライセンスと便利なリンク

ライセンス:JetBrains Gateway 自体は無料のアプリケーションです。リモート開発を使用するには、リモート IDE のライセンスが必要です。会社のセキュリティ規制に基づいた特定のセットアップシナリオがある場合は、ライセンスの変更を確認し、詳細についてお問い合わせください。リモート開発のライセンスはローカルマシンで処理され、既存のアクティブな IDE ライセンスでカバーされます。ライセンス情報はリモートサーバーに渡されたり、リモートサーバーに保存されたりしません。JetBrains...

Dev Containers

開発コンテナー (Dev Container) は、完全に機能する開発環境として使用できるように構成された Docker コンテナーです。IntelliJ IDEA を使用すると、このようなコンテナーを使用してプロジェクトを編集、ビルド、実行できます。開発コンテナーの仕様を確認する必要がある場合は、Dev Container プロパティを参照してください。IntelliJ IDEA は、Docker Compose プロパティで構成できる複数のコンテナー接続もサポートします。IDE 内で開発コンテ...