GNU/Linux >> Linux の 問題 >  >> Linux

gcsfuse 入出力エラー

Insufficient Permissionから登場 gcsfuse がバケットに対して十分な権限を持っていないというデバッグ出力のエラー。おそらく読み取り専用アクセスです。

gcsfuse の資格情報のドキュメントを必ずお読みください。特に、GCE VM でサービス アカウントを使用している場合は、必ず storage-full で VM をセットアップしてください。 アクセス範囲。


あなたの問題は権限の不足に起因していますが、そうではありません この問題を解決するには、別のスコープで VM を破棄して再作成する必要があります。本番システムにより適した別のアプローチを次に示します。

<オール>
  • サービス アカウントを作成する
  • サービス アカウントのキーを作成し、JSON ファイルをダウンロードします
  • サービス アカウントに適切な役割を付与する
  • バケットのサービス アカウントに適切な権限を付与する
  • サービス アカウントの JSON 認証情報を VM にアップロードする
  • 最後に、コマンド ラインから gcsfuse を呼び出すときに、サービス アカウント資格情報へのパスを含む環境変数を定義します。

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

    key_file を使用 fstab で同じことを達成するためのオプション .これらのオプションは両方とも、gcsfuse 資格情報のドキュメントに記載されています。 (編集:このオプションは文書化されていますが、私には機能しません。)

    興味深いことに、環境変数または key_file を使用する必要があります 以下を使用して VM でサービス アカウントを構成した場合でも、オプションを選択できます:

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

    何らかの理由で、gcsfuse は有効な認証済みアカウントを無視します。

    storage-full の使用 VM を作成するときのスコープは、その VM が同じプロジェクトに属するすべてのバケットに完全にアクセスできるため、セキュリティと安定性に影響します。ファイル ストレージ サーバーは、ロギング バケット内のログを上書きしたり、別のバケット内のデータベース バックアップを読み取ったりできる必要がありますか?


    Linux
    1. Linuxでの入出力とエラーリダイレクトの操作

    2. Linux/Unixでの入力/出力リダイレクト

    3. ユーザーアカウントとサービスアカウントの違いは?

    1. 特定の実行可能ファイルからの入力と出力をインターセプトしますか?

    2. シンボリック リンクの作成:プロトコル エラー

    3. プログラムの出力を入力としてリダイレクトする方法

    1. キーボード入力とテキスト出力はどのように機能しますか?

    2. Cdへの入力に使用されるコマンドの出力はどれですか?

    3. dd 入出力エラーの解釈