web-dev-qa-db-ja.com

Google Cloud SQLプロキシはデフォルトの認証情報を見つけることができませんでした

次のようにローカルでGoogle Cloud SQLプロキシを実行しようとしています。

$ ./cloud_sql_proxy -instances project-name:region-name:instance-id tcp:3306

しかし、それは戻ってきています

google: could not find default credentials. See https://developers.google.com/accounts/docs/application-default-credentials for mor information.

私のGoogle Cloud SDKはすでにインストールされ、Googleにログインしています。

どうすれば修正できますか?

18
starleaf1

2つの問題が原因で問題が発生している可能性があります。

ログインとは何かを見つけるには:

gcloud auth login

1.アプリケーションのデフォルトの認証情報がありません

Gcloudの最新バージョンがある場合は、次のようになります。

WARNING: `gcloud auth login` no longer writes application default credentials.

ローカルアプリケーションで必要な資格情報を使用するには( ref ):

gcloud auth application-default login

この警告が表示されない場合は、 ploading gcloud を検討してください。

gcloud components update

2.プロジェクトを定義していません

ログインすると、次のように表示されます。

Your current project is [project-id].

もう一度2つのソリューション:

a。プロジェクトを関連付ける

これが表示されない場合は、( ref )を実行してください。

gcloud config set project PROJECT_ID

b。呼び出しでグローバル--projectフラグを使用する

コマンドでプロジェクトを関連付けます。

.\cloud_sql_proxy -instances=project-id:region-name:instance-id=tcp:3306 --project=project-id
42
NBajanca

Googleアプリケーションのデフォルト認証情報は、gcloud認証情報とは別に管理されます。

使用する

gcloud auth application-default login

代わりに、ユーザー資格情報をアプリケーションのデフォルトとして設定します。詳細は reference を参照してください。

以前はgcloud auth loginがこれを行いましたが、より最近のCloud SDKバージョンでは、これは当てはまりません。

Gcloud構成または設定アカウントを切り替えても、アプリケーションのデフォルト認証情報は更新されないことに注意してください。これらを管理するために使用できるのは、gcloud auth application-defaultのコマンドのみです。

また、サービスアカウントをアプリケーションのデフォルト認証情報として使用するには、開発者 console からjsonキーをダウンロードして直接使用できます。

9
cherba