いつからかわかりませんが、localのコンソールからGCPの各サービスのAPIを叩くときに以下のエラーが出てAPIが叩けないと言うことがありました。
err: dialing: google: could not find default credentials. See https://developers.google.com/accounts/docs/application-default-credentials for more information. exit status 1
GCPの Application Default Credentials(ADC) が古い設定のまま更新されていなかったことが原因でした。
しかし、エラーメッセージにある Setting Up Authentication for Server to Server Production Applications | Authentication | Google Cloud には認証設定が必要である、とだけ書いてあって、その認証設定の仕方までは書いてません...(困った)
そこで GCP の Application Default Credentialsの再設定方法を調べたところ以下のコマンドで再設定可能でした。
$ gcloud auth application-default login
実際に再設定してみます。
$ gcloud auth application-default login The environment variable [GOOGLE_APPLICATION_CREDENTIALS] is set to: [/USERS_PATH/.config/gcloud/legacy_credentials/[AUTHORIZED_USER]/adc.json] Credentials will still be generated to the default location: [/USERS_PATH/.config/gcloud/application_default_credentia ls.json] To use these credentials, unset this environment variable before running your application.
~/.config
配下に adc.json
と言う認証されたユーザーのcredentialsが入ったjsonファイルが生成されます。GCPのAPIを叩くときはこのadc.json の内容を参照するので、これが正しく設定されている必要があります。
このGCPの認証設定については以下の記事が参考になります。
他に困ってる人いないのかなーと思ってざっと調べてみたら関連しそうなQ&Aが上がってました。
この回答に記載してあるところの
gcloud auth login
You haven't application default credentials
gcloud auth login
しただけではADCは取得できなかったみたいです。(いつからこれが適用されたかまではわかってません。)
これを機会にGoogle Cloud SDK周りの使い方のドキュメントをざっと見直してみました。
承認について
Authorizing Cloud SDK tools | Cloud SDK Documentation | Google Cloud
gcloud auth application-default login
について
gcloud auth application-default login | Cloud SDK | Google Cloud