Mengizinkan akses dengan IAM (generasi ke-1)

Anda menggunakan Identity and Access Management (IAM) untuk memberikan otorisasi identitas guna melakukan tindakan administratif pada fungsi Anda, seperti membuat, memperbarui, dan menghapusnya. Anda menambahkan principal (identitas yang ingin Anda aktifkan, biasanya email akun layanan atau pengguna) ke fungsi, lalu memberikan peran IAM yang sesuai pada principal tersebut. Peran ini mencakup izin yang menentukan tindakan yang boleh dilakukan.

Mengaktifkan akses ke fungsi

Anda dapat mengontrol tindakan pada fungsi dengan memberikan atau membatasi peran ke setiap identitas melalui IAM.

Menambahkan principal dan memberikan peran

Konsol

  1. Buka konsol Google Cloud :

    Buka konsol Google Cloud

  2. Klik kotak centang di samping fungsi yang Anda minati.

  3. Klik Permissions di bagian atas layar. Panel Permissions akan terbuka.

  4. Klik Add principal.

  5. Di kolom New principal, masukkan satu atau beberapa identitas yang memerlukan akses ke fungsi Anda. Identitas ini biasanya berupa email akun layanan atau pengguna.

  6. Pilih satu (atau beberapa) peran dari menu drop-down Select a role. Peran yang Anda pilih akan muncul di panel dengan deskripsi singkat tentang izin yang diberikan.

  7. Klik Save.

gcloud

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

gcloud functions add-iam-policy-binding FUNCTION_NAME \
  --member=PRINCIPAL_ID \
  --role=ROLE

dengan FUNCTION_NAME sebagai nama fungsi, PRINCIPAL_ID sebagai ID principal, biasanya berupa email, dan ROLE sebagai peran.

Untuk mengetahui daftar sumber yang dapat menyediakan PRINCIPAL_ID, lihat ID principal. Untuk mengetahui daftar nilai yang dapat diterima untuk ROLE, lihat halaman referensi Peran IAM fungsi Cloud Run.

Menghapus peran dari principal

Konsol

  1. Buka konsol Google Cloud :

    Buka konsol Google Cloud

  2. Klik kotak centang di samping fungsi yang Anda minati.

  3. Klik Permissions di bagian atas layar. Panel Permissions akan terbuka.

  4. Cari principal yang ingin Anda hapus. Lihat di setiap peran yang telah diberikan kepada principal.

  5. Jika Anda menemukan principal dalam peran yang ingin dihapus, klik ikon tempat sampah di sampingnya. Jika Anda ingin menghapus akses principal sepenuhnya, lakukan ini untuk setiap peran yang telah diberikan kepada principal.

gcloud

Gunakan perintah gcloud functions remove-iam-policy-binding:

  gcloud functions remove-iam-policy-binding FUNCTION_NAME \
    --member=PRINCIPAL_ID \
    --role=ROLE

dengan FUNCTION_NAME sebagai nama fungsi, PRINCIPAL_ID sebagai alamat email yang mengidentifikasi akun layanan, diawali dengan serviceAccount:, dan ROLE sebagai peran.

Untuk mengetahui daftar sumber yang dapat diterima untuk PRINCIPAL_ID, lihat ID principal. Untuk mengetahui daftar kemungkinan nilai untuk ROLE, lihat halaman referensi Peran IAM fungsi Cloud Run.

Jika principal telah diberi beberapa peran, pastikan Anda menentukan peran yang ingin dihapus.

Penambahan massal principal

Konsol

  1. Buka konsol Google Cloud :

    Buka konsol Google Cloud

  2. Klik kotak centang di samping fungsi yang ingin Anda beri atau batasi aksesnya.

  3. Klik Permissions di bagian atas layar. Panel Permissions akan terbuka.

Untuk menambahkan principal:

  1. Klik Add principal.

  2. Di kolom New principals, masukkan beberapa identitas yang memerlukan akses ke fungsi Anda.

  3. Pilih satu (atau beberapa) peran dari menu drop-down Select a role. Peran yang Anda pilih akan muncul di panel dengan deskripsi singkat tentang izin yang diberikan.

  4. Klik Save.

gcloud

Buat kebijakan IAM bernama, misalnya, policy.json:

{
  "bindings": [
    {
      "role": ROLE,
      "members": [
        PRINCIPAL_ID
      ]
    }
  ]
}

Gunakan perintah gcloud functions set-iam-policy:

gcloud functions set-iam-policy FUNCTION_NAME policy.json

Untuk mengetahui daftar sumber yang dapat diterima untuk PRINCIPAL_ID, lihat ID principal. Untuk mengetahui daftar nilai yang dapat diterima untuk ROLE, lihat halaman referensi Peran IAM fungsi Cloud Run.

Melihat principal

Konsol

  1. Buka konsol Google Cloud :

    Buka konsol Google Cloud

  2. Klik nama fungsi yang diminati.

  3. Pilih tab Permissions. Panel Permissions akan terbuka.

  4. Pilih tab View by principals untuk melihat daftar semua principal dengan izin pada fungsi yang dipilih.

gcloud

Gunakan perintah gcloud functions get-iam-policy:

gcloud functions get-iam-policy FUNCTION_NAME

Mengizinkan pemanggilan fungsi HTTP yang tidak diautentikasi

Mulai tanggal 15 Januari 2020, fungsi HTTP yang tidak mengaktifkan Allow unauthenticated invocations akan membatasi akses bagi pengguna akhir dan akun layanan yang tidak memiliki izin yang sesuai.

Untuk mengizinkan pemanggilan yang tidak diautentikasi, Anda harus menentukan ini pada atau setelah deployment.

Anda menggunakan varian khusus dari pendekatan yang dijelaskan sebelumnya untuk memberikan kemampuan kepada invoker yang tidak terautentikasi untuk memanggil fungsi HTTP.

Saat deployment

Konsol

Pilih Allow unauthenticated invocations di bagian Authentication pada panel Trigger.

gcloud

Perintah gcloud functions deploy menyertakan prompt untuk membantu Anda mengonfigurasi izin pemanggilan selama pembuatan fungsi. Perintah ini juga dapat menyertakan flag --allow-unauthenticated:

gcloud functions deploy FUNCTION_NAME \
  --no-gen2 \
  --trigger-http \
--allow-unauthenticated \
...

Deployment fungsi yang sama pada kesempatan berikutnya tidak akan mengubah statusnya, meskipun Anda tidak menggunakan flag ini.

Setelah deployment

Untuk mengizinkan pemanggilan fungsi yang tidak terautentikasi, berikan peran Cloud Functions Invoker ke principal allUsers khusus pada fungsi:

Konsol

  1. Buka konsol Google Cloud :

    Buka konsol Google Cloud

  2. Klik kotak centang di samping fungsi penerima. (Jangan mengklik fungsi.)

  3. Klik Permissions di bagian atas layar. Panel Permissions akan terbuka.

  4. Klik Add principal.

  5. Di kolom New principals, ketik allUsers.

  6. Pilih peran Cloud Functions > Cloud Functions Invoker dari menu drop-down Select a role.

  7. Sebagai respons terhadap dialog, klik Allow public access.

gcloud

Gunakan perintah gcloud functions add-iam-policy-binding untuk memberikan peran roles/cloudfunctions.invoker ke principal allUsers khusus pada fungsi:

gcloud functions add-iam-policy-binding FUNCTION_NAME \
 --member="allUsers" \
 --role="roles/cloudfunctions.invoker"

Lihat referensi gcloud functions add-iam-policy-binding untuk mengetahui informasi selengkapnya tentang kolom ini.

Berbagi dengan Domain Terbatas

Jika Anda mengembangkan fungsi dalam project yang tunduk pada kebijakan organisasi Berbagi yang Dibatasi Domain, Anda tidak akan dapat mengizinkan pemanggilan fungsi yang tidak diautentikasi. Kebijakan ini membatasi berbagi data publik untuk mengurangi risiko pemindahan data yang tidak sah.

Jika Anda ingin men-deploy fungsi yang mengizinkan pemanggilan yang tidak diautentikasi, sebaiknya hapus kebijakan organisasi Berbagi yang Dibatasi Domain di project. Kebijakan organisasi dapat ditetapkan di level organisasi, folder, atau project.

Setelah Anda membuat fungsi yang memungkinkan pemanggilan yang tidak terautentikasi, kebijakan organisasi dapat diaktifkan kembali:

  • Fungsi yang di-deploy sebelum kebijakan organisasi diaktifkan kembali akan terus mengizinkan pemanggilan yang tidak diautentikasi.
  • Versi baru dari fungsi yang sudah ada ini dapat di-deploy tanpa memerlukan pemanggilan yang diautentikasi.
  • Fungsi baru yang mengizinkan pemanggilan yang tidak diautentikasi tidak dapat di-deploy.

Mengontrol akses pada semua fungsi dalam sebuah project

Jika ingin memberikan peran untuk semua fungsi dalam sebuah project, Anda dapat memberikan peran ini di project.