このドキュメントでは、プロジェクトの IAM 管理者にリソース アクセスをリクエストするために必要な Identity and Access Management(IAM)のロールと権限について説明します。Google Distributed Cloud(GDC)のエアギャップ環境で仮想マシン(VM)に対してタスクを実行するには、必要な IAM ロールと権限が必要です。
このドキュメントは、GDC 環境で VM を作成して管理するプラットフォーム管理者グループまたはアプリケーション オペレーター グループのデベロッパーを対象としています。詳細については、GDC エアギャップの対象読者に関するドキュメントをご覧ください。
IAM について
Distributed Cloud には、特定の Distributed Cloud リソースに対するきめ細かいアクセス権を付与し、他のリソースへの不要なアクセスを防ぐ Identity and Access Management(IAM)が用意されています。IAM は最小権限の原則に基づいて動作し、IAM ロールと権限を使用して、特定のリソースに対する権限を持つユーザーを制御します。
始める前に
gdcloud CLI コマンドを使用するには、gdcloud コマンドライン インターフェース(CLI)セクションの必要な手順を完了します。Google Distributed Cloud エアーギャップのすべてのコマンドは、gdcloud または kubectl CLI を使用し、オペレーティング システム(OS)環境を必要とします。
kubeconfig ファイルのパスを取得する
Management API サーバーに対してコマンドを実行するには、次のリソースがあることを確認します。
Management API サーバーの kubeconfig ファイルがない場合は、ログインして生成します。
これらの手順では、Management API サーバーの kubeconfig ファイルのパスを使用して
MANAGEMENT_API_SERVERを置き換えます。
IAM ロールをリクエストする
プロジェクトに対する次のロールをリクエストするには、プロジェクト IAM 管理者に連絡してください。
仮想マシン プロジェクト管理者(project-vm-admin): プロジェクト Namespace で VM を作成、変更、一覧表示、削除します。
仮想マシン イメージ プロジェクト管理者(project-vm-image-admin): プロジェクト Namespace で VM イメージを作成、一覧表示、削除します。
すべての VM ロールは、VM が存在するプロジェクトの Namespace にバインドする必要があります。
アプリケーション オペレーター(AO)の事前定義ロールの一覧については、ロールの説明をご覧ください。
VM リソースへのアクセス権を付与または取得するには、プロジェクト リソースへのアクセス権を付与するをご覧ください。
VM リソースへのユーザー アクセスを確認する
次の手順に沿って GDC コンソールまたは gdcloud CLI にログインし、VM リソースとワークロードへのアクセスを確認します。
コンソール
- 権限をリクエストまたは確認するユーザーとして GDC コンソールにログインします。
- GDC コンソールのホーム画面で組織名とプロジェクト名を確認し、正しいプロジェクトにいることを確認します。
- ナビゲーション メニューで、[仮想マシン] > [インスタンス] をクリックします。
- プロジェクトで VM を作成する権限があるかどうかを確認するには、[インスタンスを作成] をクリックします。
- VM の作成を続行できる場合は、VM を作成する権限があります。
- [インスタンスを作成] ボタンが使用できない場合や、権限がないことを示すエラー メッセージが表示された場合は、プロジェクト IAM 管理者に連絡して、VM が存在するプロジェクトの Namespace で Virtual Machine プロジェクト管理者(
project-vm-admin)ロールをリクエストしてください。
- 画像を表示して作成できるかどうかを確認するには、[仮想マシン] > [インポート] > [イメージの作成] をクリックします。
- イメージのインポートを続行できる場合は、
VirtualMachineImageImportリソースを作成する権限があります。 - [インポート] オプションまたは [イメージの作成] オプションが使用できない場合や、権限エラーが発生した場合は、プロジェクト IAM 管理者に連絡して、VM が存在するプロジェクトの Namespace で仮想マシン イメージ プロジェクト管理者(
project-vm-image-admin)ロールをリクエストしてください。
- イメージのインポートを続行できる場合は、
CLI
アカウントの認証情報、または権限をリクエストまたは確認するユーザーの認証情報を使用してログインします。
kubectlコマンドを使用して、自分またはユーザーが仮想マシンを作成できるかどうかを確認します。kubectl --kubeconfig MANAGEMENT_API_SERVER \ -n PROJECT \ auth can-i create virtualmachines.virtualmachine.gdc.goog次の定義を使用して変数を置き換えます。
変数 置換 MANAGEMENT_API_SERVERgdcloud auth loginのシステム kubeconfig ファイル。PROJECTVM イメージを作成するプロジェクト名 - 出力が
yesの場合、プロジェクトPROJECTで VM を作成する権限があります。 - 出力が
noの場合は、権限がありません。プロジェクト IAM 管理者に連絡して、VM が存在するプロジェクトの Namespace で仮想マシン プロジェクト管理者(project-vm-admin)ロールをリクエストします。
- 出力が
プロジェクト レベルの VM イメージにアクセスできるかどうかを確認します。
kubectlコマンドを実行して、プロジェクト レベルでVirtualMachineImageリソースを作成して使用できるかどうかを確認します。kubectl --kubeconfig MANAGEMENT_API_SERVER auth can-i get virtualmachineimages.virtualmachine.gdc.goog -n PROJECT \ kubectl --kubeconfig MANAGEMENT_API_SERVER auth can-i create virtualmachineimageimports.virtualmachine.gdc.goog -n PROJECT次の定義を使用して変数を置き換えます。
変数 置換 MANAGEMENT_API_SERVERManagement API サーバーの kubeconfigパスPROJECTVM イメージを作成するプロジェクト名 - 出力が
yesの場合、プロジェクト PROJECT のカスタム VM イメージにアクセスする権限があります。 - 出力が
noの場合は、権限がありません。プロジェクトの IAM 管理者に連絡して、VM が存在するプロジェクトの Namespace で Virtual Machine Image プロジェクト管理者(project-vm-image-admin)ロールをリクエストします。
- 出力が