GCP VM の OS Login 無効化設定の確認

VM の SSH アクセス方針が、プロジェクトの IAM 管理基準に合うか確認してください。

説明

VM メタデータの enable-oslogin = false は、プロジェクトで有効にしていてもその VM の OS Login を無効にします。不要な例外があると、プロジェクトの基準とは別の鍵やアカウント管理が残る場合があります。

OS Login を無効にしても、すべての認証がなくなるわけではありません。実際の SSH 認証方式と承認されたアクセス範囲も確認してください。

想定される影響

  • 特定の VM の SSH アカウントや鍵が、中央の IAM 方針とは別に管理される場合があります。
  • 把握していない例外や古い鍵がアクセス確認から漏れるおそれがあります。

対処方法

  • 対応する VM で enable-oslogin = true を設定するか、プロジェクトの既定で有効なことを確認してから VM の無効化キーを削除してください。
  • 必要な IAM ログインロールとサービスアカウントへのアクセス権限を準備し、管理者の接続をテストしてください。OS Login を有効にするとメタデータの SSH 鍵は使われなくなります。

例

古いイメージとネットワークを使う例です。実際にサポートされるイメージと承認済みネットワークに置き換え、必要な接続経路を構成してください。

変更前

hcl
resource "google_compute_instance" "vm" {
  name         = "test"
  machine_type = "e2-medium"
  zone         = "us-central1-a"

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-9"
    }
  }

  network_interface {
    network = "default"

    access_config {}
  }

  metadata = {
    enable-oslogin = "FALSE"
  }
}

変更後

hcl
resource "google_compute_instance" "vm" {
  name         = "test"
  machine_type = "e2-medium"
  zone         = "us-central1-a"

  boot_disk {
    initialize_params {
      image = "debian-cloud/debian-9"
    }
  }

  network_interface {
    network = "default"

    access_config {}
  }

  metadata = {
    enable-oslogin = true
  }
}

補足:

  • 変更前: VM の設定が、プロジェクト側の有効化設定を上書きする場合があります。
  • 変更後: VM で OS Login を有効にします。対応するイメージと実際の IAM ログイン権限も必要です。

参考資料