web-dev-qa-db-ja.com

Google Compute Engineサービスアカウントのスコープを変更して、Google Cloud Storageバケットにデータを書き込むにはどうすればよいですか?

GCEで実行されているインスタンスがあり、同じプロジェクトにGCSバケットがあります。しかし、私はそれにデータを書き込むことができません。 VMインスタンスからストレージバケットにデータを書き込むにはどうすればよいですか?

15
Sunil Garg

更新:2016年12月15日現在、機能 setServiceAccountbeta

別のIDとして実行する場合、またはインスタンスが必要なAPIを呼び出すために別のスコープのセットが必要であると判断した場合は、既存のインスタンスのサービスアカウントやアクセススコープを変更できます。たとえば、アクセススコープを変更して新しいAPIへのアクセスを許可したり、インスタンスを変更して、ComputeEngineのデフォルトのサービスアカウントではなく作成したサービスアカウントとして実行することができます。

インスタンスのサービスアカウントとアクセススコープを変更するには、インスタンスを一時的に停止する必要があります。インスタンスを停止するには、 インスタンスの停止 のドキュメントをお読みください。サービスアカウントまたはアクセススコープを変更した後は、 インスタンスを再起動する を忘れないでください。

documentation は、 Google Cloud Consolegcloud CLIツール、およびAPIを使用してこの機能を使用する方法について説明しています。 gcloudを使用した例を次に示します。詳細については、 docs を参照してください。

gcloud beta compute instances set-scopes [INSTANCE_NAME] \
     --service-account [SERVICE_ACCOUNT_EMAIL] \
     [--no-scopes | --scopes [SCOPES,...]]

前の回答(2016年12月15日より前に有効):

実行中のVMインスタンスのスコープを変更することはできません。次のいずれかを行うことができます。

  • 新しいインスタンスを作成 (現在のインスタンスのディスクを再利用する可能性があります)作成時に指定された適切なスコープを使用します。例:

    gcloud compute instances create [...] --scopes storage-rw
    
  • vM内から手動でgsutilを使用する場合は、 gsutil config VM内で、プロンプトに従って認証します

  • google APIを使用した自動ツールの使用を計画している場合は、 サービスアカウント を使用してください

16
Misha Brukman

保留中の改善があります:

APIアクセススコープを変更するGoogle Cloud Platformの機能

しかし、期日はまだ述べられていません。乞うご期待。

7
Kamil Wozniak