IAM によるアクセス制御

Google Cloud Managed Lustre オペレーションへのアクセス権を付与するには、ユーザーに Identity and Access Management(IAM)ロールを付与します。

IAM の権限は、Google Cloud Managed Lustre インスタンスの作成など、Google Cloud Managed Lustre オペレーションへのアクセス権のみを制御します。ファイルへの読み取りや書き込みなど、インスタンスでのファイル システム オペレーションへのアクセスを制御するには、POSIX ファイル権限を使用します。

権限とロール

Managed Lustre は次の権限を使用します。

権限 説明
lustre.instances.create 新しいインスタンスを作成する
lustre.instances.delete インスタンスを削除する
lustre.instances.update インスタンスを更新します。削除を許可しない
lustre.instances.get インスタンスの説明を取得する
lustre.instances.list すべてのインスタンスのリスト
lustre.instances.exportData Managed Lustre から Cloud Storage にデータをエクスポートする
lustre.instances.importData Cloud Storage から Managed Lustre にデータをインポートする
lustre.locations.get ビジネス情報を取得する
lustre.locations.list サポートされているすべてのロケーションを一覧表示する
lustre.mirrors.create 新しいミラーを作成する
lustre.mirrors.delete ミラーを削除する
lustre.mirrors.update ミラーを更新する
lustre.mirrors.get ミラーについて説明する
lustre.mirrors.list ミラーを一覧表示する
lustre.operations.list 処理の一覧を表示します
lustre.operations.get オペレーションを取得する
lustre.operations.cancel オペレーションのキャンセル
lustre.operations.delete オペレーションを削除する

Google Cloud では、個々の権限を直接付与することはできません。権限を含むロールを付与する必要があります。Managed Lustre の事前定義ロールは次のとおりです。

  • Managed Lustre 管理者(roles/lustre.admin)
  • Managed Lustre 閲覧者(roles/lustre.viewer)

次の表に、Managed Lustre の事前定義ロールと基本編集者ロールによって付与される権限を示します。

能力 編集者(roles/editor) Managed Lustre(roles/lustre.*)
管理者(roles/lustre.admin) 閲覧者(roles/lustre.viewer)
インスタンスの作成
インスタンスを削除する
インスタンスの更新
インスタンスを取得する
インスタンスを確認する
Cloud Storage との間でデータをインポート / エクスポートする
Cloud Storage ミラーを構成する
ビジネス情報を取得する
サポートされているロケーションを一覧表示する
長時間実行オペレーションを一覧表示する
オペレーションを取得する
オペレーションのキャンセル
オペレーションを削除する

カスタムロール

使用可能な事前定義ロールが組織のアクセス要件を満たしていない場合は、カスタム IAM ロールを作成して適用できます。

カスタムロールを作成する場合は、適切な権限が含まれるように事前定義ロールを組み合わせて使用することをおすすめします。

Managed Lustre サービス エージェント

Managed Lustre は、サービス エージェントを使用して他の Google Cloud リソースにアクセスし、ユーザーに代わってアクションを実行します。サービス エージェントは、プロジェクトで初めて Managed Lustre インスタンスを作成するときに自動的に作成される Google 管理のサービス アカウントです。手動で作成することもできます。

サービス エージェントに権限を付与する必要があるのは、特定のオプション機能を使用する場合のみです。これらの機能を使用しない標準のインスタンス作成とファイル システム オペレーションでは、サービス エージェントの構成は必要ありません。

サービス エージェントの権限を必要とする機能

次の機能では、サービス エージェントに IAM ロールを付与する必要があります。

機能 必要なロール ターゲット リソース 説明
顧客管理の暗号鍵(CMEK) roles/cloudkms.cryptoKeyEncrypterDecrypter Cloud KMS 鍵 サービス エージェントが鍵を使用して保存データを暗号化および復号できるようにします。
Cloud Storage ミラー storage.buckets.get、storage.buckets.update、storage.objects.get、storage.objects.list を付与するカスタムロール Cloud Storage バケット サービス エージェントが Pub/Sub 通知を作成し、バケットからインスタンスにオブジェクトをミラーリングできるようにします。
Cloud Storage からデータを転送する roles/storage.objectViewer Cloud Storage バケット サービス エージェントがバケットからオブジェクトを読み取り、インスタンスにインポートできるようにします。
Cloud Storage 間でデータを転送する roles/storage.objectUser Cloud Storage バケット インポート オペレーションとエクスポート オペレーション中に、サービス エージェントにオブジェクトの読み取りと書き込みを許可します。

これらの機能を使用していない場合は、このセクションの残りの手順をスキップできます。

サービス エージェント ID を作成または取得する

サービス エージェントに権限を付与するには、その ID を取得する必要があります。サービス エージェントは次の形式を使用します。

service-PROJECT_NUMBER@gcp-sa-lustre.

次のいずれかのオプションを使用して、サービス エージェント ID を作成または決定します。

  • Managed Lustre インスタンスを作成していない場合: services identity create コマンドを実行して、サービス エージェントを手動で作成します。

    gcloud beta services identity create \
      --service=lustre.googleapis.com \
      --project=PROJECT_NUMBER_OR_ID
    

    PROJECT_NUMBER_OR_ID は、Managed Lustre インスタンスを作成するプロジェクトのプロジェクト番号または ID に置き換えます。このコマンドでは、次のような出力が返されます。

    Service identity created: service-1234567890@gcp-sa-lustre.
    
  • Managed Lustre インスタンスをすでに作成している場合: サービス エージェント ID を作成するには、gcloud projects describe コマンドを使用してプロジェクト番号を取得します。

    gcloud projects describe PROJECT_ID --format="value(projectNumber)"
    

    PROJECT_ID は、実際のプロジェクト ID に置き換えます。次に、サービス エージェントのメールアドレスの PROJECT_NUMBER を置き換えます。

    service-PROJECT_NUMBER@gcp-sa-lustre.
    

サービス エージェントに権限を付与する

サービス エージェント ID を取得したら、次のドキュメントを参照して、機能に必要なロールを付与します。

必要な追加の Google Cloud 権限

lustre 権限に加えて、特定のタスクを実行するために他のGoogle Cloud サービスの権限が必要になる場合があります。

タスク 権限
VPC ネットワークを作成する VPC ネットワークを構成するの必要な権限セクションをご覧ください。
Compute Engine VM を作成する Compute インスタンス管理者(v1)。(roles/compute.instanceAdmin.v1) 詳細については、Compute Engine のドキュメントをご覧ください。
Google Kubernetes Engine クラスタを作成して管理する Container 管理者。(roles/container.admin) 詳細については、Google Kubernetes Engine のドキュメントをご覧ください。