Mengamankan fungsi Cloud Run

Halaman ini memberikan ringkasan umum tentang cara mengontrol interaksi dengan resource fungsi Cloud Run.

Kontrol akses

Ada dua pendekatan untuk mengontrol akses ke fungsi Cloud Run:

Mengamankan akses dengan identitas

Salah satu cara untuk mengontrol akses ke suatu fungsi adalah dengan mewajibkan entitas yang meminta mengidentifikasi dirinya sendiri menggunakan kredensial. Kredensial adalah semacam "nama", yang dilindungi oleh secret yang diketahui atau dapat diakses entity, seperti sandi atau dongle hardware. Secara default, fungsi di-deploy sebagai pribadi, dan memerlukan kredensial tersebut, meskipun mungkin saja men-deploy fungsi sebagai publik, yaitu tidak memerlukannya.

Langkah pertama dalam proses ini adalah memvalidasi kredensial untuk memastikan bahwa pemohon adalah orang yang diklaim, serta menampilkan kombinasi nama dan secret yang tepat. Langkah ini disebut (Authentication).

Setelah identitas pemohon diautentikasi, tingkat aksesnya, izin yang telah diberikan identitas, dapat dievaluasi. Langkah ini disebut (Authorization).

Autentikasi

Fungsi Cloud Run mendukung dua jenis identitas berbeda, yang juga disebut akun utama:

  • Akun layanan: Ini adalah akun khusus yang berfungsi sebagai identitas non-orang, seperti fungsi atau aplikasi atau VM. Mereka memberi Anda cara untuk mengautentikasi non-orang ini.
  • Akun pengguna: Akun ini mewakili orang - baik sebagai pemegang akun Google perorangan atau sebagai bagian dari entity yang dikontrol Google seperti Google Grup.

Untuk akun layanan dan akun pengguna, bagian nama kredensial biasanya berupa alamat email yang terkait dengan akun tersebut. Secret untuk akun pengguna biasanya berupa sandi, dan untuk akun layanan, biasanya kunci pribadi dari pasangan kunci yang dibuat bersama akun tersebut.

Namun, sandi pengguna dan kunci akun layanan sendiri sangat kuat: keduanya dapat memberikan akses yang luas ke data dan fungsionalitas, serta tetap efektif hingga dicabut atau diubah secara aktif. Jadi, untuk membatasi potensi kerusakan yang mungkin terjadi jika kredensial bocor, di Google Cloud, kredensial inti ini diganti dengan kredensial jangka pendek berdasarkan kredensial tersebut, yaitu token, yaitu yang memiliki masa pakai terbatas dan dibuat dengan cepat sebagai bagian dari urutan permintaan. Token diteruskan dengan permintaan dan berfungsi untuk mengautentikasi akun dengan aman.

Ada dua jenis token yang digunakan di fungsi Cloud Run: token akses dan token ID. Token akses biasanya digunakan untuk mengautentikasi panggilan API dan token ID digunakan untuk mengautentikasi panggilan ke kode yang dibuat developer, misalnya, jika suatu fungsi memanggil fungsi lain. Token tersebut dibuat menggunakan framework OAuth 2, dan ekstensinya, Open Identity Connect, tetapi urutannya rumit dan rentan error, serta penggunaan Library Klien Cloud untuk mengelola proses itu sangat disarankan.

Otorisasi

Setelah identitas entitas yang meminta dikonfirmasi, hal yang boleh dilakukan pemohon harus dievaluasi. Evaluasi ini didasarkan pada izin yang diberikan pada akun terautentikasi saat disiapkan. Fungsi Cloud Run menggunakan Identity and Access Management (IAM) untuk melakukan hal ini. Peran, yang merupakan kumpulan izin individu yang dikelompokkan untuk kemudahan, diberikan ke akun, baik secara langsung atau melalui konfigurasi yang disebut kebijakan. Setiap izin individual dalam kumpulan peran biasanya berhubungan dengan satu panggilan REST API yang diekspos oleh layanan yang diminta. Untuk informasi lebih lanjut tentang proses ini, lihat Memberikan Otorisasi Akses melalui IAM.

Kontrol akses berbasis jaringan

Anda juga dapat membatasi akses dengan menentukan setelan jaringan untuk setiap fungsi. Hal ini memungkinkan kontrol yang lebih baik atas traffic masuk dan keluar jaringan ke dan dari fungsi Anda.

Isolasi dan sandbox

Secara internal, instance fungsi diisolasi satu sama lain menggunakan platform sandbox gVisor. Secara desain, suatu fungsi tidak dapat mengakses lingkungan operasi fungsi lain.

Update lingkungan eksekusi

Google menyediakan patch keamanan dan update pemeliharaan setelah periode uji stabilitas. Fungsi Cloud Run dapat menerapkan update pada aspek lingkungan eksekusi lainnya, seperti sistem operasi atau paket yang disertakan. Update ini membantu menjaga keamanan lingkungan eksekusi fungsi Anda.

Update keamanan fungsi Cloud Run

Anda dapat memilih salah satu kebijakan update keamanan berikut:

  • Update otomatis (default): Update dan patch keamanan pada lingkungan runtime dipublikasikan dalam image runtime versi baru. Setelah periode pengujian stabilitas dan keandalan, runtime yang diperbarui akan diluncurkan ke semua fungsi sehingga tidak ada pembaruan periode nonaktif. Update keamanan otomatis tersedia dengan fungsi Cloud Run (generasi ke-1) dan fungsi Cloud Run. Untuk melakukan perbaikan keamanan tingkat bahasa, Anda mungkin perlu mem-build ulang fungsi yang menggunakan bahasa yang dikompilasi seperti Go atau Java.

  • Update saat deployment: Update dan patch keamanan diterapkan ke runtime hanya ketika fungsi di-deploy atau di-deploy ulang, kecuali jika dinyatakan lain. Update saat deployment tersedia di fungsi Cloud Run (generasi ke-1) dan fungsi Cloud Run.

Kebijakan update runtime dapat diubah menggunakan flag --runtime-update-policy dalam perintah gcloud deploy Anda.

Untuk mempelajari update keamanan lingkungan eksekusi lebih lanjut, lihat kebijakan update keamanan.