Mengamankan Cloud Function Anda
Halaman ini memberikan ringkasan umum tentang cara mengontrol interaksi dengan resource Cloud Functions.
Kontrol akses
Ada dua pendekatan untuk mengontrol akses ke Cloud Functions:
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
).
Authentication
Cloud Functions 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 Cloud Functions: 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. Cloud Functions 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. Cloud Functions 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 Cloud Functions
Cloud Functions menawarkan dua kebijakan update keamanan:
Update otomatis: 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 hanya tersedia dengan Cloud Functions (generasi ke-1).
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 Cloud Functions (generasi ke-1) dan Cloud Functions (generasi ke-2).
Untuk mempelajari update keamanan lingkungan eksekusi lebih lanjut, lihat kebijakan update keamanan.