Memecahkan masalah penyiapan ADC

Halaman ini menjelaskan beberapa masalah umum yang mungkin Anda alami saat menggunakan Kredensial Default Aplikasi (ADC).

Untuk mengetahui informasi tentang cara kerja ADC, termasuk tempat dimana kredensial ditemukan, lihat Cara kerja Kredensial Default Aplikasi.

Kredensial pengguna tidak berfungsi

Jika permintaan API Anda menampilkan pesan error tentang kredensial pengguna yang tidak didukung oleh API ini, API tidak diaktifkan dalam project atau tidak ada project kuota yang ditetapkan, tinjau informasi berikut.

Ada dua jenis Google Cloud API:

  • API berbasis resourcemenggunakan project terkait dengan resource yang diakses untuk penagihan dan kuota.

  • API berbasis klien, yang menggunakan project terkait dengan klien yang mengakses resource untuk penagihan dan kuota.

Ketika Anda memberikan kredensial pengguna untuk mengautentikasi ke API berbasis klien, Anda harus menentukan project yang akan digunakan untuk penagihan dan kuota. Project ini disebut project kuota.

Ada sejumlah cara untuk menentukan project kuota, termasuk opsi berikut:

  • Perbarui file ADC Anda untuk menggunakan project yang berbeda sebagai project kuota:

    gcloud auth application-default set-quota-project YOUR_PROJECT
    
  • Jika menggunakan gcloud CLI untuk memanggil API, Anda dapat menetapkan project kuota dalam konfigurasi gcloud CLI:

    gcloud config set billing/quota_project YOUR_PROJECT
    
  • Jika Anda memanggil REST atau RPC API secara langsung, gunakan x-goog-user-project header HTTP untuk menentukan project kuota di setiap permintaan. Untuk mengetahui detailnya, lihat Menetapkan project kuota dengan permintaan REST.

Anda harus memiliki serviceusage.services.use izin IAM agar project dapat menetapkannya sebagai project penagihan. Izin serviceusage.services.use disertakan dalam peran IAM Service Usage Consumer. Jika Anda tidak memiliki izin serviceusage.services.use untuk project apa pun, hubungi administrator keamanan atau pemilik project yang dapat memberi Anda peran Service Usage Consumer dalam project tersebut.

Untuk mengetahui informasi lebih lanjut tentang project kuota, lihat Ringkasan project kuota. Untuk mengetahui informasi tentang cara tambahan dalam menetapkan project kuota, lihat Menetapkan project kuota.

Kredensial salah

Jika kredensial Anda tampaknya tidak memberikan akses yang Anda harapkan atau tidak ditemukan, periksa hal berikut:

  • Jika menggunakan gcloud CLI untuk mengakses Google Cloud di lingkungan lokal, pastikan Anda memahami kredensial yang Anda gunakan. Saat menggunakan CLI gcloud, Anda menggunakan kredensial yang Anda berikan ke gcloud CLI dengan menggunakan perintah gcloud auth login. Anda tidak menggunakan kredensial yang diberikan kepada ADC. Untuk mengetahui informasi selengkapnya tentang kedua set kredensial ini, lihat konfigurasi autentikasi gcloud CLI dan konfigurasi ADC.

  • Pastikan variabel lingkungan GOOGLE_APPLICATION_CREDENTIALS ditetapkan hanya jika Anda menggunakan kunci akun layanan atau file JSON lainnya untuk ADC. Kredensial yang ditunjukkan oleh variabel lingkungan lebih diutamakan daripada kredensial lainnya, termasuk untuk Workload Identity Federation for GKE.

  • Pastikan akun utama yang membuat permintaan memiliki peran IAM yang diperlukan. Jika Anda menggunakan kredensial pengguna, peran tersebut harus diberikan ke alamat email yang terkait dengan akun pengguna. Jika Anda menggunakan akun layanan, akun layanan tersebut harus memiliki peran yang diperlukan.

  • Jika Anda memberikan kunci API bersama permintaan API, kunci API akan lebih diutamakan daripada ADC di lokasi mana pun. Jika Anda telah menetapkan GOOGLE_APPLICATION_CREDENTIALS variabel lingkungan dan menggunakan kunci API, API mungkin menampilkan peringatan yang memberitahukan bahwa kredensial yang Anda berikan ke ADC diabaikan. Untuk menghentikan peringatan, batalkan GOOGLE_APPLICATION_CREDENTIALS variabel lingkungan.

Jenis kredensial tidak dikenal

Jika permintaan API menampilkan error yang menyertakan "Error pembuatan kredensial dari JSON. Jenis kredensial tidak dikenal", pastikan Anda menggunakan kredensial yang valid. File ID klien tidak didukung untuk memberikan kredensial bagi ADC.

Akses diblokir saat menggunakan cakupan

Saat Anda mencoba membuat file ADC lokal, dan error yang mirip dengan "Aplikasi ini diblokir" atau "Akses diblokir: Error Otorisasi" ditampilkan, Anda mungkin mencoba menggunakan cakupan yang tidak didukung oleh perintah penyiapan ADC default. Biasanya, masalah ini disebabkan oleh penambahan cakupan untuk aplikasi di luar Google Cloud, seperti Google Drive.

Secara default, token akses yang dihasilkan dari file ADC lokal yang dibuat dengan kredensial pengguna menyertakan cakupan https://www.googleapis.com/auth/cloud-platform seluruh cloud. Untuk menentukan cakupan secara eksplisit, Anda menggunakan flag –-scopes dengan perintah gcloud auth application-default login.

Untuk menambahkan cakupan bagi layanan di luar Google Cloud, seperti Google Drive, buat Client ID OAuth dan berikan ke perintah gcloud auth application-default login menggunakan flag –-client-id-file, yang menentukan cakupan Anda dengan flag -–scopes.