Peran dan izin

Halaman ini memberikan informasi mengenai peran dan izin Identity and Access Management (IAM) dan cara penggunaannya dengan instance Cloud SQL.

Pengantar

Halaman ini berfokus pada aspek IAM yang relevan khususnya untuk Cloud SQL. Untuk mengetahui pembahasan mendetail tentang IAM dan fitur-fiturnya secara umum, lihat Identity and Access Management. Secara khusus lihat bagian Mengelola Kebijakan IAM. Dengan IAM, Anda dapat mengontrol siapa yang memiliki akses ke resource di project Google Cloud Anda. Serangkaian aturan akses yang Anda terapkan ke resource disebut kebijakan IAM. Suatu kebijakan IAM yang diterapkan ke project Anda menentukan tindakan yang dapat dilakukan pengguna pada semua resource dalam project Anda.

Anggota adalah pihak yang dikelola oleh IAM. Anggota bisa berupa pengguna individu, grup, domain, atau bahkan publik secara keseluruhan. Anggota diberi peran, yang memberi mereka kemampuan untuk melakukan tindakan di Cloud SQL serta Google Cloud secara lebih umum. Setiap peran adalah kumpulan satu atau beberapa izin. Izin adalah unit dasar IAM: setiap izin memungkinkan Anda melakukan tindakan tertentu. Lihat peran IAM di Cloud SQL dan izin IAM di Cloud SQL untuk mengetahui daftar lengkap semua peran dan izin yang tersedia di Cloud SQL.

Saat Anda menggunakan akun untuk terhubung ke instance Cloud SQL, akun tersebut harus memiliki peran (roles/cloudsql.client) Cloud SQL > Klien, yang mencakup izin yang diperlukan untuk terhubung ke instance Cloud SQL.

Anda dapat menambahkan peran ke sebuah akun di Konsol pada halaman IAM & Admin > IAM, dan lihat izin mana yang terhubung ke peran tertentu di halaman IAM & Admin > Peran.

Cloud SQL menggunakan akun layanan untuk autentikasi antara Cloud SQL dan produk Google Cloud lainnya. Akun layanan menyediakan credentials dalam format JSON, yang Anda download dari Konsol dan digunakan untuk autentikasi dalam berbagai skenario.

Misalnya: menghubungkan dari aplikasi yang berjalan dalam container docker.

Peran dan izin Cloud SQL dengan Proxy Auth Cloud SQL

Jika terhubung ke instance Cloud SQL dari instance Compute Engine menggunakan Cloud SQL Auth Proxy, Anda dapat menggunakan akun layanan Compute Engine default yang terkait dengan instance Compute Engine.

Seperti halnya semua akun yang terhubung ke instance Cloud SQL, akun layanan harus memiliki peran Cloud SQL > Klien.

Peran dan izin Cloud SQL dengan opsi serverless

Opsi serverless Google Cloud mencakup App Engine, Cloud Functions, dan Cloud Run.

Gunakan akun layanan untuk mengizinkan akses dari opsi ini. Akun layanan mengizinkan akses ke semua Cloud SQL dalam project tertentu. Saat Anda membuat aplikasi atau Cloud Functions, layanan ini akan membuatkan akun ini untuk Anda. Anda dapat menemukan akun tersebut di halaman IAM & Admin > IAM , dengan akhiran yang sesuai:

Opsi serverless Akhiran akun layanan
App Engine @gae-api-prod.google.com.iam.gserviceaccount.com
Cloud Functions @appspot.gserviceaccount.com
Cloud Run compute@developer.gserviceaccount.com
Seperti halnya semua akun yang terhubung ke instance Cloud SQL, akun layanan harus memiliki peran Cloud SQL > Klien.

Peran dan izin Cloud SQL dengan Cloud Storage

Fitur impor dan ekspor di Cloud SQL bekerja bersama. Mengekspor operasi tulis ke Cloud Storage dan mengimpor data yang dibaca dari sana. Karena alasan ini, akun layanan yang Anda gunakan untuk operasi ini memerlukan izin baca dan tulis ke Cloud Storage:

  • Untuk mengimpor data ke, dan mengekspor data dari, Cloud Storage, akun layanan instance Cloud SQL harus memiliki peran IAM storage.objectAdmin yang ditetapkan dalam project. Anda dapat menemukan nama akun layanan instance di konsol Google Cloud di halaman Overview instance Anda.
  • Anda dapat menggunakan perintah gsutil iam untuk memberikan peran IAM ini ke akun layanan untuk bucket.
  • Untuk mendapatkan bantuan dalam menetapkan peran dan izin IAM, lihat Menggunakan izin IAM.
  • Untuk informasi lebih lanjut, lihat IAM untuk Cloud Storage.

Izin untuk mengakses instance Cloud SQL pribadi

Saat layanan Google Cloud lain, seperti BigQuery, perlu berkomunikasi dengan instance Cloud SQL Anda untuk mengakses data dan membuat kueri terhadap data ini melalui koneksi pribadi, layanan ini akan menggunakan jalur internal bukan alamat IP pribadi di dalam Virtual Private Cloud (VPC). Traffic tidak dapat dikontrol atau dibatasi dengan konfigurasi tingkat VPC, aturan firewall, kebijakan rute, atau dengan memotong peering.

Sebagai gantinya, Cloud SQL menawarkan flag konfigurasi pada instance Anda untuk mengontrol apakah jalur internal ini perlu diaktifkan atau dinonaktifkan untuk layanan Google Cloud lain yang mengakses database Anda.

Mengontrol dan mencabut izin

Saat layanan Google Cloud lain, seperti BigQuery, mencoba mengakses instance Cloud SQL pribadi Anda, layanan tersebut harus memberikan identitas yang sah dengan izin IAM cloudsql.instances.connect.

Biasanya, ada dua cara yang dapat digunakan layanan untuk mencapai hal ini:

  1. Meneruskan kredensial pengguna. Sebuah layanan dapat meneruskan identitas IAM pengguna ke Cloud SQL untuk mengevaluasi izin dalam mengakses instance. Dalam skenario ini, pengguna harus memiliki izin IAM yang memadai agar Cloud SQL dapat berhasil membuat koneksi.
  2. Menggunakan akun layanan Sebuah layanan, seperti BigQuery, dapat menggunakan akun layanan yang telah dikonfigurasi sebelumnya untuk terhubung ke instance Cloud SQL. Dalam hal ini, akun layanan harus memiliki izin IAM yang memadai.

    Misalnya, untuk koneksi gabungan antara BigQuery dan Cloud SQL, akun layanan bernama service-{PROJECT_NUMBER}@gcp-sa-bigqueryconnection.iam.gserviceaccount.com akan dibuat saat BigQuery connection API diaktifkan. Akun layanan ini memiliki dua izin Cloud SQL: cloudsql.instances.connect dan cloudsql.instances.get. BigQuery menggunakan izin ini untuk mengakses instance Cloud SQL pribadi melalui sebuah jalur internal.

Untuk mengontrol izin terkait siapa yang dapat menggunakan jalur internal ini, Anda dapat memberikan dan mencabut izin IAM ke dan dari identitas IAM pengguna yang digunakan oleh layanan Google Cloud, seperti BigQuery, untuk terhubung ke instance Cloud SQL Anda. Untuk mengetahui informasi selengkapnya tentang cara memberikan dan mencabut izin dalam BigQuery, lihat Menyiapkan akses ke Cloud SQL.

Peran dan izin Cloud SQL dengan skenario lain

Cloud SQL berinteraksi dengan produk dan alat Google Cloud lainnya. Interaksi ini juga memerlukan peran dan izin tertentu yang dapat bervariasi di setiap skenario. Dokumentasi Cloud SQL memberikan informasi mendetail tentang persyaratan ini untuk setiap kasus di bawah:

Menggunakan IAM dengan project

Bagian berikut menunjukkan cara menyelesaikan tugas IAM dasar pada project.

Untuk menyelesaikan tugas berikut, Anda harus memiliki resourcemanager.projects.getIamPolicy dan resourcemanager.projects.setIamPolicy izin IAM.

Menambahkan anggota ke kebijakan level project

Untuk mengetahui daftar peran yang terkait dengan Cloud SQL, lihat Peran IAM.

Konsol

  1. Buka halaman IAM & Admin di konsol Google Cloud
  2. Dalam menu drop-down project di panel atas, pilih project yang ingin Anda tambah anggotanya.
  3. Klik Tambahkan. Dialog Tambahkan anggota, peran ke project akan muncul.
  4. Di kolom Anggota baru, masukkan nama entity yang ingin Anda beri akses.
  5. Di menu drop-down Pilih peran, berikan peran yang sesuai kepada anggota. Peran yang memengaruhi resource Cloud SQL ditemukan dalam submenu Project dan Cloud SQL.
  6. Klik Simpan.

gsutil

Kebijakan IAM level project dikelola melalui perintah gcloud, yang merupakan bagian dari Google Cloud SDK. Untuk menambahkan kebijakan level project, gunakan gcloud beta projects add-iam-policy-binding.

Melihat kebijakan IAM untuk project

Konsol

  1. Buka halaman IAM & Admin di konsol Google Cloud
  2. Dalam menu drop-down project di panel atas, pilih project yang kebijakannya ingin Anda lihat.
  3. Ada dua cara untuk melihat izin project:
    • Lihat berdasarkan Anggota: Lihat kolom Peran yang terkait dengan masing-masing anggota untuk melihat peran yang dimiliki setiap anggota.
    • Lihat berdasarkan Peran: Gunakan menu drop-down yang terkait dengan setiap peran untuk melihat anggota yang memiliki peran tersebut.

gsutil

Kebijakan IAM level project dikelola melalui perintah gcloud, yang merupakan bagian dari Google Cloud SDK. Untuk melihat kebijakan IAM suatu project, gunakan perintah gcloud beta projects get-iam-policy.

Menghapus anggota dari kebijakan level project

Konsol

  1. Buka halaman IAM & Admin di konsol Google Cloud
  2. Pada menu drop-down project di panel atas, pilih project yang ingin Anda hapus anggotanya.
  3. Pastikan Anda melihat izin berdasarkan Anggota, lalu pilih anggota yang ingin dihapus.
  4. Klik Hapus.
  5. Di jendela overlay yang muncul, klik Konfirmasi.

gsutil

Kebijakan IAM level project dikelola melalui perintah gcloud, yang merupakan bagian dari Google Cloud SDK. Untuk menghapus kebijakan level project, gunakan gcloud beta projects remove-iam-policy-binding.

Praktik terbaik

IAM, seperti setelan administratif lainnya, memerlukan pengelolaan aktif agar bisa bekerja dengan efektif. Sebelum Anda membuat resource agar dapat diakses oleh pengguna lain, pastikan Anda mengetahui peran apa yang Anda ingin mereka lakukan. Seiring waktu, perubahan dalam pengelolaan project, pola penggunaan, dan kepemilikan organisasi mungkin mengharuskan Anda untuk mengubah setelan IAM pada project, terutama jika Anda mengelola Cloud SQL dalam organisasi besar atau untuk sekelompok besar pengguna. Saat Anda mengevaluasi dan merencanakan setelan kontrol akses, selalu ingat praktik terbaik berikut:

  • Gunakan prinsip hak istimewa terendah saat memberikan akses. Prinsip hak istimewa terendah adalah panduan keamanan untuk memberikan akses ke resource Anda. Saat memberikan akses berdasarkan prinsip hak istimewa terendah, Anda memberikan akses yang dibutuhkan pengguna hanya untuk menyelesaikan tugas yang diberikan kepada pengguna.

  • Hindari memberikan peran dengan izin setIamPolicy kepada orang yang tidak Anda kenal. Memberikan izin setIamPolicy memungkinkan pengguna untuk mengubah izin dan mengambil kontrol data. Anda sebaiknya menggunakan peran dengan izin setIamPolicy hanya jika ingin mendelegasikan kontrol administratif atas objek dan bucket.

  • Pastikan Anda mendelegasikan kontrol administratif atas resource Anda. Anda harus yakin bahwa resource Anda masih dapat dikelola oleh anggota tim lainnya jika seseorang dengan akses administratif keluar dari grup. Dua cara umum untuk melakukannya adalah sebagai berikut:

    • Tetapkan peran Admin Cloud SQL untuk project Anda ke grup, bukan ke individu.
    • Tetapkan peran Admin Cloud SQL untuk project Anda setidaknya kepada dua individu.

Langkah selanjutnya