Kontrol akses dengan IAM

Secara default, hanya pemilik project dan editor yang dapat membuat, memperbarui, menghapus, atau memanggil layanan dan tugas. Hanya pemilik project dan Admin Cloud Run yang dapat mengubah kebijakan Identity and Access Management (IAM). Misalnya, membuat layanan menjadi 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 bawaan Cloud Run

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

Peran Deskripsi
Cloud Run Admin (roles/run.admin) Dapat membuat, memperbarui, dan menghapus layanan dan tugas, dapat mendapatkan, mencantumkan, menghapus eksekusi tugas.
Dapat memanggil layanan dan tugas, dapat membatalkan eksekusi tugas.
Dapat mendapatkan dan menetapkan kebijakan IAM.
Dapat melihat, menerapkan, dan menutup rekomendasi.
Memerlukan konfigurasi tambahan untuk men-deploy layanan.
Cloud Run Developer (roles/run.developer) Dapat membuat, memperbarui, dan menghapus layanan dan tugas, dapat mendapatkan, mencantumkan, menghapus eksekusi tugas.
Dapat mendapatkan, tetapi tidak menetapkan kebijakan IAM.
Dapat melihat, menerapkan, dan menutup rekomendasi.
Cloud Run Viewer (roles/run.viewer) Dapat melihat layanan, tugas, dan eksekusi tugas.
Dapat mendapatkan kebijakan IAM.
Dapat melihat rekomendasi.
Cloud Run Invoker (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 kolom New principals, masukkan nilai allUsers

  1. Dari menu drop-down Role, pilih peran Cloud Run Invoker.

  2. Klik Simpan.

  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

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

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

Jalankan perintah gcloud run deploy untuk membuat 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     = "public-service"
  location = "us-central1"

  deletion_protection = false # set to "true" in production

  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 samping 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 kolom 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 Simpan.

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

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

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

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

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.

Menonaktifkan Cloud Run Invoker untuk layanan

Anda dapat menonaktifkan atau mengaktifkan kembali pemeriksaan IAM Invoker Cloud Run untuk layanan Cloud Run apa pun. Pemeriksaan diterapkan secara default.

Untuk menonaktifkan atau mengaktifkan kembali pemeriksaan IAM Pemanggil di layanan, Anda harus memiliki izin berikut:

  • run.services.create
  • run.services.update
  • run.services.setIamPolicy

Izin ini termasuk dalam peran Owner dan Cloud Run Admin. Lihat peran IAM Cloud Run untuk mengetahui daftar lengkap peran dan izin terkaitnya.

Menonaktifkan pemeriksaan IAM Cloud Run Invoker

  1. Ganti batasan kebijakan organisasi constraints/run.requireInvokerIam di tingkat organisasi atau project sesuai kebutuhan. Anda dapat menggunakan tag untuk menetapkan aturan yang lebih terperinci untuk layanan Cloud Run tertentu.

    Untuk menghapus batasan kebijakan dari konsol Google Cloud:

    1. Buka IAM

    2. Klik tab Kebijakan Organisasi.

    3. Temukan kebijakan Allow Invoker IAM Disabled (Cloud Run), lalu pilih Edit policy dari menu Actions.

    4. Pastikan kebijakan dikonfigurasi ke Tidak diterapkan.

    5. Klik Set policy.

  2. Nonaktifkan pemeriksaan:

    Konsol

    1. Buka Cloud Run

    2. Klik Buat Layanan jika Anda mengonfigurasi layanan baru, lalu isi halaman setelan layanan awal sesuai kebutuhan. Jika Anda mengonfigurasi layanan yang ada, klik layanan tersebut, lalu klik Security.

    3. Hapus centang pada Gunakan Cloud IAM untuk mengautentikasi permintaan masuk.

    4. Klik Buat atau Simpan.

    gcloud

    • Gunakan flag --no-invoker-iam-check:

      gcloud run deploy SERVICE_NAME --no-invoker-iam-check

      dengan SERVICE_NAME adalah nama layanan.

    YAML

    1. Untuk melihat dan mendownload konfigurasi:

      gcloud run services describe SERVICE --format export > service.yaml
    2. Update anotasi run.googleapis.com/invoker-iam-disabled::

      apiVersion: serving.knative.dev/v1
      kind: Service
      metadata:
         annotations:
            run.googleapis.com/invoker-iam-disabled: true
         name: SERVICE_NAME

      dengan SERVICE_NAME adalah nama layanan Cloud Run Anda.

    3. Ganti layanan dengan konfigurasi barunya menggunakan perintah berikut:

      gcloud run services replace service.yaml

Pastikan pemeriksaan dinonaktifkan setelah deployment dengan membuka endpoint HTTPS layanan.

Mengaktifkan kembali pemeriksaan IAM Cloud Run Invoker

Untuk mengaktifkan kembali pemeriksaan:

Konsol

  1. Buka Cloud Run

  2. Klik layanan, lalu klik Security.

  3. Pilih Gunakan Cloud IAM untuk mengautentikasi permintaan masuk.

  4. Klik Simpan.

gcloud

  • Update layanan dengan meneruskan flag --invoker-iam-check:

    gcloud beta run services SERVICE_NAME --invoker-iam-check

    dengan SERVICE_NAME adalah nama layanan.

YAML

  1. Untuk melihat dan mendownload konfigurasi:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Update anotasi run.googleapis.com/invokerIamCheckDisabled::

    apiVersion: serving.knative.dev/v1
     kind: Service
     metadata:
        annotations:
           run.googleapis.com/invokerIamCheckDisabled: false
        name: SERVICE_NAME

    dengan SERVICE_NAME adalah nama layanan Cloud Run Anda.

Pastikan pemeriksaan diaktifkan kembali setelah deployment dengan membuka endpoint HTTPS layanan.

Langkah berikutnya

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