GKE で OS Login を有効にして構成する


このページでは、OS Login を有効にし、GKE Standard モードのクラスタとノードに OS Login を適用する組織のポリシーを構成する方法について説明します。OS Login では IAM を使用してインスタンスへの SSH アクセスを管理できるので、個別の SSH 認証鍵を作成して管理する必要がありません。

GKE がノードを管理するので、GKE Autopilot モードのクラスタで OS Login は使用できません。

パブリック ノードを使用するクラスタは、OS Login をサポートしていません。パブリック ノードを含むクラスタを実行しているプロジェクトにこの制約が適用されると、そのプロジェクトで実行されている VM インスタンスが正しく機能しない可能性があります。

このページは、GKE Standard クラスタに OS Login ポリシーを追加して、すべての VM インスタンスにデフォルトで OS Login が設定されるようにするセキュリティ スペシャリストを対象としています。 Google Cloud のコンテンツで使用されている一般的なロールとタスクの例の詳細については、一般的な GKE ユーザーロールとタスクをご覧ください。

このページを読む前に、OS Login の概要を理解しておいてください。

概要

組織で OS Login の制約を設定して、新しいすべてのプロジェクトとそれらの新しいプロジェクトで作成した VM インスタンスに対して OS Login を有効にすることが可能です。OS Login はすぐにGoogle Cloud セキュリティのベスト プラクティスとなりました。組織のポリシーを通じて OS Login を適用することをおすすめします。

次の手順では、GKE で組織のポリシーを使用して OS Login を有効にする方法について説明します。

始める前に

作業を始める前に、次のタスクを完了済みであることを確認してください。

  • Google Kubernetes Engine API を有効にする。
  • Google Kubernetes Engine API の有効化
  • このタスクに Google Cloud CLI を使用する場合は、gcloud CLI をインストールして初期化する。すでに gcloud CLI をインストールしている場合は、gcloud components update を実行して最新のバージョンを取得する。

OS Login を使用するように既存のプロジェクトを更新する

組織のポリシーを設定する前に、OS Login を使用するように既存のクラスタを移行します。

  1. プロジェクト内のすべてのノードプールに含まれるバージョンをサポート対象バージョンに更新します。

    gcloud container clusters upgrade CLUSTER_NAME \
        --node-pool=NODE_POOL_NAME \
        --cluster-version VERSION
    

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

    • CLUSTER_NAME: 既存のクラスタの名前。
    • NODE_POOL_NAME: ノードプールの名前。
    • VERSION: OS Login と互換性のあるバージョン(バージョン 1.20.5 以降)。
  2. enable-oslogin フラグを TRUE に設定すると、既存の VM インスタンスと新規 VM インスタンスのすべてで OS Login がデフォルトで有効になります。ノードを再起動する必要はありません。

    gcloud compute project-info add-metadata --metadata enable-oslogin=TRUE
    

OS Login の組織のポリシーを設定する

組織レベルで OS Login の制約を設定するには、次の手順を行います。

  1. 次のコマンドを実行して、組織 ID を検索します。

    gcloud organizations list
    
  2. OS Login の組織のポリシーを設定します。ORGANIZATION_ID は実際の組織 ID に置き換えます。

    gcloud resource-manager org-policies enable-enforce \
        compute.requireOsLogin \
        --organization=ORGANIZATION_ID
    

組織のポリシーを設定すると、次の条件が適用されます。

  • 新しいすべてのプロジェクトのプロジェクト メタデータで enable-oslogintrue に設定される。
  • インスタンスまたはプロジェクトのメタデータで enable-osloginfalse に設定する更新リクエストは拒否される。

ノードアクセスを管理する

OS Login の組織のポリシーを有効にすると、認証に使用する SSH 認証鍵を管理する必要がなくなります。OS Login を使用すると、認証管理が Identity and Access Management に移行されます。ノードへの SSH アクセスを管理するには、OS Login を使用します。詳細については、OS Login の設定をご覧ください。

次のステップ