IAM によるアクセス制御

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

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.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.*
admin viewer
インスタンスの作成
インスタンスを削除する
インスタンスの更新
インスタンスを取得する
インスタンスの一覧取得
Cloud Storage との間でデータをインポート / エクスポートする
ロケーションを取得する
サポートされているロケーションを一覧表示する
長時間実行オペレーションを一覧表示する
オペレーションを取得する
オペレーションのキャンセル
オペレーションを削除する

カスタムロール

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

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

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

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

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

サービス エージェントの権限が必要な機能

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

機能 必要なロール ターゲット リソース 説明
顧客管理の暗号鍵(CMEK) roles/cloudkms.cryptoKeyEncrypterDecrypter Cloud KMS 鍵 サービス エージェントが鍵を使用して保存データを暗号化および復号できるようにします。
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 クラスタを作成して管理する コンテナ管理者。 (roles/container.admin) 詳細については、Google Kubernetes Engine のドキュメントをご覧ください。