Halaman ini menjelaskan cara membuat, mengedit, dan membatasi kunci API. Untuk mengetahui informasi tentang cara menggunakan kunci API untuk mengakses Google API, lihat Menggunakan kunci API untuk mengakses API.
Pengantar kunci API
Ada dua jenis kunci API: kunci API standar dan kunci API yang terikat dengan akun layanan. Dokumen ini menjelaskan kunci API standar. Untuk mengetahui informasi tentang kunci API yang terikat ke akun layanan, lihat FAQ mode ekspres Google Cloud.
Kunci API
Kunci API standar menyediakan cara untuk mengaitkan permintaan dengan project untuk tujuan penagihan dan kuota. Saat Anda menggunakan kunci API standar untuk mengakses API, kunci API tidak mengidentifikasi akun utama. Tanpa akun utama, permintaan tersebut 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. Kunci API standar tidak dapat digunakan dengan layanan yang tidak menerima kunci API.
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 Google Cloud alat administratif 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 API yang terikat ke akun layanan menyertakan alamat email akun layanan. Untuk informasi selengkapnya, lihat FAQ mode ekspres Google Cloud.
Sebelum memulai
Selesaikan tugas berikut untuk menggunakan contoh di halaman ini.
Menyiapkan autentikasi
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
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.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Untuk informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal dalam Google Cloud dokumentasi autentikasi.
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.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Untuk informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal dalam Google Cloud dokumentasi autentikasi.
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.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
If you're using a local shell, then create local authentication credentials for your user account:
gcloud auth application-default login
You don't need to do this if you're using Cloud Shell.
Untuk informasi selengkapnya, lihat Menyiapkan ADC untuk lingkungan pengembangan lokal dalam Google Cloud dokumentasi autentikasi.
REST
Untuk menggunakan contoh REST API di halaman ini dalam lingkungan pengembangan lokal, gunakan kredensial yang Anda berikan ke gcloud CLI.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Untuk informasi selengkapnya, lihat Mengautentikasi untuk menggunakan REST dalam Google Cloud dokumentasi autentikasi.
Peran yang diperlukan
Untuk mendapatkan izin yang Anda perlukan untuk mengelola kunci API, minta administrator untuk memberi Anda peran IAM berikut di project Anda:
-
Admin Kunci API (
roles/serviceusage.apiKeysAdmin
) -
Batasi kunci API ke API tertentu menggunakan konsol Google Cloud:
Service Usage Viewer (
roles/serviceusage.serviceUsageViewer
)
Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses ke project, folder, dan organisasi.
Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.
Membuat kunci API
Untuk membuat kunci API, gunakan salah satu opsi berikut:
Konsol
Di konsol Google Cloud, buka halaman Credentials.
Klik Create credentials, lalu pilih API key dari menu.
Dialog API key created akan menampilkan string untuk kunci yang baru dibuat.
gcloud
Gunakan perintah gcloud services api-keys create
untuk membuat kunci API.
Ganti DISPLAY_NAME
dengan nama deskriptif untuk kunci Anda.
gcloud services api-keys create --display-name=DISPLAY_NAME
C++
Untuk menjalankan contoh ini, Anda harus menginstal library klien Kunci API.
Java
Untuk menjalankan contoh ini, Anda harus menginstal
library klien google-cloud-apikeys
.
Python
Untuk menjalankan contoh ini, Anda harus menginstal library klien Kunci API.
REST
Gunakan
metode keys.create
untuk membuat kunci API. Permintaan ini menampilkan operasi yang berjalan lama; Anda harus melakukan polling
operasi untuk mendapatkan informasi tentang kunci yang baru.
Ganti nilai berikut:
DISPLAY_NAME
: Opsional. Nama deskriptif untuk kunci Anda.PROJECT_ID
: Project ID atau nama Google Cloud project Anda.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ -d {'"displayName" : "DISPLAY_NAME"'} \ "https://apikeys.googleapis.com/v2/projects/PROJECT/locations/global/keys"
Untuk informasi lebih lanjut tentang membuat kunci API menggunakan REST API, lihat Membuat kunci API dalam dokumentasi API Keys API.
Menerapkan pembatasan kunci API
Kunci API tidak dibatasi secara default. Kunci yang tidak dibatasi tidak aman karena dapat digunakan oleh siapa saja dari mana saja. Untuk aplikasi produksi, Anda harus menetapkan pembatasan aplikasi dan pembatasan API.
Menambahkan batasan aplikasi
Pembatasan aplikasi menentukan situs, alamat IP, atau aplikasi mana yang dapat menggunakan kunci API.
Anda hanya dapat menerapkan satu jenis pembatasan aplikasi dalam satu waktu. Pilih jenis pembatasan berdasarkan jenis aplikasi Anda:
Opsi | Jenis aplikasi | Catatan |
---|---|---|
Perujuk HTTP | Aplikasi web | Menentukan situs yang dapat menggunakan kunci tersebut. |
Alamat IP | Aplikasi yang dipanggil oleh server tertentu | Menentukan server atau cron job yang dapat menggunakan kunci tersebut. |
Aplikasi Android | Aplikasi Android | Menentukan aplikasi Android yang dapat menggunakan kunci tersebut. |
Aplikasi iOS | Aplikasi iOS | Menentukan paket iOS yang dapat menggunakan kunci tersebut. |
Perujuk HTTP
Untuk membatasi situs yang dapat menggunakan kunci API Anda, tambahkan satu atau beberapa pembatasan perujuk HTTP.
Anda dapat mengganti karakter pengganti (*
) untuk subdomain atau jalur, tetapi Anda tidak dapat menyisipkan karakter pengganti ke tengah URL. Misalnya,
*.example.com
valid, dan menerima semua situs yang diakhiri dengan .example.com
. Namun,
mysubdomain*.example.com
bukan batasan yang valid.
Nomor port dapat disertakan dalam pembatasan perujuk HTTP. Jika Anda menyertakan nomor port, hanya permintaan yang menggunakan port tersebut yang akan dicocokkan. Jika Anda tidak menentukan nomor port, permintaan dari nomor port mana pun akan dicocokkan.
Tabel berikut menunjukkan beberapa skenario contoh dan pembatasan browser:
Skenario | Pembatasan |
---|---|
Mengizinkan URL tertentu | Menambahkan URL dengan jalur yang tepat. Contoh:www.example.com/path www.example.com/path/path Beberapa browser menerapkan kebijakan perujuk yang hanya mengirim URL asal untuk permintaan lintas asal. Pengguna browser ini tidak dapat menggunakan kunci dengan pembatasan URL khusus halaman. |
Izinkan URL apa pun di situs Anda | Anda harus menetapkan dua URL dalam daftar allowedReferers .
|
Mengizinkan URL apa pun pada subdomain tunggal atau domain tanpa awalan www |
Anda harus menetapkan dua URL dalam daftar
|
Untuk membatasi kunci API Anda ke situs tertentu, gunakan salah satu opsi berikut:
Konsol
Di konsol Google Cloud, buka halaman Credentials.
Klik nama kunci API yang ingin Anda batasi.
Di bagian Application restrictions, pilih HTTP referrers.
Untuk setiap batasan yang ingin ditambahkan, klik Add an item, masukkan batasan, lalu klik Done.
Klik Simpan untuk menyimpan perubahan dan kembali ke daftar kunci API.
gcloud
Dapatkan ID kunci yang ingin Anda batasi.
ID tidak sama dengan nama tampilan atau string kunci. Anda bisa mendapatkan ID ini dengan menggunakan perintah
gcloud services api-keys list
untuk mencantumkan kunci di project Anda.Gunakan perintah
gcloud services api-keys update
untuk menambahkan batasan perujuk HTTP ke kunci API.Ganti nilai berikut:
KEY_ID
: ID kunci yang ingin Anda batasi.ALLOWED_REFERRER_1
: Pembatasan perujuk HTTP Anda.Anda dapat menambahkan batasan sebanyak yang diperlukan; gunakan koma untuk memisahkan batasan. Anda harus memberikan semua batasan perujuk dengan perintah update; pembatasan perujuk yang diberikan menggantikan pembatasan perujuk yang ada pada kunci tersebut.
gcloud services api-keys update KEY_ID \ --allowed-referrers="ALLOWED_REFERRER_1"
Java
Untuk menjalankan contoh ini, Anda harus menginstal
library klien google-cloud-apikeys
.
Python
Untuk menjalankan contoh ini, Anda harus menginstal library klien Kunci API.
REST
Dapatkan ID kunci yang ingin Anda batasi.
ID tidak sama dengan nama tampilan atau string kunci. Anda bisa mendapatkan ID ini menggunakan metode keys.list. ID tercantum di kolom
uid
respons.Ganti
PROJECT_ID
dengan Google Cloud project ID atau nama project Anda.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
Gunakan metode keys.patch untuk menambahkan pembatasan perujuk HTTP pada kunci API.
Permintaan ini menampilkan operasi yang berjalan lama; Anda harus melakukan polling operasi untuk mengetahui kapan operasi selesai dan mendapatkan status operasi.
Ganti nilai berikut:
ALLOWED_REFERRER_1
: Pembatasan perujuk HTTP Anda.Anda dapat menambahkan batasan sebanyak yang diperlukan; gunakan koma untuk memisahkan batasan. Anda harus memberikan semua batasan perujuk dengan permintaan tersebut; pembatasan perujuk yang diberikan menggantikan pembatasan perujuk yang ada pada kunci tersebut.
PROJECT_ID
: Google Cloud Project ID atau nama project Anda.KEY_ID
: ID kunci yang ingin Anda batasi.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "restrictions" : { "browserKeyRestrictions": { "allowedReferrers": ["ALLOWED_REFERRER_1"] } } }' \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
Untuk informasi selengkapnya tentang menambahkan pembatasan perujuk HTTP ke kunci menggunakan REST API, lihat Menambahkan pembatasan browser dalam dokumentasi API Keys API.
Alamat IP
Anda dapat menentukan satu atau beberapa alamat IP pemanggil, seperti server web atau cron job, yang diizinkan untuk menggunakan kunci API Anda. Anda dapat menentukan alamat IP dalam salah satu format berikut:
- IPv4 (
198.51.100.1
) - IPv6 (
2001:db8::1
) - Subnet yang menggunakan notasi CIDR (
198.51.100.0/24
,2001:db8::/64
)
Penggunaan localhost
tidak didukung untuk pembatasan server.
Untuk membatasi kunci API Anda ke alamat IP tertentu, gunakan salah satu opsi berikut:
Konsol
Di konsol Google Cloud, buka halaman Credentials.
Klik nama kunci API yang ingin Anda batasi.
Di bagian Application restrictions, pilih IP addresses.
Untuk setiap alamat IP yang ingin ditambahkan, klik Add an item, masukkan alamat, lalu klik Done.
Klik Simpan untuk menyimpan perubahan dan kembali ke daftar kunci API.
gcloud
Dapatkan ID kunci yang ingin Anda batasi.
ID tidak sama dengan nama tampilan atau string kunci. Anda bisa mendapatkan ID ini dengan menggunakan perintah
gcloud services api-keys list
untuk mencantumkan kunci di project Anda.Gunakan perintah
gcloud services api-keys update
untuk menambahkan pembatasan server (alamat IP) ke kunci API.Ganti nilai berikut:
KEY_ID
: ID kunci yang ingin Anda batasi.ALLOWED_IP_ADDR_1
: Alamat IP yang diizinkan.Anda dapat menambahkan alamat IP sebanyak yang diperlukan; menggunakan koma untuk memisahkan alamat.
gcloud services api-keys update KEY_ID \ --allowed-ips="ALLOWED_IP_ADDR_1"
Java
Untuk menjalankan contoh ini, Anda harus menginstal
library klien google-cloud-apikeys
.
Python
Untuk menjalankan contoh ini, Anda harus menginstal library klien Kunci API.
REST
Dapatkan ID kunci yang ingin Anda batasi.
ID tidak sama dengan nama tampilan atau string kunci. Anda bisa mendapatkan ID ini menggunakan metode keys.list. ID tercantum di kolom
uid
respons.Ganti
PROJECT_ID
dengan Google Cloud project ID atau nama project Anda.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
Gunakan metode keys.patch untuk menambahkan pembatasan server (alamat IP) ke kunci API.
Permintaan ini menampilkan operasi yang berjalan lama; Anda harus melakukan polling operasi untuk mengetahui kapan operasi selesai dan mendapatkan status operasi.
Ganti nilai berikut:
ALLOWED_IP_ADDR_1
: Alamat IP yang diizinkan.Anda dapat menambahkan alamat IP sebanyak yang diperlukan; menggunakan koma untuk memisahkan batasan. Anda harus memberikan semua alamat IP dengan permintaan; pembatasan perujuk yang disediakan menggantikan pembatasan alamat IP yang ada pada kunci tersebut.
PROJECT_ID
: Google Cloud Project ID atau nama project Anda.KEY_ID
: ID kunci yang ingin Anda batasi.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "restrictions" : { "serverKeyRestrictions": { "allowedIps": ["ALLOWED_IP_ADDR_1"] } } }' \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
Untuk informasi selengkapnya tentang menambahkan pembatasan alamat IP ke kunci menggunakan REST API, lihat Menambahkan pembatasan server dalam dokumentasi API Keys API.
Aplikasi Android
Anda dapat membatasi penggunaan kunci API untuk aplikasi Android tertentu. Anda harus memberikan nama paket dan sidik jari sertifikat SHA-1 20 byte untuk setiap aplikasi.
Saat menggunakan kunci API dalam permintaan, Anda harus menentukan nama paket dan sidik jari sertifikat menggunakan header HTTP berikut:
X-Android-Package
X-Android-Cert
Untuk membatasi kunci API Anda ke satu atau beberapa aplikasi Android, gunakan salah satu opsi berikut:
Konsol
Di konsol Google Cloud, buka halaman Credentials.
Klik nama kunci API yang ingin Anda batasi.
Di bagian Application restrictions, pilih Android apps.
Untuk setiap aplikasi Android yang ingin ditambahkan, klik Add an item dan masukkan nama paket serta sidik jari sertifikat SHA-1, lalu klik Done.
Klik Simpan untuk menyimpan perubahan dan kembali ke daftar kunci API.
gcloud
Dapatkan ID kunci yang ingin Anda batasi.
ID tidak sama dengan nama tampilan atau string kunci. Anda bisa mendapatkan ID ini dengan menggunakan perintah
gcloud services api-keys list
untuk mencantumkan kunci di project Anda.Gunakan perintah
gcloud services api-keys update
untuk menentukan aplikasi Android yang dapat menggunakan kunci API.Ganti nilai berikut:
KEY_ID
: ID kunci yang ingin Anda batasi.SHA1_FINGERPRINT
danPACKAGE_NAME
: Informasi aplikasi untuk aplikasi Android yang dapat menggunakan kunci tersebut.Anda dapat menambahkan aplikasi sebanyak yang diperlukan; gunakan flag
--allowed-application
tambahan.
gcloud services api-keys update KEY_ID \ --allowed-application=sha1_fingerprint=SHA1_FINGERPRINT_1,package_name=PACKAGE_NAME_1 \ --allowed-application=sha1_fingerprint=SHA1_FINGERPRINT_2,package_name=PACKAGE_NAME_2
Java
Untuk menjalankan contoh ini, Anda harus menginstal
library klien google-cloud-apikeys
.
Python
Untuk menjalankan contoh ini, Anda harus menginstal library klien Kunci API.
REST
Dapatkan ID kunci yang ingin Anda batasi.
ID tidak sama dengan nama tampilan atau string kunci. Anda bisa mendapatkan ID ini menggunakan metode keys.list. ID tercantum di kolom
uid
respons.Ganti
PROJECT_ID
dengan Google Cloud project ID atau nama project Anda.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
Gunakan metode keys.patch untuk menentukan aplikasi Android yang dapat menggunakan kunci API.
Permintaan ini menampilkan operasi yang berjalan lama; Anda harus melakukan polling operasi untuk mengetahui kapan operasi selesai dan mendapatkan status operasi.
Ganti nilai berikut:
SHA1_FINGERPRINT_1
danPACKAGE_NAME_1
: Informasi aplikasi untuk aplikasi Android yang dapat menggunakan kunci tersebut.Anda dapat menambahkan informasi untuk aplikasi sebanyak yang dibutuhkan; gunakan koma untuk memisahkan objek AndroidApplication. Anda harus memberikan permintaan kepada semua aplikasi; aplikasi yang disediakan menggantikan aplikasi yang diizinkan pada kunci tersebut.
PROJECT_ID
: Google Cloud Project ID atau nama project Anda.KEY_ID
: ID kunci yang ingin Anda batasi.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "restrictions" : { "androidKeyRestrictions": { "allowedApplications": [ { "sha1Fingerprint": "SHA1_FINGERPRINT_1", "packageName": "PACKAGE_NAME_1" }, ] } } }' \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
Untuk informasi selengkapnya tentang menambahkan pembatasan aplikasi Android ke kunci menggunakan REST API, lihat Menambahkan pembatasan Android dalam dokumentasi API Keys API.
Aplikasi iOS
Anda dapat membatasi penggunaan kunci API untuk aplikasi iOS tertentu dengan memberikan ID paket setiap aplikasi.
Jika menggunakan kunci API dalam permintaan, Anda harus menentukan ID paket menggunakan header HTTP X-Ios-Bundle-Identifier
.
Untuk membatasi kunci API Anda ke satu atau beberapa aplikasi iOS, gunakan salah satu opsi berikut:
Konsol
Di konsol Google Cloud, buka halaman Credentials.
Klik nama kunci API yang ingin Anda batasi.
Di bagian Application restrictions, pilih iOS apps.
Untuk setiap aplikasi iOS yang ingin Anda tambahkan, klik Add an item dan masukkan ID paket, lalu klik Done.
Klik Simpan untuk menyimpan perubahan dan kembali ke daftar kunci API.
gcloud
Dapatkan ID kunci yang ingin Anda batasi.
ID tidak sama dengan nama tampilan atau string kunci. Anda bisa mendapatkan ID ini dengan menggunakan perintah
gcloud services api-keys list
untuk mencantumkan kunci di project Anda.Gunakan metode
gcloud services api-keys update
untuk menentukan aplikasi iOS yang dapat menggunakan kunci tersebut.Ganti nilai berikut:
KEY_ID
: ID kunci yang ingin Anda batasi.ALLOWED_BUNDLE_ID
: ID paket aplikasi iOS tempat Anda ingin dapat menggunakan kunci API ini.Anda dapat menambahkan ID paket sebanyak yang diperlukan; menggunakan koma untuk memisahkan ID.
gcloud services api-keys update KEY_ID \ --allowed-bundle-ids=ALLOWED_BUNDLE_ID_1,ALLOWED_BUNDLE_ID_2
Java
Untuk menjalankan contoh ini, Anda harus menginstal
library klien google-cloud-apikeys
.
Python
Untuk menjalankan contoh ini, Anda harus menginstal library klien Kunci API.
REST
Dapatkan ID kunci yang ingin Anda batasi.
ID tidak sama dengan nama tampilan atau string kunci. Anda bisa mendapatkan ID ini menggunakan metode keys.list. ID tercantum di kolom
uid
respons.Ganti
PROJECT_ID
dengan Google Cloud project ID atau nama project Anda.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
Gunakan metode keys.patch untuk menentukan aplikasi iOS yang dapat menggunakan kunci API.
Permintaan ini menampilkan operasi yang berjalan lama; Anda harus melakukan polling operasi untuk mengetahui kapan operasi selesai dan mendapatkan status operasi.
Ganti nilai berikut:
ALLOWED_BUNDLE_ID
: ID paket aplikasi iOS yang dapat menggunakan kunci.Anda dapat menambahkan informasi untuk aplikasi sebanyak yang dibutuhkan; gunakan koma untuk memisahkan ID paket. Anda harus memberikan semua ID paket bersama permintaan; ID paket yang diberikan akan menggantikan aplikasi yang diizinkan pada kunci tersebut.
PROJECT_ID
: Google Cloud Project ID atau nama project Anda.KEY_ID
: ID kunci yang ingin Anda batasi.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "restrictions" : { "iosKeyRestrictions": { "allowedBundleIds": ["ALLOWED_BUNDLE_ID_1","ALLOWED_BUNDLE_ID_2"] } } }' \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
Untuk informasi selengkapnya tentang menambahkan pembatasan aplikasi iOS ke kunci menggunakan REST API, lihat Menambahkan pembatasan iOS dalam dokumentasi API Keys API.
Menambahkan pembatasan API
Pembatasan API menentukan API mana yang dapat dipanggil menggunakan kunci API.
Untuk menambahkan pembatasan API, gunakan salah satu opsi berikut:
Konsol
Di konsol Google Cloud, buka halaman Credentials.
Klik nama kunci API yang ingin Anda batasi.
Di bagian API restrictions, klik Restrict key.
Pilih semua API yang akan digunakan oleh kunci API Anda.
Klik Simpan untuk menyimpan perubahan dan kembali ke daftar kunci API.
gcloud
Dapatkan ID kunci yang ingin Anda batasi.
ID tidak sama dengan nama tampilan atau string kunci. Anda bisa mendapatkan ID ini dengan menggunakan perintah
gcloud services api-keys list
untuk mencantumkan kunci di project Anda.Gunakan perintah
gcloud services api-keys update
untuk menentukan layanan mana yang dapat diakses menggunakan kunci API.Ganti nilai berikut:
KEY_ID
: ID kunci yang ingin Anda batasi.SERVICE_1
,SERVICE_2
...: Nama layanan API yang dapat diakses dengan kunci.Anda harus memberikan semua nama layanan dengan perintah update; nama layanan yang diberikan menggantikan layanan yang ada pada kunci tersebut.
Anda dapat menemukan nama layanan dengan menelusuri API di dasbor API. Nama layanan adalah string seperti
bigquery.googleapis.com
.gcloud services api-keys update KEY_ID \ --api-target=service=SERVICE_1 --api-target=service=SERVICE_2
Java
Untuk menjalankan contoh ini, Anda harus menginstal
library klien google-cloud-apikeys
.
Python
Untuk menjalankan contoh ini, Anda harus menginstal library klien Kunci API.
REST
Dapatkan ID kunci yang ingin Anda batasi.
ID tidak sama dengan nama tampilan atau string kunci. Anda bisa mendapatkan ID ini menggunakan metode keys.list. ID tercantum di kolom
uid
respons.Ganti
PROJECT_ID
dengan Google Cloud project ID atau nama project Anda.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/"
Gunakan metode keys.patch untuk menentukan layanan mana yang dapat diakses menggunakan kunci API.
Permintaan ini menampilkan operasi yang berjalan lama; Anda harus melakukan polling operasi untuk mengetahui kapan operasi selesai dan mendapatkan status operasi.
Ganti nilai berikut:
SERVICE_1
,SERVICE_2
...: Nama layanan API yang dapat diakses dengan kunci.Anda harus memasukkan semua nama layanan dalam permintaan; nama layanan yang diberikan menggantikan layanan yang ada pada kunci tersebut.
Anda dapat menemukan nama layanan dengan menelusuri API di dasbor API. Nama layanan adalah string seperti
bigquery.googleapis.com
.PROJECT_ID
: Google Cloud Project ID atau nama project Anda.KEY_ID
: ID kunci yang ingin Anda batasi.
curl -X PATCH \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ --data '{ "restrictions" : { "apiTargets": [ { "service": "SERVICE_1" }, { "service" : "SERVICE_2" }, ] } }' \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID?updateMask=restrictions"
Untuk informasi selengkapnya tentang menambahkan pembatasan API ke kunci menggunakan REST API, lihat Menambahkan pembatasan API dalam dokumentasi API Keys API.
Mendapatkan informasi project dari string kunci
Anda dapat menentukan project Google Cloud mana yang terkait dengan kunci API dari string-nya.
Ganti KEY_STRING
dengan string kunci yang informasi project Anda
diperlukan.
gcloud
Gunakan perintah gcloud services api-keys lookup
untuk mendapatkan project ID dari string kunci.
gcloud services api-keys lookup KEY_STRING
Java
Untuk menjalankan contoh ini, Anda harus menginstal
library klien google-cloud-apikeys
.
Python
Untuk menjalankan contoh ini, Anda harus menginstal library klien Kunci API.
REST
Gunakan metode lookupKey
untuk mendapatkan project ID dari string kunci.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ "https://apikeys.googleapis.com/v2/keys:lookupKey?keyString=KEY_STRING"
Membuat salinan kunci API
Jika memerlukan kunci API baru dengan batasan yang sama seperti kunci API yang ada, Anda dapat membuat salinan kunci API yang ada. Operasi ini akan membuat kunci API baru dengan string kunci dan ID unik, dengan pembatasan kunci API yang ada.
Operasi salin hanya tersedia di konsol Google Cloud. Untuk menggunakan metode lain, ikuti langkah-langkah untuk membuat kunci API, lalu terapkan pembatasan kunci API yang sama ke kunci API yang baru dibuat.
Di konsol Google Cloud, buka halaman Credentials.
Klik nama kunci API yang ingin Anda salin.
Halaman detail kunci API akan terbuka.
Klik Buat salinan.
Masukkan nama untuk kunci API baru dan pastikan batasan sudah benar.
Klik Buat.
Memutar kunci API
Dengan merotasi kunci API secara berkala, Anda dapat membatasi dampak kunci API yang disusupi.
Saat memutar kunci API, Anda membuat kunci baru dengan batasan yang sama seperti kunci lama, dan mengupdate aplikasi untuk menggunakan kunci baru. Setelah semua aplikasi Anda diperbarui, Anda dapat menghapus kunci lama.
Operasi rotasi hanya tersedia di konsol Google Cloud. Untuk menggunakan metode lain, ikuti langkah-langkah untuk membuat kunci API, lalu terapkan pembatasan kunci API yang sama ke kunci API yang baru dibuat. Setelah mengupdate aplikasi untuk menggunakan kunci baru, Anda harus menghapus kunci lama.
Di konsol Google Cloud, buka halaman Credentials.
Klik nama kunci API yang ingin Anda putar untuk membuka halaman detailnya.
Klik Rotate key.
Masukkan nama untuk kunci API baru dan pastikan batasan sudah benar.
Klik Buat.
Salin string kunci dan perbarui aplikasi Anda untuk menggunakan string baru.
Setelah Anda mengupdate semua aplikasi untuk menggunakan kunci baru, kembali ke halaman detail untuk kunci baru. Di bagian Kunci sebelumnya, klik Hapus kunci sebelumnya untuk menghapus kunci lama.
Jika Anda mendapati bahwa Anda telah menghapus kunci lama sebelum waktunya, Anda dapat membatalkan penghapusannya.
Membatalkan Penghapusan kunci API
Jika tidak sengaja menghapus kunci API, Anda dapat membatalkan penghapusan (memulihkan) kunci tersebut dalam waktu 30 hari setelah menghapus kunci. Setelah 30 hari, Anda tidak dapat membatalkan penghapusan kunci API.
Konsol
Di konsol Google Cloud, buka halaman Credentials.
Klik Restore deleted credentials.
Temukan kunci API yang dihapus yang ingin Anda batalkan penghapusannya, lalu klik Restore.
Membatalkan penghapusan kunci API mungkin memerlukan waktu beberapa menit untuk diterapkan. Setelah penerapan, kunci API yang batal dihapus akan ditampilkan di daftar kunci API.
gcloud
Dapatkan ID kunci yang ingin Anda batalkan penghapusannya.
ID tidak sama dengan nama tampilan atau string kunci. Anda bisa mendapatkan ID ini dengan menggunakan perintah
gcloud services api-keys list --show-deleted
untuk mencantumkan kunci yang dihapus di project Anda.Gunakan perintah
gcloud services api-keys undelete
untuk membatalkan penghapusan kunci API.gcloud services api-keys undelete KEY_ID
Ganti nilai berikut:
KEY_ID
: ID kunci yang ingin Anda batalkan penghapusannya.
Java
Untuk menjalankan contoh ini, Anda harus menginstal
library klien google-cloud-apikeys
.
REST
Dapatkan ID kunci yang ingin Anda batalkan penghapusannya.
ID tidak sama dengan nama tampilan atau string kunci. Anda bisa mendapatkan ID ini menggunakan metode keys.list, dengan parameter kueri
showDeleted
ditetapkan ketrue
. ID kunci tercantum di kolomuid
respons.Ganti
PROJECT_ID
dengan Google Cloud project ID atau nama project Anda.curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys?showDeleted=true"
Gunakan metode pembatalan penghapusan untuk membatalkan penghapusan kunci API.
curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ "https://apikeys.googleapis.com/v2/projects/PROJECT_ID/locations/global/keys/KEY_ID:undelete"
Permintaan ini menampilkan operasi yang berjalan lama; Anda harus melakukan polling operasi untuk mengetahui kapan operasi selesai dan mendapatkan status operasi.
Ganti nilai berikut:
PROJECT_ID
: Google Cloud Project ID atau nama project Anda.KEY_ID
: ID kunci yang ingin Anda batasi.
Melakukan polling operasi yang berjalan lama
Metode API Keys API menggunakan operasi yang berjalan lama. Jika Anda menggunakan REST API untuk membuat dan mengelola kunci API, objek operasi akan ditampilkan dari permintaan metode awal. Anda menggunakan nama operasi untuk mengumpulkan operasi yang berjalan lama. Setelah permintaan yang berjalan lama selesai, polling operasi akan menampilkan data dari permintaan yang berjalan lama.
Untuk melakukan polling operasi API Keys API yang berjalan lama, gunakan
metode operations.get
.
Ganti OPERATION_NAME
dengan nama operasi yang ditampilkan oleh operasi yang berjalan lama. Contoh, operations/akmf.p7-358517206116-cd10a88a-7740-4403-a8fd-979f3bd7fe1c
.
curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json; charset=utf-8" \ "https://apikeys.googleapis.com/v2/OPERATION_NAME"
Batasan pada kunci API
Anda dapat membuat hingga 300 kunci API per project. Batas ini adalah batas sistem, dan tidak dapat diubah menggunakan permintaan penambahan kuota. Jika diperlukan lebih dari satu kunci API, Anda harus menggunakan lebih dari satu project.
Anda dapat menambahkan hingga 1.200 pembatasan aplikasi ke kunci API.
Langkah berikutnya
- Pelajari praktik terbaik untuk menjaga keamanan kunci API Anda.
- Pelajari API Keys API lebih lanjut.
Kecuali dinyatakan lain, konten di halaman ini dilisensikan berdasarkan Lisensi Creative Commons Attribution 4.0, sedangkan contoh kode dilisensikan berdasarkan Lisensi Apache 2.0. Untuk mengetahui informasi selengkapnya, lihat Kebijakan Situs Google Developers. Java adalah merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-02-06 UTC.