Kontrol akses dengan IAM

Secara default, hanya pemilik dan editor project yang dapat membuat, memperbarui, menghapus, atau memanggil layanan dan tugas, dan hanya pemilik project serta Admin Cloud Run yang dapat mengubah kebijakan Identity and Access Management (IAM)—misalnya, untuk menjadikan suatu layanan bersifat publik. Buka Peran IAM Cloud Run untuk mengetahui detailnya.

Untuk mengizinkan akun utama atau grup lain melakukan tindakan ini, gunakan IAM untuk memberikan peran ke berbagai akun utama.

Peran Cloud Run yang telah ditetapkan

Dibandingkan dengan peran dasar (Pemilik, Editor, dan Viewer), peran bawaan berikut memiliki kontrol akses yang lebih terperinci untuk mengakses resource Cloud Run:

Peran Deskripsi
Admin Cloud Run (roles/run.admin) Dapat membuat, memperbarui, dan menghapus layanan dan tugas, dapat memperoleh, mencantumkan, dan menghapus eksekusi tugas.
Dapat memanggil layanan dan tugas, dapat membatalkan eksekusi tugas.
Dapat melihat, menerapkan, dan menolak rekomendasi.
Memerlukan konfigurasi tambahan untuk men-deploy layanan.
Developer Cloud Run (roles/run.developer) Dapat membuat, memperbarui, dan menghapus layanan dan tugas, dapat memperoleh, mencantumkan, dan menghapus eksekusi tugas.
Dapat memperoleh, tetapi tidak dapat menetapkan kebijakan IAM.
Dapat melihat, menerapkan, dan menolak rekomendasi.
Penampil Cloud Run (roles/run.viewer) Dapat melihat layanan, tugas, dan eksekusi tugas.
Dapat memperoleh kebijakan IAM.
Dapat melihat rekomendasi.
Invoker Cloud Run (roles/run.invoker) Dapat memanggil layanan dan tugas, dapat membatalkan eksekusi tugas.

Mengontrol akses pada setiap layanan atau tugas

Anda dapat mengontrol akses berdasarkan layanan atau pekerjaan tertentu menggunakan IAM.

Membuat layanan menjadi publik

Opsi ini ditujukan untuk layanan Cloud Run yang merupakan API publik atau situs web.

Anda dapat mengizinkan pemanggilan yang tidak diautentikasi ke layanan dengan menetapkan peran IAM Cloud Run Invoker ke jenis anggota allUsers.

Anda harus memiliki izin run.services.setIamPolicy untuk mengonfigurasi autentikasi pada layanan Cloud Run. Izin ini termasuk dalam peran Owner dan Cloud Run Admin. Lihat peran IAM Cloud Run untuk mengetahui daftar lengkap peran dan izin terkaitnya.

UI Konsol

Untuk layanan Cloud Run yang sudah ada:

  1. Buka Konsol Google Cloud:

    Buka Konsol Google Cloud

  2. Klik kotak centang di sebelah kiri layanan yang ingin dipublikasikan. (Jangan mengklik layanan.)

  3. Di panel informasi pojok kanan atas, klik tab Izin. Jika panel informasi tidak terlihat, Anda mungkin perlu mengklik Tampilkan Panel Info, lalu klik Izin.

  4. Klik Tambahkan akun utama.

Di kotak teks Akun utama baru, masukkan nilai allUsers

  1. Dari menu dropdown Role, pilih peran Cloud Run Invoker.

  2. Klik Save.

  3. Anda akan diminta untuk memverifikasi bahwa Anda ingin menjadikan referensi ini publik. Klik Izinkan akses publik untuk menerapkan perubahan pada setelan layanan IAM.

Untuk layanan baru yang Anda buat, buat layanan, tetapi pastikan Anda memilih Izinkan pemanggilan tidak diautentikasi di tab Autentikasi untuk membuat layanan menjadi tersedia untuk publik. Memilih Wajibkan autentikasi akan membuat layanan menjadi pribadi.

gcloud

Agar layanan dapat diakses secara publik, gunakan perintah gcloud run services untuk menambahkan jenis anggota allUsers khusus ke layanan dan memberikan peran roles/run.invoker:

  gcloud run services add-iam-policy-binding [SERVICE_NAME] \
    --member="allUsers" \
    --role="roles/run.invoker"

Atau, jalankan perintah gcloud run deploy agar layanan Anda dapat diakses secara publik saat Anda men-deploy layanan:

gcloud run deploy [SERVICE_NAME] ... --allow-unauthenticated

YAML

Buat file bernama policy.yaml dengan konten berikut:

bindings:
- members:
  - allUsers
  role: roles/run.invoker

Izinkan pemanggilan yang tidak diautentikasi untuk SERVICE yang ada menggunakan:

gcloud run services set-iam-policy SERVICE policy.yaml

Terraform

Untuk membuat layanan Cloud Run, tambahkan kode berikut ke file main.tf Anda yang sudah ada:

resource "google_cloud_run_v2_service" "default" {
  name     = "cloud-run-srv"
  location = "us-central1"

  template {
    containers {
      image = "us-docker.pkg.dev/cloudrun/container/hello"
    }
  }
}

Untuk memperbarui binding IAM layanan untuk roles/run.invoker, tambahkan resource berikut yang merujuk ke layanan Cloud Run Anda:

resource "google_cloud_run_service_iam_binding" "default" {
  location = google_cloud_run_v2_service.default.location
  service  = google_cloud_run_v2_service.default.name
  role     = "roles/run.invoker"
  members = [
    "allUsers"
  ]
}

Binding ini hanya bersifat otoritatif untuk peran yang diberikan. Binding IAM lainnya dalam kebijakan IAM layanan dipertahankan.

Berbagi dengan domain terbatas

Jika project tunduk pada batasan berbagi yang dibatasi domain dalam kebijakan organisasi, Anda tidak akan dapat membuat layanan publik secara default. Anda dapat menggunakan tag dan kebijakan kondisional untuk mengecualikan layanan tertentu dari batasan ini. Untuk mengetahui detailnya, lihat postingan blog tentang membuat layanan Cloud Run publik ketika fitur berbagi yang dibatasi domain diterapkan.

Menambahkan akun utama

Anda dapat menambahkan akun utama ke tugas atau layanan.

Menambahkan akun utama ke layanan

Untuk menambahkan akun utama ke layanan:

UI Konsol

  1. Buka Konsol Google Cloud:

    Buka Konsol Google Cloud

  2. Klik kotak centang di sebelah kiri layanan yang ingin Anda tambahkan akun utama. (Jangan mengklik layanan.)

  3. Di panel informasi pojok kanan atas, klik tab Izin. Jika panel informasi tidak terlihat, Anda mungkin perlu mengklik Tampilkan Panel Info, lalu klik Izin.

  4. Klik Tambahkan akun utama.

  5. Di kotak teks Akun utama baru, masukkan satu atau beberapa identitas yang memerlukan akses ke layanan Anda.

  6. Dari menu dropdown Peran, pilih satu atau beberapa peran. Peran yang Anda pilih akan muncul di panel dengan deskripsi singkat tentang izin yang diberikan.

  7. Klik Save.

gcloud

Gunakan perintah gcloud run services add-iam-policy-binding:

gcloud run services add-iam-policy-binding SERVICE_NAME \
  --member=MEMBER_TYPE \
  --role=ROLE

dengan SERVICE_NAME adalah nama layanan, MEMBER_TYPE adalah jenis utama (misalnya user:email@domain.com), dan ROLE adalah perannya.

Untuk mengetahui daftar nilai yang dapat diterima untuk MEMBER_TYPE, lihat halaman konsep IAM. Untuk mengetahui daftar nilai yang dapat diterima untuk ROLE, lihat Peran IAM Cloud Run.

Menambahkan akun utama ke tugas

Untuk menambahkan akun utama ke tugas:

UI Konsol

  1. Buka Konsol Google Cloud:

    Buka Konsol Google Cloud

  2. Klik kotak centang di sebelah kiri tugas yang ingin Anda tambahkan akun utama. (Jangan mengklik tugas.)

  3. Di panel informasi pojok kanan atas, klik tab Izin. Jika panel informasi tidak terlihat, Anda mungkin perlu mengklik Tampilkan Panel Info, lalu klik Izin.

  4. Klik Tambahkan akun utama.

  5. Di kotak teks Akun utama baru, masukkan satu atau beberapa identitas yang memerlukan akses ke tugas Anda.

  6. Dari menu dropdown Peran, pilih satu atau beberapa peran. Peran yang Anda pilih akan muncul di panel dengan deskripsi singkat tentang izin yang diberikan.

  7. Klik Save.

gcloud

Gunakan perintah gcloud run jobs add-iam-policy-binding:

gcloud run jobs add-iam-policy-binding JOB_NAME \
  --member=MEMBER_TYPE \
  --role=ROLE

dengan JOB_NAME adalah nama tugas, MEMBER_TYPE adalah jenis utama (misalnya user:email@domain.com), dan ROLE adalah perannya.

Untuk mengetahui daftar nilai yang dapat diterima untuk MEMBER_TYPE, lihat halaman konsep IAM. Untuk mengetahui daftar nilai yang dapat diterima untuk ROLE, lihat Peran IAM Cloud Run.

Hapus akun utama dari peran

Anda dapat menghapus akun utama dari layanan atau tugas.

Hapus akun utama dari peran untuk layanan

Untuk menghapus akun utama dari peran untuk layanan:

UI Konsol

  1. Buka Konsol Google Cloud:

    Buka Konsol Google Cloud

  2. Klik kotak centang di sebelah kiri layanan yang akun utamanya ingin Anda hapus. (Jangan mengklik layanan.)

  3. Di panel informasi pojok kanan atas, klik tab Izin. Jika panel informasi tidak terlihat, Anda mungkin perlu mengklik Tampilkan Panel Info, lalu klik Izin.

  4. Masukkan akun utama yang ingin Anda hapus ke dalam filter daftar peran. Daftar ini akan menampilkan semua peran yang telah diberikan kepada akun utama.

  5. Klik ikon sampah hapus di samping akun utama dalam peran yang diinginkan untuk menghapus peran tersebut dari akun utama.

  6. Pada dialog konfirmasi, Anda memiliki opsi untuk menghapus akun utama tersebut dari semua peran dalam layanan. Klik Hapus untuk menghapus akun utama dari peran.

gcloud

Gunakan perintah gcloud run services remove-iam-policy-binding:

  gcloud run services remove-iam-policy-binding SERVICE_NAME \
    --member=MEMBER_TYPE \
    --role=ROLE

dengan SERVICE_NAME adalah nama layanan, MEMBER_TYPE adalah jenis utama (misalnya user:email@domain.com), dan ROLE adalah perannya.

Untuk mengetahui daftar nilai yang dapat diterima untuk MEMBER_TYPE, lihat halaman konsep IAM. Untuk mengetahui daftar nilai yang dapat diterima untuk ROLE, lihat Peran IAM Cloud Run.

Hapus akun utama dari peran untuk tugas

Untuk menghapus akun utama dari peran untuk tugas:

UI Konsol

  1. Buka Konsol Google Cloud:

    Buka Konsol Google Cloud

  2. Klik kotak centang di sebelah kiri tugas yang ingin Anda tambahkan akun utama. (Jangan mengklik tugas.)

  3. Di panel informasi pojok kanan atas, klik tab Izin. Jika panel informasi tidak terlihat, Anda mungkin perlu mengklik Tampilkan Panel Info, lalu klik Izin.

  4. Masukkan akun utama yang ingin Anda hapus ke dalam filter daftar peran. Daftar ini akan menampilkan semua peran yang telah diberikan kepada akun utama.

  5. Klik ikon sampah hapus di samping akun utama dalam peran yang diinginkan untuk menghapus peran tersebut dari akun utama.

  6. Pada dialog konfirmasi, Anda memiliki opsi untuk menghapus akun utama tersebut dari semua peran dalam tugas. Klik Hapus untuk menghapus akun utama dari peran.

gcloud

Gunakan perintah gcloud run jobs remove-iam-policy-binding:

  gcloud run jobs remove-iam-policy-binding JOB_NAME \
    --member=MEMBER_TYPE \
    --role=ROLE

dengan JOB_NAME adalah nama tugas, MEMBER_TYPE adalah jenis utama (misalnya user:email@domain.com), dan ROLE adalah perannya.

Untuk mengetahui daftar nilai yang dapat diterima untuk MEMBER_TYPE, lihat halaman konsep IAM. Untuk mengetahui daftar nilai yang dapat diterima untuk ROLE, lihat Peran IAM Cloud Run.

Penambahan atau penghapusan akun utama dalam jumlah besar

Anda dapat melakukan penambahan atau penghapusan dalam jumlah besar untuk layanan dan tugas.

Menambah atau menghapus akun utama pada layanan dalam jumlah besar

Untuk melakukan penambahan atau penghapusan dalam jumlah besar untuk suatu layanan:

UI Konsol

  1. Buka Konsol Google Cloud:

    Buka Konsol Google Cloud

  2. Klik kotak centang di sebelah kiri layanan yang ingin Anda tambahkan atau hapus dari akun utama. (Jangan mengklik layanan.)

  3. Pilih layanan yang ingin Anda tambahkan atau hapus dari akun utama.

  4. Di panel informasi pojok kanan atas, klik tab Izin. Jika panel informasi tidak terlihat, Anda mungkin perlu mengklik Tampilkan Panel Info, lalu klik Izin.

Jika Anda ingin menambahkan akun utama:

  1. Klik Tambahkan akun utama.

  2. Di kotak teks Akun utama baru, masukkan satu atau beberapa identitas yang memerlukan akses ke layanan Anda.

  3. Dari menu dropdown Peran, pilih peran (atau beberapa peran) Peran yang Anda pilih akan muncul di panel dengan deskripsi singkat tentang izin yang diberikan.

  4. Klik Save.

Jika Anda ingin menghapus akun utama:

  1. Masukkan akun utama yang ingin Anda hapus ke dalam filter daftar peran. Daftar ini akan menampilkan semua peran yang telah diberikan kepada akun utama.

  2. Klik ikon sampah hapus di samping akun utama dalam peran yang diinginkan untuk menghapus peran tersebut dari akun utama.

  3. Pada dialog konfirmasi, Anda memiliki opsi untuk menghapus akun utama tersebut dari semua peran dalam layanan. Klik Hapus untuk menghapus akun utama dari peran.

gcloud

Membuat kebijakan IAM:

cat <<EOF > policy.json
{
  "bindings": [
    {
      "role": ROLE,
      "members": [
        MEMBER_TYPE
      ]
    }
  ]
}
EOF

Gunakan perintah gcloud run services set-iam-policy:

gcloud run services set-iam-policy SERVICE_NAME policy.json

Untuk mengetahui daftar nilai yang dapat diterima untuk MEMBER_TYPE, lihat halaman konsep IAM. Untuk mengetahui daftar nilai yang dapat diterima untuk ROLE, lihat Peran IAM Cloud Run.

Penambahan dan penghapusan akun utama dalam jumlah besar untuk tugas

Untuk melakukan penambahan atau penghapusan dalam jumlah besar untuk sebuah tugas:

UI Konsol

  1. Buka Konsol Google Cloud:

    Buka Konsol Google Cloud

  2. Klik kotak centang di sebelah kiri tugas yang ingin Anda tambahkan akun utama. (Jangan mengklik tugas.)

  3. Pilih tugas yang ingin Anda tambah atau hapus akun utama.

  4. Di panel informasi pojok kanan atas, klik tab Izin. Jika panel informasi tidak terlihat, Anda mungkin perlu mengklik Tampilkan Panel Info, lalu klik Izin.

Jika Anda ingin menambahkan akun utama:

  1. Klik Tambahkan akun utama.

  2. Di kotak teks Akun utama baru, masukkan satu atau beberapa identitas yang memerlukan akses ke layanan Anda.

  3. Dari menu dropdown Peran, pilih peran (atau beberapa peran) Peran yang Anda pilih akan muncul di panel dengan deskripsi singkat tentang izin yang diberikan.

  4. Klik Save.

Jika Anda ingin menghapus akun utama:

  1. Masukkan akun utama yang ingin Anda hapus ke dalam filter daftar peran. Daftar ini akan menampilkan semua peran yang telah diberikan kepada akun utama.

  2. Klik ikon sampah hapus di samping akun utama dalam peran yang diinginkan untuk menghapus peran tersebut dari akun utama.

  3. Pada dialog konfirmasi, Anda memiliki opsi untuk menghapus akun utama tersebut dari semua peran dalam tugas. Klik Hapus untuk menghapus akun utama dari peran.

gcloud

Membuat kebijakan IAM:

cat <<EOF > policy.json
{
  "bindings": [
    {
      "role": ROLE,
      "members": [
        MEMBER_TYPE
      ]
    }
  ]
}
EOF

Gunakan perintah gcloud run jobs set-iam-policy:

gcloud run jobs set-iam-policy JOB_NAME policy.json

Untuk mengetahui daftar nilai yang dapat diterima untuk MEMBER_TYPE, lihat halaman konsep IAM. Untuk mengetahui daftar nilai yang dapat diterima untuk ROLE, lihat Peran IAM Cloud Run.

Melihat akun utama

Anda dapat melihat akun utama untuk layanan dan tugas.

Melihat prinsipal untuk suatu layanan

Untuk melihat akun utama untuk suatu layanan:

UI Konsol

  1. Buka Konsol Google Cloud:

    Buka Konsol Google Cloud

  2. Klik kotak centang di sebelah kiri layanan yang ingin Anda lihat untuk akun utama dan peran. (Jangan mengklik layanan.)

  3. Pilih layanan yang ingin Anda lihat untuk akun utama dan peran.

  4. Di panel informasi pojok kanan atas, klik tab Izin. Jika panel informasi tidak terlihat, Anda mungkin perlu mengklik Tampilkan Panel Info, lalu klik Izin.

  5. Daftar peran dan akun utama akan ditampilkan dan dikelompokkan berdasarkan peran yang diberikan.

gcloud

Gunakan perintah gcloud run services get-iam-policy:

gcloud run services get-iam-policy SERVICE_NAME

Menampilkan akun utama untuk suatu tugas

Untuk menampilkan akun utama tugas:

UI Konsol

  1. Buka Konsol Google Cloud:

    Buka Konsol Google Cloud

  2. Klik kotak centang di sebelah kiri tugas yang ingin Anda tambahkan akun utama. (Jangan mengklik tugas.)

  3. Pilih tugas yang ingin Anda tampilkan untuk akun utama dan peran.

  4. Di panel informasi pojok kanan atas, klik tab Izin. Jika panel informasi tidak terlihat, Anda mungkin perlu mengklik Tampilkan Panel Info, lalu klik Izin.

  5. Daftar peran dan akun utama akan ditampilkan dan dikelompokkan berdasarkan peran yang diberikan.

gcloud

Gunakan perintah gcloud run jobs get-iam-policy:

gcloud run jobs get-iam-policy JOB_NAME

Mengontrol akses pada semua layanan dan tugas dalam sebuah project

Jika ingin memberikan peran kepada akun utama di semua layanan dan tugas dalam sebuah project, Anda dapat menggunakan IAM level project.

UI Konsol

  1. Buka Konsol Google Cloud:

    Buka Konsol Google Cloud

  2. Temukan akun utama yang ingin Anda berikan peran di seluruh project.

  3. Klik ikon edit Pensil di sisi kanan baris akun utama.

  4. Klik Tambahkan peran lain, lalu pilih peran yang diinginkan.

  5. Klik Save.

gcloud

Gunakan perintah gcloud projects add-iam-policy-binding:

gcloud projects add-iam-policy-binding PROJECT_ID \
  --member=MEMBER_TYPE \
  --role=ROLE

dengan MEMBER_TYPE adalah jenis utama (misalnya user:email@domain.com), dan ROLE adalah peran (misalnya roles/run.admin).

Jenis akun utama allUsers dan allAuthenticatedUsers tidak dapat diterapkan pada level project. Sebagai gantinya, keduanya harus ditambahkan ke setiap layanan satu per satu.

Langkah berikutnya

Pelajari cara mengautentikasi developer, layanan, dan pengguna dengan aman ke layanan yang baru saja Anda amankan.