Identity-Aware Proxy を使用して Linux VM に接続する


このドキュメントでは、Identity-Aware Proxy(IAP)TCP 転送を使用して、内部 IP アドレスを経由して仮想マシン(VM)インスタンスに接続する方法について説明します。

IAP TCP 転送を使用すると、VM に SSH 接続を転送できる暗号化トンネルを確立できます。IAP を使用する VM に接続すると、IAP は SSH 接続を HTTPS 内にラップしてから、その接続を VM に転送します。次に、IAP は必要な IAM 権限があるかどうかを確認し、ある場合は VM へのアクセスを許可します。

外部 IP アドレスを持たない VM に接続する必要があり、IAP を使用できない場合は、内部専用 VM の接続オプションに一覧表示されている他の方法を確認してください。

始める前に

  • ファイアウォール ルールを作成して IAP からの接続を有効にします。
  • まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。

    このページのサンプルをどのように使うかに応じて、タブを選択してください。

    コンソール

    Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。

    gcloud

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. デフォルトのリージョンとゾーンを設定します

サポートされているオペレーティング システム

これらの接続方法は、Compute Engine で利用可能なすべての公開 Linux イメージでサポートされています。Fedora CoreOS イメージの場合、これらの方法を使用する前に、SSH アクセスを設定する必要があります。

VM に接続する

VM に接続するには、次のいずれかのタブに示されている手順を行います。

コンソール

ブラウザで SSH を使用して VM の内部 IP アドレスを介した SSH 接続をトンネルするには、次の操作を行います。

  1. In the Google Cloud console, go to the VM instances page.

    Go to VM instances

  2. In the list of virtual machine instances, click SSH in the row of the instance that you want to connect to.

gcloud

--tunnel-through-iap フラグを指定して gcloud compute ssh コマンドを使用し、VM の内部 IP アドレスを介して SSH 接続をトンネルします。

    In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  1. VM に接続するために、次のコマンドを実行します。

    gcloud compute ssh VM-NAME \
        --tunnel-through-iap
  2. VM_NAME は、接続する VM インスタンスの名前に置き換えます。

IAP Desktop

IAP Desktop を使用して VM に接続するには、次の操作を行います。

  1. まだインストールしていない場合は、ワークステーションに IAP Desktop をインストールします。

  2. IAP Desktop を開きます。[Add projects] ウィンドウが開きます。

  3. プロンプトが表示されたら、接続する VM のプロジェクトにアクセスできる Google アカウントを使用してログインします。

  4. [Add projects] ウィンドウで、接続する VM が含まれているプロジェクトのプロジェクト ID または名前を入力します。

  5. [Project Explorer] ウィンドウで、VM の名前を再度右クリックし、[Connect] を選択して VM に接続します。

PuTTY アプリ

PuTTY を使用して VM の内部 IP アドレスを介した SSH 接続をトンネルするには、次の操作を行います。

  1. VM に SSH 認証鍵を追加します(まだ追加していない場合)。
  2. ワークステーションにまだ PuTTY アプリがインストールされていない場合は、PuTTY パッケージ ファイルをダウンロードします。
  3. Google Cloud コンソールで [VM インスタンス] ページに移動し、接続先の VM の名前を確認します。

    [VM インスタンス] に移動

  4. PuTTY アプリを開きます。接続構成ウィンドウが開きます。
  5. Host Name フィールドに、SSH 認証鍵に関連付けられているユーザー名と、接続先の VM の名前を入力します。形式は次のようにします。

    USERNAME@VM_NAME

    次のように置き換えます。

    • USERNAME: ユーザー名。メタデータで SSH 認証鍵を管理する場合、 ユーザー名は SSH 認証鍵を作成したときに指定したユーザー名です。 OS Login アカウントの場合、ユーザー名は Google プロフィールに定義されています。たとえば、cloudysanfrancisco_example_com や、cloudysanfrancisco です。
    • NAME: VM の名前。
  6. [Category] メニューで、[Connection] > [SSH] > [Auth] に移動します。
  7. [Private key file for authentication] フィールドで、VM に追加した公開鍵に対応する SSH 秘密鍵ファイルを選択します。
  8. [Category] メニューで、[Connection] > [Proxy] に移動します。
  9. [Proxy type] で [Local] を選択します。
  10. [Telnet command, or local proxy command] フィールドに、次のコマンドを入力します。

    gcloud.cmd compute start-iap-tunnel VM_NAME PORT_NUMBER --listen-on-stdin --project=PROJECT_ID --zone=ZONE

    次のように置き換えます。

    • VM_NAME: 接続先の VM の名前。
    • PORT_NUMBER: sshd デーモンが実行されるポート。デフォルトの PORT_NUMBER22 です。
    • PROJECT_ID: 接続先の VM をホストするプロジェクト。
    • ZONE: VM を配置するゾーン。
  11. [Open] をクリックして VM に接続します。

トラブルシューティング

失敗した SSH 接続を診断し、解決するための方法については、SSH のトラブルシューティングをご覧ください。

次のステップ