Halaman ini menjelaskan cara kerja sistem Identity and Access Management (IAM) Google Cloud dan cara menggunakannya untuk mengelola akses di Google Cloud.
IAM adalah alat untuk mengelola otorisasi terperinci untuk Google Cloud. Dengan kata lain, IAM memungkinkan Anda mengontrol siapa yang dapat melakukan apa pada resource mana.
Akses di Google Cloud
Setiap tindakan di Google Cloud memerlukan izin tertentu. Saat seseorang mencoba melakukan tindakan di Google Cloud—misalnya, membuat instance VM atau melihat set data—IAM akan memeriksa terlebih dahulu untuk melihat apakah orang tersebut memiliki izin yang diperlukan. Jika tidak, IAM akan mencegah mereka melakukan tindakan tersebut.
Memberi seseorang izin di IAM melibatkan tiga komponen berikut:
- Principal: Identitas orang atau sistem yang ingin Anda beri izin
- Peran: Kumpulan izin yang ingin Anda berikan kepada akun utama
- Resource: Resource Google Cloud yang ingin Anda izinkan aksesnya oleh principal
Untuk memberikan izin kepada akun utama agar dapat mengakses resource, Anda memberikan peran kepada akun utama tersebut pada resource. Anda memberikan peran ini menggunakan kebijakan izinkan.
Bagian berikut menjelaskan konsep ini secara lebih mendetail.
Kepala sekolah
Di Google Cloud , Anda mengontrol akses untuk akun utama. Akun utama mewakili satu atau beberapa identitas yang telah diautentikasi ke Google Cloud.
Sebelumnya, akun utama disebut sebagai anggota. Beberapa API masih menggunakan istilah tersebut.
Ada berbagai jenis akun utama di IAM, tetapi akun utama tersebut dapat dibagi menjadi dua kategori luas:
Pengguna manusia: Beberapa jenis akun utama IAM mewakili pengguna manusia. Anda menggunakan jenis prinsipal ini untuk mengelola akses karyawan Anda ke resourceGoogle Cloud .
Jenis akun utama yang merepresentasikan pengguna manusia mencakup Akun Google, grup Google, dan identitas gabungan di kumpulan identitas tenaga kerja.
Workload: Beberapa jenis principal IAM merepresentasikan workload. Anda menggunakan jenis akun utama ini saat mengelola akses beban kerja ke resourceGoogle Cloud .
Jenis akun utama yang merepresentasikan beban kerja mencakup akun layanan dan identitas gabungan dalam workload identity pool.
Untuk mengetahui informasi selengkapnya tentang akun utama, lihat Akun utama IAM.
Izin dan peran
Izin menentukan operasi apa saja yang diizinkan pada suatu resource. Di
IAM, izin biasanya direpresentasikan dalam bentuk
service.resource.verb
. Sering kali,
izin terkait one-to-one dengan metode REST API—misalnya, izin
resourcemanager.projects.list
memungkinkan Anda mencantumkan
project Resource Manager.
Anda tidak dapat memberikan izin secara langsung kepada akun utama. Sebagai gantinya, Anda memberikan izin kepada akun utama dengan memberikan peran kepada mereka.
Peran adalah kumpulan izin. Saat Anda memberikan peran kepada akun utama, Anda memberikan semua izin dalam peran tersebut kepada akun utama tersebut.
Ada tiga jenis peran:
Peran bawaan: Peran yang dikelola oleh layanan Google Cloud . Peran ini berisi izin yang diperlukan untuk melakukan tugas umum untuk setiap layanan tertentu. Misalnya, peran Pub/Sub Publisher (
roles/pubsub.publisher
) memberikan akses untuk memublikasikan pesan ke topik Pub/Sub.Peran khusus: Peran yang Anda buat yang hanya berisi izin yang Anda tentukan. Anda memiliki kontrol penuh atas izin dalam peran ini. Namun, beban pemeliharaannya lebih tinggi daripada peran bawaan dan ada batasan jumlah peran khusus yang dapat Anda miliki di project dan di organisasi Anda.
Peran dasar: Peran yang sangat permisif yang memberikan akses luas ke layananGoogle Cloud . Peran ini dapat berguna untuk tujuan pengujian, tetapi tidak boleh digunakan di lingkungan produksi.
Untuk mengetahui informasi selengkapnya tentang peran dan izin, lihat Peran dan izin.
Resource
Sebagian besar Google Cloud layanan memiliki sumber dayanya sendiri. Misalnya, Compute Engine memiliki resource seperti instance, disk, dan subnetwork.
Di IAM, Anda memberikan peran pada resource. Memberi akun utama peran pada resource berarti akun utama dapat menggunakan izin dalam peran tersebut untuk mengakses resource.
Anda dapat memberikan peran pada subset Google Cloud resource. Untuk mengetahui daftar lengkap resource yang dapat Anda berikan peran, lihat Jenis resource yang menerima kebijakan izinkan.
Google Cloud juga memiliki beberapa resource penampung, termasuk project, folder, dan organisasi. Memberi akun utama peran pada resource penampung akan memberi akun utama akses ke resource penampung dan resource dalam penampung tersebut. Dengan fitur ini, Anda dapat menggunakan pemberian peran tunggal untuk memberikan akses akun utama ke beberapa resource, termasuk resource yang tidak dapat Anda berikan peran secara langsung. Untuk mengetahui informasi selengkapnya, lihat Pewarisan kebijakan di halaman ini.
Kebijakan izin
Anda memberikan peran kepada akun utama menggunakan kebijakan izin. Sebelumnya, kebijakan ini disebut sebagai kebijakan IAM.
Kebijakan izinkan adalah objek YAML atau JSON yang dilampirkan ke resource Google Cloud.
Diagram berikut menunjukkan struktur kebijakan izin:
Setiap kebijakan izin berisi daftar binding peran yang mengaitkan peran IAM dengan akun utama yang diberi peran tersebut.
Saat akun utama terautentikasi mencoba mengakses resource, IAM akan memeriksa kebijakan izin resource tersebut untuk menentukan apakah akun utama memiliki izin yang diperlukan. Jika akun utama berada dalam binding peran yang menyertakan peran dengan izin yang diperlukan, maka akun utama tersebut diizinkan untuk mengakses resource.
Untuk melihat contoh kebijakan izinkan dan mempelajari strukturnya, lihat Memahami kebijakan izinkan.
Pewarisan kebijakan
Google Cloud memiliki resource penampung—seperti project, folder, dan organisasi—yang memungkinkan Anda mengatur resource dalam hierarki induk-turunan. Hierarki ini disebut hierarki resource.
Hierarki resource Google Cloud memiliki struktur berikut:
- Organisasi adalah node root dalam hierarki.
- Folder merupakan turunan dari organisasi, atau dari folder lain.
- Project merupakan turunan dari organisasi, atau dari suatu folder.
- Resource untuk setiap layanan merupakan turunan dari project.
Diagram berikut adalah contoh hierarki resource Google Cloud :
Jika Anda menetapkan kebijakan izinkan pada resource penampung, kebijakan izinkan tersebut juga berlaku untuk semua resource dalam penampung tersebut. Konsep ini disebut pewarisan kebijakan, karena resource turunan secara efektif mewarisi kebijakan izin resource induknya.
Pewarisan kebijakan memiliki implikasi berikut:
Anda dapat menggunakan satu binding peran untuk memberikan akses ke beberapa resource. Jika Anda ingin memberikan akses akun utama ke semua resource dalam penampung, berikan peran kepada akun utama tersebut di penampung, bukan di resource dalam penampung.
Misalnya, jika Anda ingin administrator keamanan mengelola kebijakan izin untuk semua resource di organisasi Anda, Anda dapat memberinya peran Admin Keamanan (
roles/iam.securityAdmin
) di organisasi.Anda dapat memberikan akses ke resource yang tidak memiliki kebijakan izinnya sendiri. Tidak semua resource menerima kebijakan izin, tetapi semua resource mewarisi kebijakan izin dari ancestor-nya. Untuk memberi akun utama akses ke resource yang tidak dapat memiliki kebijakan izinkan sendiri, berikan peran kepada akun utama tersebut di salah satu turunan resource.
Misalnya, Anda ingin memberi seseorang izin untuk menulis log ke bucket log. Bucket log tidak memiliki kebijakan izinnya sendiri, jadi untuk memberi seseorang izin ini, Anda dapat memberinya peran Penulis Bucket Log (
roles/logging.bucketWriter
) di project yang berisi bucket log.Untuk memahami siapa yang dapat mengakses resource, Anda juga perlu melihat semua kebijakan izinkan yang memengaruhi resource tersebut. Untuk mendapatkan daftar lengkap akun utama yang memiliki akses ke resource, Anda perlu melihat kebijakan izinkan resource dan kebijakan izinkan induk resource. Gabungan dari semua kebijakan ini disebut kebijakan izin yang efektif.
Untuk mengetahui informasi selengkapnya tentang pewarisan kebijakan untuk kebijakan izin, lihat Menggunakan hierarki resource untuk kontrol akses.
Kontrol akses lanjutan
Selain kebijakan izinkan, IAM menyediakan mekanisme kontrol akses berikut untuk membantu Anda menentukan siapa yang memiliki akses ke resource tertentu:
Jenis kebijakan tambahan: IAM menawarkan jenis kebijakan berikut selain kebijakan izinkan:
Kebijakan penolakan: Kebijakan penolakan mencegah akun utama menggunakan izin tertentu, meskipun jika mereka diberi peran dengan izin tersebut.
Kebijakan batas akses akun utama (PAB): Kebijakan batas akses akun utama menentukan dan menerapkan resource yang memenuhi syarat untuk diakses akun utama. Akun utama tidak dapat mengakses resource yang tidak memenuhi syarat untuk diakses, meskipun telah diberi peran pada resource tersebut.
Untuk mempelajari lebih lanjut kebijakan ini, lihat Jenis kebijakan.
IAM Conditions: Dengan IAM Conditions, Anda dapat menentukan dan menerapkan kontrol akses berbasis atribut bersyarat. Anda dapat menggunakan kondisi dalam berbagai jenis kebijakan. Misalnya, Anda dapat menambahkan kondisi ke binding peran dalam kebijakan izin untuk memastikan bahwa peran hanya diberikan jika kondisi terpenuhi.
Anda dapat menulis kondisi berdasarkan atribut seperti resource dalam permintaan dan waktu permintaan.
Untuk mempelajari lebih lanjut IAM Conditions, lihat Ringkasan IAM Conditions.
Privileged Access Manager (PAM): Dengan Privileged Access Manager, Anda dapat mengizinkan akun utama meminta dan diberi akses sementara yang dapat diaudit ke resource. Misalnya, Anda dapat mewajibkan prinsipal meminta akses setiap kali mereka ingin melihat resource sensitif, bukan memberikan peran IAM kepada mereka secara permanen.
Anda juga dapat mengonfigurasi apakah prinsipal diwajibkan untuk memberikan alasan atau mendapatkan persetujuan saat mereka meminta akses.
Untuk mempelajari lebih lanjut Pengelola Akses Istimewa, lihat Ringkasan Pengelola Akses Istimewa.
Model konsistensi untuk IAM API
IAM API memiliki konsistensi tertunda. Dengan kata lain, jika Anda menulis data dengan IAM API dan segera membaca data tersebut, maka operasi baca mungkin akan menampilkan versi data yang lebih lama. Selain itu, perubahan yang Anda buat mungkin memerlukan waktu untuk memengaruhi pemeriksaan akses.
Model konsistensi ini memengaruhi cara kerja IAM API. Misalnya, jika Anda membuat akun layanan, lalu segera merujuk ke akun layanan tersebut dalam permintaan lain, IAM API mungkin mengatakan bahwa akun layanan tidak dapat ditemukan. Perilaku ini terjadi karena operasi memiliki konsistensi tertunda; perlu waktu agar akun layanan baru dapat terlihat oleh permintaan baca.
Langkah berikutnya
- Untuk mempelajari cara mengonfigurasi identitas untuk Google Cloud, lihat Pengelolaan identitas untuk Google Cloud.
- Untuk mengetahui petunjuk tentang cara memberikan, mengubah, dan mencabut peran IAM ke akun utama, lihat Mengelola akses ke project, folder, dan organisasi.
- Untuk mengetahui daftar peran IAM yang tersedia, lihat Peran bawaan.
- Untuk mendapatkan bantuan dalam memilih peran bawaan yang paling sesuai, baca Menemukan peran bawaan yang tepat.
- Untuk mengetahui informasi selengkapnya tentang jenis kebijakan yang tersedia di IAM, lihat Jenis kebijakan.
Coba sendiri
Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
Mulai secara gratis