Halaman ini menjelaskan cara menggunakan library klien dan Kredensial Default Aplikasi untuk mengakses Google API.
Library klien mempermudah akses ke Google Cloud API menggunakan bahasa yang didukung. Anda dapat menggunakan API Google Cloud secara langsung dengan membuat permintaan mentah ke server, tetapi library klien memberikan penyederhanaan yang secara signifikan mengurangi jumlah kode yang perlu ditulis. Hal ini terutama berlaku untuk autentikasi, karena library klien mendukung Kredensial Default Aplikasi (ADC).
Jika ingin menggunakan kunci API, jangan gunakan ADC. Untuk informasi selengkapnya, lihat Menggunakan kunci API dengan library klien.
Menggunakan Kredensial Default Aplikasi dengan library klien
Untuk menggunakan Kredensial Default Aplikasi guna mengautentikasi aplikasi, Anda harus terlebih dahulu menyiapkan ADC untuk lingkungan tempat aplikasi berjalan. Saat Anda menggunakan library klien untuk membuat klien, library klien akan otomatis memeriksa dan menggunakan kredensial yang Anda berikan ke ADC untuk melakukanautentikasi ke API yang digunakan oleh kode Anda. Aplikasi Anda tidak perlu secara eksplisit mengautentikasi atau mengelola token; persyaratan ini dikelola secara otomatis oleh library autentikasi.
Untuk lingkungan pengembangan lokal, Anda dapat menyiapkan ADC dengan kredensial pengguna atau dengan peniruan identitas akun layanan menggunakan gcloud CLI. Untuk lingkungan produksi, Anda menyiapkan ADC dengan memasang akun layanan.
Pembuatan contoh klien
Contoh kode berikut membuat klien untuk layanan Cloud Storage. Kode Anda cenderung membutuhkan klien yang berbeda; contoh ini dimaksudkan hanya untuk menunjukkan cara membuat klien dan menggunakannya tanpa kode untuk mengautentikasi secara eksplisit.
Sebelum dapat menjalankan contoh berikut, Anda harus menyelesaikan langkah-langkah berikut:
Go
Java
Node.js
PHP
Python
Ruby
Persyaratan keamanan saat menggunakan konfigurasi kredensial dari sumber eksternal
Biasanya, Anda membuat konfigurasi kredensial menggunakan perintah gcloud CLI atau menggunakan Konsol Google Cloud. Misalnya, Anda dapat menggunakan gcloud CLI untuk membuat file ADC lokal atau file konfigurasi login. Demikian pula, Anda dapat menggunakan konsol Google Cloud untuk membuat dan mendownload kunci akun layanan.
Namun, untuk beberapa kasus penggunaan, konfigurasi kredensial diberikan kepada Anda oleh entitas eksternal; konfigurasi kredensial ini dimaksudkan untuk digunakan untuk melakukan autentikasi ke Google API.
Beberapa jenis konfigurasi kredensial mencakup endpoint dan jalur file, yang digunakan library autentikasi untuk memperoleh token. Saat menerima konfigurasi kredensial dari sumber eksternal, Anda harus memvalidasi konfigurasi sebelum menggunakannya. Jika Anda tidak memvalidasi konfigurasi, pelaku kejahatan dapat menggunakan kredensial untuk membahayakan sistem dan data Anda.
Memvalidasi konfigurasi kredensial dari sumber eksternal
Cara Anda memvalidasi kredensial eksternal bergantung pada jenis kredensial yang diterima aplikasi Anda.
Memvalidasi kunci akun layanan
Jika aplikasi Anda hanya menerima kunci akun layanan, gunakan loader kredensial khusus untuk kunci akun layanan, seperti yang ditunjukkan dalam contoh berikut. Loader kredensial khusus jenis hanya mengurai kolom yang ada untuk kunci akun layanan, yang tidak mengekspos kerentanan apa pun.
C#
var saCredential = ServiceAccountCredential.FromServiceAccountData(stream);
C++
auto cred = google::cloud::MakeServiceAccountCredentials(json)
Java
ServiceAccountCredentials credentials =
ServiceAccountCredentials.fromJson(json, new HttpTransportFactory());
Node.js
const keys = JSON.parse(json_input)
const authClient = JWT.fromJSON(keys);
PHP
cred = new Google\Auth\Credentials\ServiceAccountCredentials($scope, $jsonKey);
Python
cred = service_account.Credentials.from_service_account_info(json_data)
Ruby
creds = Google::Auth::ServiceAccountCredentials.make_creds(json_key_io: json_stream)
Jika Anda tidak dapat menggunakan loader kredensial khusus jenis, validasi kredensial dengan
mengonfirmasi bahwa nilai untuk kolom type
adalah service_account
. Jika nilai untuk kolom type
adalah nilai lain, jangan gunakan kunci akun layanan.
Memvalidasi konfigurasi kredensial lainnya
Jika aplikasi Anda menerima jenis kredensial apa pun selain kunci akun layanan, Anda harus melakukan verifikasi tambahan. Contoh jenis konfigurasi kredensial lainnya meliputi file kredensial ADC, file kredensial Workload Identity Federation, atau file konfigurasi login Workforce Identity Federation.
Tabel berikut mencantumkan kolom yang perlu Anda validasi, jika ada dalam kredensial Anda. Tidak semua kolom ini ada untuk semua konfigurasi kredensial.
Kolom | Tujuan | Nilai yang diharapkan |
---|---|---|
service_account_impersonation_url |
Library autentikasi menggunakan kolom ini untuk mengakses endpoint guna membuat token akses untuk akun layanan yang ditiru identitasnya. | https://iamcredentials.googleapis.com.com/v1/projects/-/serviceAccounts/service account email:generateAccessToken |
token_url |
Library autentikasi mengirim token eksternal ke endpoint ini untuk menukarnya dengan token akses gabungan. | https://sts.googleapis.com.com/v1/token |
credential_source.file |
Library autentikasi membaca token eksternal dari file di
lokasi yang ditentukan oleh kolom ini dan mengirimkannya ke
endpoint token_url .
|
Jalur untuk file yang berisi token eksternal. Anda harus mengenali jalur ini. |
credential_source.url |
Endpoint yang menampilkan token eksternal. Library autentikasi
mengirimkan permintaan ke URL ini dan mengirimkan respons ke
endpoint token_url .
|
Salah satu item berikut:
|
credential_source.executable.command |
Jika variabel lingkungan GOOGLE_EXTERNAL_ACCOUNT_ALLOW_EXECUTABLES ditetapkan ke 1 , library autentikasi akan menjalankan perintah atau file yang dapat dieksekusi ini.
|
File atau perintah yang dapat dieksekusi yang menampilkan token eksternal. Anda harus mengenali perintah ini dan memvalidasi bahwa perintah ini aman. |
credential_source.aws.url |
Library autentikasi mengeluarkan permintaan ke URL ini untuk mengambil token keamanan AWS. |
Salah satu nilai persis berikut:
|
credential_source.aws.region_url |
Library autentikasi mengeluarkan permintaan ke URL ini untuk mengambil region AWS yang aktif. |
Salah satu nilai persis berikut:
|
credential_source.aws.imdsv2_session_token_url |
Library autentikasi mengeluarkan permintaan ke URL ini untuk mengambil token sesi AWS. |
Salah satu nilai persis berikut:
|
Langkah selanjutnya
- Pelajari lebih lanjut tentang Kredensial Default Aplikasi.
- Lihat ringkasan Metode autentikasi.