Mengautentikasi developer

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

  1. Buka Konsol Google Cloud:

    Buka Konsol Google Cloud

  2. Pilih layanan, tetapi jangan klik.

  3. Klik tab Izin di panel sebelah kanan. (Anda mungkin perlu mengklik Tampilkan Panel Info terlebih dahulu di pojok kanan atas.)

  4. Klik Tambahkan anggota.

  5. Di kolom Tambahkan anggota, masukkan email akun developer.

  6. Pilih peran Cloud Run Invoker dari opsi Pilih peran di menu drop-down.

  7. 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 atau group, 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

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 perintah berikut:

gcloud run services proxy SERVICE --project PROJECT-ID

Menggunakan 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.

Guna mendapatkan token ID yang valid untuk identitas yang login ke gcloud CLI, gunakan gcloud auth print-identity-token. Anda dapat menggunakan token yang dibuat oleh gcloud CLI untuk memanggil permintaan HTTP di project apa pun selama akun Anda memiliki izin run.routes.invoke di layanan. Untuk tujuan pengembangan, gunakan token ID yang dihasilkan gcloud CLI. Namun, perlu diperhatikan bahwa token tersebut tidak memiliki klaim audiens, sehingga rentan terhadap serangan relai. Dalam lingkungan produksi, gunakan token ID yang dikeluarkan untuk akun layanan dengan audience yang sesuai yang telah ditentukan. Pendekatan ini meningkatkan keamanan dengan membatasi penggunaan token hanya untuk layanan yang dimaksud.

Sebaiknya alokasikan kumpulan izin minimum yang diperlukan untuk mengembangkan dan menggunakan layanan Anda. Pastikan kebijakan IAM pada layanan Anda dibatasi untuk jumlah minimum pengguna dan akun layanan.