IAM 権限の準備

このページでは、組織とプロジェクトの IAM 管理者にリソース アクセスをリクエストするために必要な Identity and Access Management(IAM)のロールと権限について説明します。Google Distributed Cloud(GDC)エアギャップで仮想マシン(VM)に対してタスクを実行するには、適切な IAM ロールと権限が必要です。

このページは、GDC 環境で VM を作成して管理するプラットフォーム管理者グループまたはアプリケーション オペレーター グループのデベロッパーを対象としています。詳細については、GDC エアギャップの対象読者に関するドキュメントをご覧ください。

始める前に

gdcloud CLI コマンドを使用するには、gdcloud コマンドライン インターフェース(CLI)セクションの必要な手順を完了します。Google Distributed Cloud Air-gapped のすべてのコマンドは、gdcloud または kubectl CLI を使用し、オペレーティング システム(OS)環境を必要とします。

kubeconfig ファイルのパスを取得する

Management API サーバーに対してコマンドを実行するには、次のリソースがあることを確認します。

  1. Management API サーバーの kubeconfig ファイルがない場合は、ログインして生成します。

  2. これらの手順では、Management API サーバーの kubeconfig ファイルのパスを使用して MANAGEMENT_API_SERVER を置き換えます。

IAM について

Distributed Cloud には、特定の Distributed Cloud リソースに対するアクセス権を詳細に設定し、他のリソースへの不要なアクセスを防ぐための Identity and Access Management(IAM)機能があります。IAM は最小権限のセキュリティ原則に基づいて動作し、IAM ロールと権限を使用して、特定のリソースに対する権限を持つユーザーを制御します。

ログインの IAM ドキュメントをご覧ください。このドキュメントでは、GDC コンソールまたは gdcloud CLI にログインし、kubectl を使用してワークロードにアクセスする手順について説明しています。

VM リソースに対する事前定義ロール

プロジェクトに VM と VM ディスクを作成するには、特定のプロジェクトに対する適切な権限をプロジェクト IAM 管理者にリクエストします。すべての VM ロールは、VM が存在するプロジェクトの Namespace にバインドする必要があります。仮想マシンを管理するために、プロジェクト IAM 管理者は次の事前定義ロールを割り当てることができます。

  • プロジェクト VirtualMachine 管理者 project-vm-admin: プロジェクト Namespace の VM を管理します。
  • プロジェクト VirtualMachine イメージ管理者 project-vm-image-admin: プロジェクト Namespace の VM イメージを管理します。

アプリケーション オペレーター(AO)の事前定義ロールの一覧については、ロールの説明をご覧ください。

VM リソースへのアクセス権を付与または取得するには、プロジェクト リソースへのアクセス権を付与するをご覧ください。

VM リソースへのユーザー アクセスを確認する

  1. 権限をリクエストまたは確認するユーザーとしてログインします。

  2. 自分またはユーザーが仮想マシンを作成できるかどうかを確認します。

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      auth can-i create virtualmachines.virtualmachine.gdc.goog
    

    次の定義を使用して変数を置き換えます。

    変数 置換
    MANAGEMENT_API_SERVER gdcloud auth login のシステム kubeconfig ファイル。
    PROJECT VM イメージを作成するプロジェクト名。
    • 出力が yes の場合、プロジェクト PROJECT で VM を作成する権限があります。
    • 出力が no の場合は、権限がありません。プロジェクト IAM 管理者に連絡して、VM が存在するプロジェクトの Namespace でプロジェクト VirtualMachine 管理者(project-vm-admin)ロールをリクエストします。
  3. 省略可: ユーザーがプロジェクト レベルの VM イメージにアクセスできるかどうかを確認します。たとえば、次のコマンドを実行して、プロジェクト レベルで VirtualMachineImage リソースを作成して使用できるかどうかを確認します。

    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      auth can-i get virtualmachineimages.virtualmachine.gdc.goog
    
    kubectl --kubeconfig MANAGEMENT_API_SERVER \
      -n PROJECT \
      auth can-i create virtualmachineimageimports.virtualmachine.gdc.goog
    

    次の定義を使用して変数を置き換えます。

    変数 置換
    MANAGEMENT_API_SERVER Management API サーバーの kubeconfig ファイル。
    PROJECT VM イメージが作成されるプロジェクト名。
    • 出力が yes の場合、ユーザーにはプロジェクト PROJECT のカスタム VM イメージにアクセスする権限があります。
    • 出力が no の場合は、権限がありません。プロジェクト IAM 管理者ロールに連絡して、VM が存在するプロジェクトの Namespace でプロジェクト VirtualMachine イメージ管理者(project-vm-image-admin)ロールをリクエストします。