VM インスタンスで OS Login が無効

対応する Linux VM では OS Login で SSH アクセスを IAM と連携させ、必要な権限だけを付与してください。

説明

OS Login は、対応する Linux VM への SSH アクセスを IAM と連携して管理します。使用しない場合は、メタデータの SSH 鍵など他の認証経路を個別に管理する必要があり、退職者やアクセスが不要になった利用者の権限を一貫して取り消しにくくなります。OS Login の無効化自体が、認証なしの SSH を許可するわけではありません。

想定される影響

  • 古い鍵や過剰な権限が残ると、それらを持つ利用者が引き続き接続できる可能性があります。
  • プロジェクトと VM ごとに鍵管理が分散すると、権限の取り消し漏れやアクセス履歴の確認の難しさにつながります。

対処方法

  1. VM の OS とゲスト環境が OS Login に対応しているか確認し、利用者と自動化処理に必要な IAM ログイン権限を先に付与してください。
  2. enable-oslogin を文字列の TRUE に設定し、ログインと必要な管理操作をテストしてください。OS Login を有効にすると、プロジェクト・インスタンスのメタデータにある SSH 鍵はログインに使われなくなるため、アクセスを失わないよう計画してください。
  3. google.cloud 1.14.0 の gcp_compute_instance は既存 VM のメタデータを更新しません。既存 VM には対応する Console、gcloud、API のメタデータ変更を使用してください。ファイアウォールと管理経路も別途制限してください。

例

VM 作成時に渡すメタデータの抜粋です。名前、プロジェクト、マシン・ディスク構成、認証情報など、その他の必要な入力は省略しています。

変更前

yaml
- name: oslogin-disabled
  google.cloud.gcp_compute_instance:
    metadata:
      enable-oslogin: "FALSE"
    zone: us-central1-a
    auth_kind: serviceaccount

この VM で OS Login を無効にします。実際の SSH アクセスは、残っている認証方式とネットワーク設定によって異なります。

変更後

yaml
- name: oslogin-enabled
  google.cloud.gcp_compute_instance:
    metadata:
      enable-oslogin: "TRUE"
    zone: us-central1-a
    auth_kind: serviceaccount

新規 VM の OS Login を有効にするメタデータです。必要な IAM 権限とゲストの対応を確認してください。このタスクの再実行だけでは、既存 VM のメタデータは変更されません。

参考資料