インスタンスを停止せずに GCP Compute Engine の Cloud API アクセス スコープを変更する方法

インスタンスを停止せずに GCP Compute Engine の Cloud API アクセス スコープを変更する方法

Google Compute Engine 内で使用していますgcsfuse。クラウド ストレージ バケットでフォルダをマウントしましたが、その中にファイルを作成できません。

touch t1

エラー:

touch: cannot touch 't1': Input/output error

この問題の解決策は、クラウド API アクセス スコープ: ストレージ: 読み取り/書き込み

インスタンスを停止せずに GCP Compute Engine 上の Cloud API アクセス スコープを変更するにはどうすればよいでしょうか。この問題の解決策を教えてください。

前もって感謝します!

答え1

GCS権限が不十分なようです。ドキュメンテーションGCE VM でサービス アカウントを使用している場合は、アクセス スコープgcsfuseを使用して VM を設定してくださいstorage-full

次の方法で修正してみてください:

  1. サービスアカウントを作成する(詳細情報ここ
  2. サービスアカウントのキーを作成し、.jsonファイルをダウンロードします。
  3. サービスアカウントに適切なロールを付与する
  4. バケットのサービスアカウントに適切な権限を付与する
  5. サービスアカウントの.json認証情報をVMにアップロードする
  6. gcsfuseコマンドラインから呼び出すときに、サービス アカウント資格情報へのパスを含む環境変数を定義します。

    GOOGLE_APPLICATION_CREDENTIALS = /root/credentials/service_credential_file.json gcsfuse bucket_name /my/mount/point
    

    文書化されkey_fileた同じ目標を達成するためのオプションを使用するfstabここ

さらに、以下をkey_file使用して VM 上でサービス アカウントを構成した場合でも、環境変数またはオプションを使用する必要があります。

gcloud auth activate-service-account --key-file /root/credentials/service_credential_file.json

問題が解決しない場合は、手順、コマンド、および完全な出力を質問に追加してください。

関連情報