Dokumen ini menjelaskan praktik terbaik, skenario, dan prosedur untuk mencabut akses pengguna ke project Google Cloud. Gunakan dokumen ini untuk membuat kebijakan dan prosedur yang memungkinkan Anda mencabut akses secara konsisten dan tepat waktu.
Masa kritis dalam kehidupan resource Google Cloud adalah saat Anda perlu menghapus akses seseorang ke resource tersebut. Saat seorang karyawan keluar dari perusahaan, interaksi Anda dengan kontraktor berakhir, atau kolaborator beralih ke project lain, ada beberapa hal yang harus Anda lakukan untuk mencabut akses yang tidak diperlukan ke resource Anda secara menyeluruh.
Beberapa proses ini bersifat opsional. Anda harus menentukan langkah mana yang harus dilakukan, bergantung pada kebutuhan keamanan, produk yang digunakan, dan kepercayaan pada pengguna yang aksesnya dicabut.
Praktik terbaik untuk menyiapkan project Anda
Anda dapat meningkatkan kemampuan project untuk mencabut akses pengguna secara efisien dengan membuat pilihan yang bijaksana pada waktu penyiapan.
Gabungkan akun pengguna dengan penyedia identitas Anda yang sudah ada
Saat menggabungkan akun pengguna dengan penyedia identitas yang ada, Anda dapat menyinkronkan status akun pengguna. Jika Anda menghapus akun pengguna dari penyedia identitas, identitas pengguna di Cloud Identity juga akan dihapus, dan pengguna tidak lagi mendapatkan akses ke resource Google Cloud melalui kebijakan izin Anda.
Untuk informasi selengkapnya, lihat Praktik terbaik untuk menggabungkan Google Cloud dengan penyedia identitas eksternal.
Untuk praktik terbaik lainnya terkait identitas, lihat Praktik terbaik untuk merencanakan akun dan organisasi.
Gunakan Google Grup untuk mengelola akses ke resource project
Google Grup memungkinkan Anda mengatur pengguna berdasarkan keanggotaan tim mereka atau kriteria lain. Setelah membuat Google Grup, Anda dapat menetapkan akses ke project dan resource Google Cloud berdasarkan grup. Kemudian, saat pengguna berpindah ke tim lain, cukup pindahkan akun pengguna ke grup lain, yang secara otomatis menghapus akses yang diberikan oleh kebijakan izinkan ke grup sebelumnya.
Untuk informasi selengkapnya, lihat Mengelola grup di Google Cloud Console dan Membuat grup di organisasi Anda.
Gunakan Login OS.
Gunakan OS Login, bukan kunci SSH berbasis metadata, sehingga Anda dapat menautkan akun Linux pengguna ke identitas Google mereka. Saat Anda menghapus akun pengguna, kunci akan otomatis dicabut.
Untuk petunjuknya, lihat Menyiapkan Login OS.
Membatasi akses dari akun pengguna eksternal
Jangan berikan akses ke project kepada pengguna eksternal karena Anda tidak dapat mengontrol siklus proses akun pengguna ini. Untuk membatasi pengguna eksternal, gunakan batasan daftar iam.allowedPolicyMemberDomains
.
Untuk mengetahui petunjuknya, lihat Membatasi identitas menurut domain.
Gunakan proxy Auth Cloud SQL saat menghubungkan ke Cloud SQL
Proxy Auth Cloud SQL memungkinkan Anda menghubungkan beban kerja ke Cloud SQL berdasarkan izin IAM, bukan kontrol akses berbasis IP seperti jaringan yang diizinkan. Proxy Auth Cloud SQL memvalidasi koneksi dengan menggunakan kredensial untuk pengguna atau akun layanan, dan menggabungkan koneksi dalam lapisan SSL/TLS yang diberi otorisasi untuk instance Cloud SQL. Metode ini adalah metode koneksi yang lebih aman daripada menggunakan SSL/TLS atau jaringan resmi yang dikelola sendiri. Anda juga dapat menghapus akses ke Cloud SQL saat mencabut izin ke akun pengguna atau menghapus akun pengguna sepenuhnya.
Membatasi akses ke VM
Virtual machine, seperti yang digunakan oleh Compute Engine dan Google Kubernetes Engine, adalah permukaan serangan yang berpotensi besar. Jika seseorang memiliki akses ke VM terutama akses root atau Administrator sangat sulit untuk menjamin bahwa mereka tidak memodifikasi VM dan meninggalkan jejak untuk memungkinkan akses berikutnya. Batasi akses VM untuk orang-orang yang memiliki kebutuhan yang jelas dan spesifik.
Secara default, editor dan pemilik project memiliki akses administratif ke semua VM dalam project. Hapus akses default ini dan gunakan prinsip hak istimewa terendah untuk akses VM.
Sebelum memberikan akses login VM, pikirkan tugas apa yang memerlukan akses, dan tentukan apakah ada cara lain untuk memenuhi kebutuhan tersebut jika memungkinkan. Misalnya daripada memberikan akses login VM ke setiap developer untuk men-deploy kode, pertimbangkan untuk menggunakan alat seperti Chef, Puppet, dan Salt untuk mengelola deployment Anda.
Bersiap untuk rotasi kredensial
Desain project dan resource Anda agar kredensial level project dapat dirotasi dengan mudah dan tidak mengganggu. Ini adalah rahasia yang terkait dengan project itu sendiri, seperti kunci akun layanan, rahasia klien OAuth, dan rahasia khusus aplikasi, seperti sandi root database. Untuk informasi selengkapnya, lihat Menangani kredensial Google Cloud yang disusupi.
Membatasi kunci API
Saat membuat dan mengelola kunci API, batasi kumpulan situs web, alamat IP, dan aplikasi yang dapat menggunakannya. Akun pengguna dengan peran seperti Viewer atau Admin Kunci API dapat melihat kunci API project Anda, sehingga kunci apa pun yang tidak dibatasi harus dirotasi atau dihapus untuk mencabut akses penagihan. Untuk informasi selengkapnya, lihat Mengamankan kunci API.
Praktik terbaik tambahan
Selain praktik terbaik yang dijelaskan dalam dokumen ini, tinjau praktik terbaik berikut:
- Praktik terbaik untuk menggunakan akun layanan
- Tentukan keamanan untuk zona landing Google Cloud Anda
- Mengelola identitas dan akses
Skenario untuk mencabut akses ke project Google Cloud
Jika Anda mengimplementasikan praktik terbaik yang tercantum dalam Praktik terbaik untuk menyiapkan project, tabel berikut merangkum cara mencabut akses.
Skenario | Mencabut opsi akses |
---|---|
Ketika seorang karyawan keluar dari perusahaan Anda. | Jika Anda menyiapkan penggabungan
antara Cloud Identity atau Google Workspace dengan penyediaan pengguna otomatis, pencabutan akses dapat terjadi secara otomatis. Jika Anda tidak mengikuti praktik terbaik dan memberi identitas pengguna eksternal akses ke resource, Anda harus menghapus identitas secara manual dari project Anda dan sumber daya. |
Seorang karyawan mengubah fungsi pekerjaannya. | Kemudian Anda menghapus karyawan dari grup tim. |
Maka Interaksi kontrak berakhir. | Jika Anda menyiapkan penggabungan
antara Cloud Identity atau Google Workspace dengan penyediaan pengguna otomatis, pencabutan akses dapat terjadi secara otomatis. Jika Anda tidak mengikuti praktik terbaik dan memberi identitas pengguna eksternal akses ke resource, Anda harus menghapus identitas secara manual dari project Anda dan sumber daya. |
Akun yang disusupi. | Untuk petunjuknya, lihat Menangani kredensial Google Cloud yang disusupi. |
Cabut akses
Jika Anda telah membuat pilihan yang tepat dalam penyiapan project, proses berikut akan menjadi cara yang efisien untuk mencabut akses seseorang.
Untuk menentukan resource yang dapat diakses seseorang, gunakan Penganalisis Kebijakan. Untuk mengetahui petunjuknya, lihat Menganalisis kebijakan IAM.
Menghapus akun pengguna dari penyedia identitas
Jika pengguna keluar dari organisasi, dan Anda telah menggabungkan Cloud Identity atau Google Workspace dengan penyedia identitas melalui penyediaan pengguna otomatis, pencabutan akses dapat terjadi secara otomatis.
Memindahkan akun ke grup lain
Jika pengguna mengubah peran, hapus akun pengguna dari Google Grup mereka saat ini. Jika Anda telah menggabungkan Cloud Identity atau Google Workspace dengan penyedia identitas untuk mengelola keanggotaan grup, pencabutan akses dapat terjadi secara otomatis.
Menghapus akun pengguna dari keanggotaan project
Di konsol Google Cloud, buka halaman IAM Permissions:.
Pilih project yang ingin Anda hapus akun penggunanya.
Klik kotak centang di samping baris yang berisi akun pengguna yang ingin Anda hapus dari daftar anggota, lalu klik Hapus.
Merotasi kredensial project
Merotasi kunci akun layanan
Jika menggunakan kunci akun layanan untuk mengautentikasi ke akun layanan, Anda harus merotasi kunci. Selain itu, pertimbangkan apakah orang tersebut memiliki akses ke kunci akun layanan di luar alat Google Cloud, seperti repositori kode sumber atau konfigurasi aplikasi.
Di Google Cloud Console, buka halaman Kredensial API.
Klik nama akun layanan yang ingin diubah.
Pada tab Kunci, klik Tambahkan Kunci.
Klik Buat kunci baru.
Pilih Jenis kunci yang ingin dibuat. Dalam sebagian besar situasi, JSON direkomendasikan tetapi P12 tersedia untuk kompatibilitas mundur dengan kode yang bergantung padanya.
Klik Create. File yang berisi kunci baru akan otomatis didownload melalui browser Anda. Deploy kunci ini ke aplikasi apa pun yang membutuhkannya.
Setelah mengonfirmasi bahwa kunci baru berfungsi seperti yang diharapkan, kembali ke halaman kredensial dan hapus kunci lama yang terkait dengan akun layanan tersebut.
Merotasi rahasia client ID OAuth
Rahasia client ID OAuth tidak memberikan akses langsung ke project Anda. Namun, jika mengetahui rahasia client ID OAuth, penyerang dapat melakukan spoofing pada aplikasi Anda dan meminta akses ke Akun Google pengguna Anda dari aplikasi berbahaya.
Anda mungkin perlu merotasi rahasia client ID OAuth jika orang yang aksesnya dicabut pernah memiliki akses ke rahasia tersebut, termasuk dalam repositori kode sumber, konfigurasi aplikasi, atau melalui peran IAM.
Di Google Cloud Console, buka halaman Kredensial API.
Klik nama client ID OAuth 2.0 yang ingin diubah.
Di halaman ID Klien, klik Setel ulang rahasia.
Klik Reset pada dialog konfirmasi untuk segera mencabut rahasia lama dan menetapkan yang baru. Perhatikan bahwa setiap pengguna aktif harus autentikasi ulang pada permintaan berikutnya.
Deploy rahasia baru ini ke aplikasi apa pun yang membutuhkannya.
Rotasi kunci API
Kunci API tidak memberikan akses ke project atau data pengguna Anda, tetapi mengontrol siapa yang ditagih oleh Google untuk permintaan API. Akun pengguna dengan peran seperti Viewer atau Admin Kunci API dapat melihat kunci API project Anda. Jika memiliki kunci yang tidak dibatasi, Anda harus menghapus atau membuatnya ulang saat mencabut akses seseorang ke project Anda.
Di Google Cloud Console, buka halaman Kredensial API.
Klik nama kunci API yang ingin Anda modifikasi.
Klik Regenerate key.
Dialog akan menampilkan kunci yang baru dibuat. Deploy kunci ini ke aplikasi apa pun yang menggunakan kunci yang ingin Anda ganti.
Setelah mengonfirmasi bahwa aplikasi Anda berfungsi seperti yang diharapkan dengan kunci baru, kembali ke halaman kredensial dan hapus kunci lama yang tidak dibatasi.
Cabut akses ke VM
Jika orang yang aksesnya Anda dicabut tidak memiliki akses login ke salah satu VM project Anda, Anda dapat melewati langkah ini.
Hapus semua kunci SSH level project yang dapat diakses orang tersebut.
Pada setiap VM tempat orang tersebut memiliki akses SSH, hapus semua kunci level instance.
Hapus akun orang tersebut dari VM apa pun yang akses loginnya mereka miliki.
Periksa aplikasi mencurigakan yang mungkin telah diinstal orang tersebut untuk memberikan akses backdoor (akses backdoor) ke VM. Jika tidak yakin dengan keamanan kode apa pun yang berjalan di VM, buat ulang kode tersebut dan deploy ulang aplikasi yang Anda butuhkan dari sumber.
Pastikan setelan firewall VM belum diubah dari konfigurasi yang Anda rencanakan atau konfigurasi yang diharapkan.
Jika Anda membuat VM baru dari image dasar kustom, pastikan image dasar tersebut belum diubah dengan cara yang dapat membahayakan keamanan VM baru.
Cabut akses ke database Cloud SQL
Jika project Anda tidak menggunakan resource Cloud SQL, Anda dapat melewati langkah ini.
Pada konsol Google Cloud, buka halaman Instance SQL.
Klik ID instance database yang aksesnya ingin Anda cabut.
Di menu kiri, klik Koneksi.
Pastikan daftar alamat IP pada Jaringan yang diizinkan dan daftar aplikasi di bagian Otorisasi App Engine cocok dengan yang Anda harapkan. Jika orang yang aksesnya Anda coba cabut memiliki akses ke jaringan atau aplikasi yang tercantum di sini, mereka dapat mengakses database ini.
Di menu kiri, klik Pengguna.
Hapus atau ubah password setiap akun pengguna yang dapat diakses orang tersebut. Pastikan untuk memperbarui aplikasi apa pun yang bergantung pada akun pengguna tersebut.
Deploy ulang App Engine
Secara default, aplikasi App Engine memiliki akses ke akun layanan yang merupakan editor di project terkait. Handler permintaan App Engine dapat melakukan beberapa hal seperti membuat VM baru dan membaca atau mengubah data di Cloud Storage. Seseorang dengan kemampuan men-deploy kode ke App Engine dapat menggunakan akun layanan ini untuk membuka backdoor ke project Anda. Jika Anda khawatir dengan integritas kode aplikasi yang di-deploy, sebaiknya Anda men-deploy ulang aplikasi tersebut (termasuk modul apa pun) dengan image yang diketahui bagus dari sistem kontrol versi Anda.
Verifikasi bahwa izin telah dihapus
Di Google Cloud CLI, jalankan
metode search-all-iam-policies
untuk menemukan resource yang mungkin dapat diakses oleh akun pengguna tertentu. Misalnya,
untuk menentukan apakah pengguna memiliki akses ke resource Anda, jalankan:
gcloud asset search-all-iam-policies --scope='organizations/ORGANIZATION_ID --query='policy:IDENTITY'
Dengan keterangan:
ORGANIZATION_ID
adalah nomor organisasi Anda.IDENTITY
adalah identitas pengguna, seperti alamat email.
Langkah selanjutnya
Pelajari lebih lanjut Praktik terbaik untuk memitigasi token OAuth yang disusupi untuk Google Cloud CLI.