Selain tindakan administratif seperti membuat, memperbarui, dan menghapus layanan, developer juga sering ingin menguji layanan secara pribadi sebelum merilisnya. Opsi ini ditujukan untuk layanan Cloud Run, bukan tugas Cloud Run.
Sebelum memulai
Pastikan Anda memberikan izin untuk mengakses layanan yang Anda autentikasi. Anda harus memberikan peran Cloud Run Invoker kepada developer atau grup developer:
UI Konsol
Buka konsol Google Cloud :
Pilih layanan, tetapi jangan klik.
Klik tab Izin di panel sebelah kanan. (Anda mungkin perlu mengklik Tampilkan Panel Info terlebih dahulu di pojok kanan atas.)
Klik Add Principal.
Di kolom New principals, masukkan email akun developer.
Pilih peran
Cloud Run Invoker
dari opsi Pilih peran di menu drop-down.Klik Simpan.
gcloud
Gunakan perintah gcloud run services add-iam-policy-binding
:
gcloud run services add-iam-policy-binding SERVICE \ --member='USER:EMAIL' \ --role='roles/run.invoker'
dengan
- SERVICE adalah nama layanan.
- USER adalah nilai
user
ataugroup
, bergantung pada apakah Anda memberikan otorisasi kepada satu developer atau grup. EMAIL adalah akun email.
Contoh:
gcloud run services add-iam-policy-binding myservice \ --member='user:test-user@gmail.com' \ --role='roles/run.invoker'
Menguji layanan pribadi
Anda dapat menggunakan proxy Cloud Run atau curl
untuk menguji layanan pribadi.
Menggunakan proxy Cloud Run di Google Cloud CLI
Cara termudah untuk menguji layanan pribadi adalah dengan menggunakan
proxy Cloud Run di Google Cloud CLI.
Proxy ini akan menjadi proxy layanan pribadi ke http://localhost:8080
(atau ke port yang ditentukan dengan --port
),
yang memberikan token akun aktif atau token lain yang Anda tentukan.
Hal ini memungkinkan Anda menggunakan browser web atau alat seperti curl
.
Cara ini direkomendasikan untuk menguji situs atau API secara pribadi di browser Anda.
Anda dapat melakukan proxy layanan secara lokal menggunakan command line berikut di lingkungan Linux, macOS, WSL (lebih disukai), atau cygwin:
gcloud run services proxy SERVICE --project PROJECT-ID
Gunakan curl
Atau, Anda dapat menguji layanan pribadi tanpa proxy menggunakan alat
seperti curl
dan dengan meneruskan token autentikasi di header Authorization
:
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" SERVICE_URL
Agar perintah curl
berfungsi, Anda harus meneruskan token ID yang valid
untuk pengguna dengan izin run.routes.invoke
, seperti
Cloud Run Admin atau Cloud Run Invoker. Lihat
Peran IAM Cloud Run untuk mengetahui
daftar lengkap peran dan izin yang terkait.
Untuk mendapatkan token ID yang valid bagi identitas yang login ke gcloud CLI,
gunakan perintah
gcloud auth print-identity-token
. Anda dapat menggunakan token yang dibuat oleh gcloud CLI untuk memanggil permintaan HTTP di project mana pun, selama akun Anda memiliki izin run.routes.invoke
pada layanan.
Untuk tujuan pengembangan, gunakan token ID yang dibuat gcloud CLI. Namun, perhatikan bahwa token tersebut tidak memiliki klaim audiens, sehingga rentan terhadap serangan replay. Di lingkungan produksi, gunakan token ID yang diterbitkan untuk akun layanan dengan audiens yang sesuai. Pendekatan ini meningkatkan keamanan dengan membatasi penggunaan token hanya untuk layanan yang dimaksud. Untuk Akun non-Google, gunakan Workforce Identity Federation untuk memanggil layanan Cloud Run sehingga Anda tidak perlu mendownload kunci akun layanan.
Sebaiknya alokasikan kumpulan izin minimum yang diperlukan untuk mengembangkan dan menggunakan layanan Anda. Pastikan kebijakan IAM pada layanan Anda dibatasi untuk jumlah pengguna dan akun layanan minimum.