Pengantar kunci API
Ada dua jenis kunci API: kunci API standar dan kunci otorisasi. Kedua kunci memungkinkan Anda mengaitkan permintaan dengan project untuk tujuan penagihan dan kuota. Namun, keduanya berbeda dalam hal berikut:
Kunci API standar tidak mengautentikasi akun utama.
Kunci otorisasi melakukan autentikasi sebagai akun layanan. Token ini beroperasi dengan cara yang serupa dengan token akses yang berlaku lama.
Halaman Credentials di konsol Google Cloud memastikan bahwa jenis kunci API yang benar dibuat untuk API yang dipilih.
Kunci API standar
Kunci API standar menyediakan cara untuk mengaitkan permintaan dengan project untuk tujuan penagihan dan kuota. Saat Anda menggunakan kunci API standar (kunci API yang belum terikat ke akun layanan) untuk mengakses API, kunci API tidak mengidentifikasi akun utama. Tanpa entity utama, permintaan tidak dapat menggunakan Identity and Access Management (IAM) untuk memeriksa apakah pemanggil diotorisasi untuk melakukan operasi yang diminta.
Kunci API standar dapat digunakan dengan API apa pun yang menerima kunci API, kecuali jika pembatasan API telah ditambahkan ke kunci tersebut. Kunci API standar tidak dapat digunakan dengan layanan yang tidak menerima kunci API, termasuk dalam mode ekspres.
Kunci otorisasi
Kunci otorisasi adalah kunci API yang terikat ke akun layanan. Saat Anda menggunakan kunci otorisasi untuk mengakses API, permintaan Anda diproses seolah-olah Anda menggunakan akun layanan terikat untuk membuat permintaan.
API yang mendukung kunci otorisasi mencakup
AI Platform
(aiplatform.googleapis.com) dan
Gemini API
(generativelanguage.googleapis.com).
Saat menggunakan kunci otorisasi, perhatikan hal berikut:
Permintaan yang diautentikasi oleh kunci otorisasi tidak dicatat dalam metrik penggunaan akun layanan.
Pengikatan kunci ke akun layanan dicegah oleh batasan kebijakan organisasi default. Untuk mengubahnya, lihat Mengaktifkan kunci otorisasi.
Komponen kunci API
Kunci API memiliki komponen berikut, yang memungkinkan Anda mengelola dan menggunakan kunci:
- String
- String kunci API adalah string terenkripsi, misalnya,
AIzaSyDaGmWKa4JsXZ-HjGw7ISLn_3namBGewQe. Saat menggunakan kunci API untuk mengakses API, Anda akan selalu menggunakan string kunci tersebut. Kunci API tidak memiliki file JSON terkait. - ID
- ID kunci API digunakan oleh alat administratif Google Cloud untuk mengidentifikasi kunci secara unik. ID kunci tidak dapat digunakan untuk mengakses API. ID kunci dapat ditemukan di URL halaman edit kunci di konsol Google Cloud . Anda juga bisa mendapatkan ID kunci dengan menggunakan Google Cloud CLI untuk mencantumkan kunci di project Anda.
- Nama tampilan
- Nama tampilan adalah nama deskriptif opsional untuk kunci, yang dapat Anda tetapkan saat membuat atau mengupdate kunci.
- Akun layanan terikat
- Kunci otorisasi mencakup alamat email akun layanan.
Sebelum memulai
Selesaikan tugas berikut untuk menggunakan contoh di halaman ini.
Menyiapkan autentikasi
Pilih tab untuk melihat bagaimana Anda berencana menggunakan contoh di halaman ini:
Konsol
Saat menggunakan konsol Google Cloud untuk mengakses layanan Google Cloud dan API, Anda tidak perlu menyiapkan autentikasi.
gcloud
Di konsol Google Cloud , aktifkan Cloud Shell.
Di bagian bawah konsol Google Cloud , sesi Cloud Shell akan dimulai dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi pada sesi.
C++
Untuk menggunakan contoh C++ di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Jika Anda menggunakan shell lokal, buat kredensial autentikasi lokal untuk akun pengguna Anda:
gcloud auth application-default login
Anda tidak perlu melakukan langkah ini jika menggunakan Cloud Shell.
Jika error autentikasi ditampilkan, dan Anda menggunakan penyedia identitas (IdP) eksternal, konfirmasi bahwa Anda telah login ke gcloud CLI dengan identitas gabungan Anda.
Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud .
Java
Untuk menggunakan contoh Java di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Jika Anda menggunakan shell lokal, buat kredensial autentikasi lokal untuk akun pengguna Anda:
gcloud auth application-default login
Anda tidak perlu melakukan langkah ini jika menggunakan Cloud Shell.
Jika error autentikasi ditampilkan, dan Anda menggunakan penyedia identitas (IdP) eksternal, konfirmasi bahwa Anda telah login ke gcloud CLI dengan identitas gabungan Anda.
Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud .
Python
Untuk menggunakan contoh Python di halaman ini dalam lingkungan pengembangan lokal, instal dan lakukan inisialisasi gcloud CLI, lalu siapkan Kredensial Default Aplikasi dengan kredensial pengguna Anda.
-
Instal Google Cloud CLI.
-
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
-
Jika Anda menggunakan shell lokal, buat kredensial autentikasi lokal untuk akun pengguna Anda:
gcloud auth application-default login
Anda tidak perlu melakukan langkah ini jika menggunakan Cloud Shell.
Jika error autentikasi ditampilkan, dan Anda menggunakan penyedia identitas (IdP) eksternal, konfirmasi bahwa Anda telah login ke gcloud CLI dengan identitas gabungan Anda.
Untuk mengetahui informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal dalam dokumentasi autentikasi Google Cloud .
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
Instal Google Cloud CLI.
Jika Anda menggunakan penyedia identitas (IdP) eksternal, Anda harus login ke gcloud CLI dengan identitas gabungan Anda terlebih dahulu.
Untuk mengetahui informasi selengkapnya, lihat Melakukan autentikasi untuk menggunakan REST dalam dokumentasi autentikasi Google Cloud .
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk mengelola kunci API, minta administrator untuk memberi Anda peran IAM berikut di project Anda:
-
Buat kunci API:
- Admin Kunci API (
roles/serviceusage.apiKeysAdmin) - Service Usage Viewer (
roles/serviceusage.serviceUsageViewer)
- Admin Kunci API (
-
Buat kunci otorisasi. Tambahkan peran yang sama seperti yang Anda gunakan untuk membuat kunci API, ditambah:
- Service Account User (
roles/iam.serviceAccountUser) - Admin Pengikatan Kunci API Akun Layanan (
roles/serviceAccountApiKeyBindingAdmin)
- Service Account User (
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Mengaktifkan kunci otorisasi
Sebelum dapat membuat kunci otorisasi, Anda harus melakukan salah satu hal berikut:
Perbarui batasan kebijakan organisasi
constraints/iam.managed.disableServiceAccountApiKeyCreationuntuk membatasi layanan yang dapat dibuat kunci otorisasi oleh pengguna. Saat membuat kunci otorisasi, pengguna harus menambahkan pembatasan API yang cocok dengan layanan yang diizinkan oleh batasan.Nonaktifkan batasan kebijakan organisasi
constraints/iam.managed.disableServiceAccountApiKeyCreation
Mengubah kebijakan organisasi memerlukan resource organisasi. Project tanpa organisasi tidak didukung.
Untuk mengubah batasan kebijakan, selesaikan petunjuk berikut.
Konsol
Di konsol Google Cloud , buka halaman Organization policies.
Beralihlah ke organisasi, folder, atau project yang ingin Anda ubah kebijakannya.
Di kotak Filter, masukkan
Block service, lalu klik nama kebijakan Blokir binding kunci API akun layanan.Klik Manage policy.
Di bagian Policy source, pilih Override parent's policy.
Klik Add a rule.
Untuk menonaktifkan batasan, setel Penerapan ke Nonaktif.
Untuk menambahkan layanan ke daftar yang diizinkan, setel Penerapan ke Aktif.
Klik Edit.
Di bagian Jenis nilai, pilih Ditentukan pengguna.
Masukkan layanan yang ingin Anda izinkan untuk membuat kunci API.
Klik Done.
Opsional: Klik Uji perubahan untuk mendapatkan insight tentang kemungkinan pelanggaran atau gangguan kepatuhan yang disebabkan oleh usulan kebijakan.
Klik Setel kebijakan.
gcloud
Untuk menambahkan layanan ke daftar yang diizinkan, lakukan hal berikut:
Buat file bernama
spec.yamldengan konten berikut:name: SCOPE/SCOPE_ID/policies/iam.managed.disableServiceAccountApiKeyCreation spec: rules: - enforce: true parameters: allowedServices: - SERVICE_NAMEBerikan nilai berikut:
SCOPE:organizations,folders, atauprojects.SCOPE_ID: Bergantung pada SCOPE, ID organisasi, folder, atau project tempat kebijakan organisasi diterapkan.SERVICE_NAME: Nama layanan yang ingin Anda izinkan—misalnya,compute.googleapis.com.
Jalankan perintah
gcloudberikut untuk mengizinkan pengikatan kunci API ke akun layanan untuk layanan yang ditentukan:gcloud org-policies set-policy spec.yaml \ --update-mask spec
Untuk menonaktifkan batasan, lakukan langkah-langkah berikut:
Buat file bernama
spec.yamldengan konten berikut:name: SCOPE/SCOPE_ID/policies/iam.managed.disableServiceAccountApiKeyCreation spec: rules: - enforce: falseJalankan perintah
gcloudberikut untuk menonaktifkan batasan:gcloud org-policies