Halaman ini menjelaskan cara mengontrol akses dan izin project Memorystore for Redis menggunakan Identity and Access Management (IAM).
Ringkasan
Google Cloud menawarkan IAM, yang memungkinkan Anda memberikan akses secara lebih terperinci ke resource Google Cloud tertentu dan mencegah akses yang tidak diinginkan ke resource lain. Halaman ini menjelaskan peran dan izin IAM Memorystore for Redis. Untuk mengetahui deskripsi mendetail tentang peran dan izin, lihat dokumentasi IAM.
Memorystore for Redis menyediakan serangkaian peran yang telah ditetapkan dan dirancang untuk membantu Anda mengontrol akses ke resource Redis dengan mudah. Jika peran bawaan tidak memberikan kumpulan izin yang Anda perlukan, Anda juga dapat membuat peran khusus sendiri. Selain itu, peran dasar yang lebih lama (Editor, Viewer, dan Pemilik) juga tetap tersedia untuk Anda, meskipun peran tersebut tidak memberikan kontrol terperinci yang sama dengan peran Memorystore for Redis. Secara khusus, peran dasar memberikan akses ke resource di seluruh Google Cloud, bukan hanya untuk Memorystore for Redis. Untuk mengetahui informasi selengkapnya tentang peran dasar, lihat Peran dasar.
Izin dan peran
Bagian ini merangkum izin dan peran yang didukung Memorystore for Redis.
Peran yang telah ditetapkan
Memorystore for Redis menyediakan beberapa peran bawaan yang dapat Anda gunakan untuk memberikan izin yang lebih terperinci kepada akun utama. Peran yang Anda berikan kepada akun utama mengontrol tindakan yang dapat dilakukan akun utama. Akun utama dapat berupa individu, grup, atau akun layanan.
Anda dapat memberikan beberapa peran ke akun utama yang sama, dan jika Anda memiliki izin untuk melakukannya, Anda dapat mengubah peran yang diberikan ke akun utama kapan saja.
Peran yang lebih luas mencakup peran yang lebih spesifik. Misalnya, peran Redis Editor mencakup semua izin peran Redis Viewer, beserta penambahan izin untuk peran Redis Editor. Demikian juga, peran Admin Redis mencakup semua izin peran Editor Redis, beserta izin tambahannya.
Peran dasar (Pemilik, Editor, Viewer) memberikan izin di seluruh Google Cloud. Peran khusus Memorystore for Redis hanya memberikan izin Memorystore for Redis, kecuali untuk izin Google Cloud berikut, yang diperlukan untuk penggunaan Google Cloud umum:
resourcemanager.projects.get
resourcemanager.projects.list
Tabel berikut mencantumkan peran bawaan yang tersedia untuk Memorystore for Redis, beserta izin Memorystore for Redis:
| Peran | Nama | Izin Redis | Deskripsi |
|---|---|---|---|
|
Pemilik |
|
Akses dan kontrol penuh untuk semua resource Google Cloud ; mengelola akses pengguna |
|
Editor | Semua izin redis kecuali untuk *.getIamPolicy &
.setIamPolicy |
Akses baca-tulis ke semua resource Google Cloud dan Redis (kontrol penuh kecuali untuk kemampuan mengubah izin) |
|
Pelihat |
|
Akses hanya baca ke semua resource Memorystore for Redis. Namun, Anda tidak dapat menggunakan izin ini untuk melihat data yang terkait dengan resource. |
|
Admin Redis |
|
Kontrol penuh untuk semua resource Memorystore for Redis. |
|
Redis Editor | Semua izin redis kecuali untuk
|
Mengelola instance Memorystore for Redis. Tidak dapat membuat atau menghapus instance. |
|
Redis Viewer | Semua izin redis kecuali untuk
|
Akses hanya baca ke semua resource Memorystore for Redis. |
Izin dan perannya
Tabel berikut mencantumkan setiap izin yang didukung oleh Memorystore for Redis dan peran Memorystore for Redis yang menyertakannya:
| Izin | Peran Redis | Peran dasar |
|---|---|---|
|
Redis Admin Redis Editor Redis Viewer |
Pembaca |
|
Redis Admin Redis Editor Redis Viewer |
Pembaca |
|
Admin Redis | Penulis |
|
Redis Admin Redis Editor |
Penulis |
|
Admin Redis | Penulis |
|
Admin Redis | Penulis |
|
Admin Redis | Penulis |
|
Admin Redis | Penulis |
|
Admin Redis | Penulis |
|
Admin Redis | Penulis |
|
Redis Admin Redis Editor Redis Viewer |
Pembaca |
|
Redis Admin Redis Editor Redis Viewer |
Pembaca |
|
Redis Admin Redis Editor Redis Viewer |
Pembaca |
|
Redis Admin Redis Editor Redis Viewer |
Pembaca |
|
Admin Redis | Penulis |
Peran khusus
Jika peran bawaan tidak memenuhi persyaratan bisnis unik Anda, Anda dapat menentukan peran khusus sendiri dengan izin yang Anda tentukan. Untuk mendukung hal ini, IAM menawarkan peran khusus. Saat membuat peran khusus untuk Memorystore for Redis, pastikan Anda menyertakan resourcemanager.projects.get dan resourcemanager.projects.list.
Jika tidak, konsol Google Cloud tidak akan berfungsi dengan benar
untuk Memorystore for Redis. Untuk mengetahui informasi selengkapnya, lihat
Dependensi izin.
Untuk mempelajari cara membuat peran khusus, lihat Membuat peran khusus.
Izin yang diperlukan untuk tugas umum di konsol Google Cloud
Agar pengguna dapat menggunakan Memorystore for Redis menggunakan konsol Google Cloud , peran pengguna harus menyertakan izin resourcemanager.projects.get dan resourcemanager.projects.list.
Tabel berikut memberikan izin lain yang diperlukan untuk beberapa tugas umum di konsol Google Cloud :
| Tugas | Izin tambahan yang diperlukan |
|---|---|
| Menampilkan halaman listingan instance |
|
| Membuat dan mengedit instance |
|
| Menghapus instance |
|
| Menghubungkan ke instance dari Cloud Shell |
|
| Melihat informasi instance |
|
| Mengimpor dan mengekspor file cadangan RDB |
|
| Mengupgrade versi Redis instance |
|
Izin yang diperlukan untuk perintah gcloud
Agar pengguna dapat menggunakan Memorystore for Redis menggunakan perintah gcloud,
peran pengguna harus menyertakan izin resourcemanager.projects.get dan
resourcemanager.projects.list.
Tabel berikut mencantumkan izin yang harus dimiliki pengguna yang memanggil perintah gcloud untuk setiap subperintah gcloud redis:
| Perintah | Izin yang diperlukan |
|---|---|
gcloud redis instances auth |
|
gcloud redis instances create |
|
gcloud redis instances delete |
|
gcloud redis instances update |
|
gcloud redis instances list |
|
gcloud redis instances describe |
|
gcloud redis instances import |
|
gcloud redis instances export |
|
gcloud redis instances upgrade |
|
gcloud redis operations list |
|
gcloud redis operations describe |
|
gcloud redis regions list |
|
gcloud redis regions describe |
|
gcloud redis zones list |
|
Izin yang diperlukan untuk metode API
Tabel berikut mencantumkan izin yang harus dimiliki pemanggil untuk memanggil setiap
metode di Memorystore for Redis API atau untuk melakukan tugas
menggunakan alat Google Cloud yang menggunakan API
(seperti konsol Google Cloud atau alat command line gcloud):
| Metode | Izin yang diperlukan |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Akun layanan Memorystore for Redis
Setiap instance Memorystore for Redis memiliki akun layanan yang digunakan untuk berkomunikasi dengan resource Google Cloud lainnya.
Terkadang (seperti saat mengekspor, atau menggunakan CMEK), Anda harus memberikan peran atau izin tertentu ke akun layanan.
Format akun layanan Memorystore for Redis
Akun layanan instance Anda menggunakan salah satu dari dua format yang berbeda, bergantung pada waktu pembuatannya.
Format pertama adalah:
PROJECT_NUMBER-compute@Format kedua adalah:
service-PROJECT_NUMBER@cloud-redis.
Masalah umum
Terkadang, akun layanan yang menggunakan format [PROJECT_NUMBER]-compute@
dapat bertentangan dengan kebijakan organisasi Anda. Untuk mengetahui informasi selengkapnya, dan
langkah-langkah untuk menyelesaikan masalah ini, lihat Masalah terkait kebijakan organisasi berbagi yang dibatasi domain.
Melihat akun layanan instance Anda
Untuk melihat akun layanan instance Anda, jalankan perintah berikut dan catat akun layanan yang tercantum di bagian persistenceIamIdentity:
gcloud redis instances describe [INSTANCE_ID] --region=[REGION]
Izin AUTH Redis
Tabel berikut menunjukkan izin minimum yang diperlukan pengguna untuk menyelesaikan beberapa tugas AUTH Memorystore untuk Redis dasar.
| Izin diperlukan | Membuat instance Memorystore dengan Redis AUTH diaktifkan | Mengaktifkan/menonaktifkan AUTH pada instance Redis yang ada | Melihat string AUTH | Melihat apakah AUTH diaktifkan/dinonaktifkan untuk instance Redis |
|---|---|---|---|---|
redis.instances.create
|
✓ | X | X | X |
redis.instances.update
|
X | ✓ | X | X |
redis.instances.get
|
X | X | X | ✓ |
redis.instances.updateAuth
|
✓ | ✓ | X | X |
redis.instances.getAuthString
|
X | X | ✓ | X |
Izin enkripsi dalam pengiriman
Tabel di bawah menunjukkan izin yang diperlukan untuk mengaktifkan dan mengelola Enkripsi saat transit untuk Memorystore for Redis.
| Izin diperlukan | Membuat instance Memorystore dengan enkripsi dalam pengiriman | Mendownload Certificate Authority |
|---|---|---|
redis.instances.create
|
✓ | X |
redis.instances.get
|
X | ✓ |
Izin kebijakan pemeliharaan
Tabel di bawah menunjukkan izin yang diperlukan untuk mengelola Kebijakan pemeliharaan untuk Memorystore for Redis.
| Izin diperlukan | Membuat instance Memorystore dengan kebijakan pemeliharaan diaktifkan | Membuat atau mengubah kebijakan pemeliharaan pada instance Memorystore yang ada | Melihat setelan kebijakan pemeliharaan | Menjadwalkan ulang pemeliharaan |
|---|---|---|---|---|
redis.instances.create
|
✓ | X | X | X |
redis.instances.update
|
X | ✓ | X | X |
redis.instances.get
|
X | X | ✓ | X |
redis.instances.rescheduleMaintenance
|
X | X | X | ✓ |
Izin yang diperlukan untuk impor dan ekspor
Penggunaan peran khusus untuk mengimpor dan mengekspor memerlukan dua peran khusus yang terpisah. Satu peran khusus untuk pengguna, dan peran khusus tambahan untuk akun layanan instance Redis. Peran khusus untuk akun layanan menggunakan izin level bucket Cloud Storage.
Untuk menemukan akun layanan instance Anda, lihat Melihat akun layanan instance Anda
Izin untuk akun layanan
Perhatikan bahwa Anda hanya perlu memberikan izin penyimpanan ke akun layanan di level bucket, bukan seluruh project. Untuk mengetahui petunjuknya, lihat Menambahkan akun utama ke kebijakan level bucket.
Setelah memberikan izin tingkat bucket ke akun layanan, Anda dapat mengabaikan pesan yang menyatakan "Memorystore is unable to verify if service account xxxx@xxxx. has the permissions required to import/export. Untuk mendapatkan bantuan dalam memverifikasi atau memperbarui izin, hubungi administrator project Anda. Untuk mengetahui izin yang diperlukan, lihat dokumentasi izin impor/ekspor." Jika Anda menerapkan izin yang tercantum di bawah ke peran khusus untuk akun pengguna dan akun layanan, impor/ekspor akan berhasil.
| Izin untuk peran khusus untuk akun layanan | Mengimpor dengan gcloud | Mengekspor dengan gcloud | Mengimpor dengan konsol Google Cloud | Ekspor dengan konsol Google Cloud |
|---|---|---|---|---|
storage.buckets.get |
✓ | ✓ | ✓ | ✓ |
storage.objects.get |
✓ | X | ✓ | X |
storage.objects.create |
X | ✓ | X | ✓ |
storage.objects.delete |
X | Opsional. (Memberikan izin untuk menimpa file RDB yang ada). |
X | Opsional. (Memberikan izin untuk menimpa file RDB yang ada). |
Izin untuk akun pengguna
| Izin untuk peran khusus untuk akun pengguna | Mengimpor dengan gcloud | Mengekspor dengan gcloud | Mengimpor dengan konsol Google Cloud | Ekspor dengan konsol Google Cloud |
|---|---|---|---|---|
resourcemanager.projects.get |
X | X | ✓ | ✓ |
redis.instances.get |
✓ | ✓ | ✓ | ✓ |
redis.instances.list |
X | X | X | X |
redis.instances.import |
✓ | X | ✓ | X |
redis.instances.export |
X | ✓ | X | ✓ |
redis.operations.get |
X | ✓ | ✓ | ✓ |
redis.operations.list |
X | X | ✓ | ✓ |
redis.operations.cancel |
✓ | ✓ | ✓ | ✓ |
storage.buckets.list |
X | X | ✓ | ✓ |
storage.buckets.get |
X | X | ✓ | ✓ |
storage.objects.list |
X | X | ✓ | ✓ |
storage.objects.get |
X | X | ✓ | ✓ |
Langkah berikutnya
- Pelajari cara memberikan dan mencabut akses.
- Pelajari IAM lebih lanjut.
- Pelajari peran khusus lebih lanjut.