Kontrol akses dengan IAM

Halaman ini menjelaskan cara mengontrol akses dan izin project Memorystore for Redis menggunakan Identity and Access Management (IAM).

Ringkasan

Google Cloud menawarkan IAM, yang dapat Anda gunakan untuk memberikan akses yang 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 penjelasan lengkap tentang peran dan izin, lihat dokumentasi IAM.

Memorystore for Redis menyediakan serangkaian peran yang telah ditetapkan yang dirancang untuk membantu Anda mengontrol akses ke resource Redis dengan mudah. Jika peran yang telah ditetapkan tidak menyediakan sekumpulan izin yang diperlukan, Anda juga dapat membuat peran khusus Anda sendiri. Selain itu, peran dasar yang lebih lama (Editor, Viewer, dan Pemilik) juga masih 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 yang telah ditetapkan yang dapat Anda gunakan untuk memberikan izin yang lebih terperinci kepada akun utama. Peran yang Anda berikan kepada akun utama akan mengontrol tindakan yang dapat dilakukan oleh akun utama. Kepala sekolah dapat berupa individu, grup, atau akun layanan.

Anda dapat memberikan beberapa peran ke akun utama yang sama, dan jika 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 Redis Editor, beserta izin tambahannya.

Peran dasar (Pemilik, Editor, Pengakses Lihat-Saja) memberikan izin di seluruh Google Cloud. Peran khusus untuk Memorystore for Redis hanya menyediakan Memorystore for Redis izin, kecuali untuk izin Google Cloud berikut, yang diperlukan untuk penggunaan umum Google Cloud:

resourcemanager.projects.get
resourcemanager.projects.list

Tabel berikut mencantumkan peran yang telah ditetapkan yang tersedia untuk Memorystore for Redis, beserta izin Memorystore for Redis-nya:

Peran Nama Izin Redis Deskripsi

roles/owner

Owner

redis.*

Akses dan kontrol penuh untuk semua resource Google Cloud; kelola akses pengguna

roles/editor

Editor Semua redis izin kecuali untuk *.getIamPolicy & .setIamPolicy Akses baca-tulis ke semua resource Google Cloud dan Redis (kontrol penuh kecuali untuk kemampuan untuk mengubah izin)

roles/viewer

Viewer

redis.*.get redis.*.list

Akses hanya baca ke semua resource Google Cloud, termasuk resource Redis

roles/redis.admin

Admin Redis

redis.*

Kontrol penuh untuk semua resource Memorystore for Redis.

roles/redis.editor

Editor Redis Semua izin redis kecuali untuk

redis.instances.create redis.instances.delete redis.instances.upgrade redis.instances.import redis.instances.export redis.instances.updateAuth redis.instances.getAuthString redis.operations.delete

Mengelola instance Memorystore for Redis. Tidak dapat membuat atau menghapus instance.

roles/redis.viewer

Penampil Redis Semua izin redis kecuali untuk

redis.instances.create redis.instances.delete redis.instances.update redis.instances.upgrade redis.instances.import redis.instances.export redis.instances.updateAuth redis.instances.getAuthString redis.operations.delete

Akses baca saja ke semua resource Memorystore for Redis.

Izin dan perannya

Tabel berikut mencantumkan setiap izin yang didukung Memorystore for Redis, dan peran Memorystore for Redis yang menyertakannya:

Izin Peran Redis Peran dasar

redis.instances.list

Redis Admin
Redis Editor
Redis Viewer
Pembaca

redis.instances.get

Redis Admin
Redis Editor
Redis Viewer
Pembaca

redis.instances.create

Admin Redis Penulis

redis.instances.update

Admin Redis
Editor Redis
Penulis

redis.instances.updateAuth

Admin Redis Penulis

redis.instances.getAuthString

Admin Redis Penulis

redis.instances.delete

Admin Redis Penulis

redis.instances.upgrade

Admin Redis Penulis

redis.instances.import

Admin Redis Penulis

redis.instances.export

Admin Redis Penulis

redis.locations.list

Redis Admin
Redis Editor
Redis Viewer
Pembaca

redis.locations.get

Redis Admin
Redis Editor
Redis Viewer
Pembaca

redis.operations.list

Redis Admin
Redis Editor
Redis Viewer
Pembaca

redis.operations.get

Redis Admin
Redis Editor
Redis Viewer
Pembaca

redis.operations.delete

Admin Redis Penulis

Peran khusus

Jika peran yang telah ditetapkan tidak memenuhi persyaratan bisnis unik, 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 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 menyediakan izin lain yang diperlukan untuk beberapa tugas umum di Google Cloud Console:

Tugas Izin tambahan yang diperlukan
Menampilkan halaman listingan instance

redis.instances.get
redis.instances.list

Membuat dan mengedit instance

redis.instances.create
redis.instances.get
redis.instances.list
compute.networks.list

Menghapus instance

redis.instances.delete
redis.instances.get
redis.instances.list

Menghubungkan ke instance dari Cloud Shell

redis.instances.get
redis.instances.list
redis.instances.update

Melihat informasi instance

redis.instances.get
monitoring.timeSeries.list

Mengimpor dan mengekspor file cadangan RDB

redis.instances.import
redis.instances.export

Mengupgrade versi Redis instance

redis.instances.upgrade

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

redis.instances.updateAuth
redis.instances.getAuthString

gcloud redis instances create

redis.instances.get
redis.instances.create

gcloud redis instances delete

redis.instances.delete

gcloud redis instances update

redis.instances.get
redis.instances.update

gcloud redis instances list

redis.instances.list

gcloud redis instances describe

redis.instances.get

gcloud redis instances import

redis.instances.import

gcloud redis instances export

redis.instances.export

gcloud redis instances upgrade

redis.instances.upgrade

gcloud redis operations list

redis.operations.list

gcloud redis operations describe

redis.operations.get

gcloud redis regions list

redis.locations.list

gcloud redis regions describe

redis.locations.get

gcloud redis zones list

redis.locations.list

Izin yang diperlukan untuk metode API

Tabel berikut mencantumkan izin yang harus dimiliki pemanggil untuk memanggil setiap metode dalam Memorystore for Redis API atau untuk melakukan tugas menggunakan alat Google Cloud yang menggunakan API (seperti Google Cloud Console atau alat command line gcloud):

Metode Izin yang diperlukan

locations.get

redis.locations.get

locations.list

redis.locations.list

instances.create

redis.instances.create

instances.delete

redis.instances.delete

instances.get

redis.instances.get

instances.list

redis.instances.list

instances.patch

redis.instances.update

instances.import

redis.instances.import

instances.export

redis.instances.export

instances.upgrade

redis.instances.upgrade

operations.get

redis.operations.get

operations.list

redis.operations.list

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 exporting, 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 berbeda, bergantung pada waktu pembuatannya.

  • Format pertama adalah:

    [PROJECT_NUMBER]-compute@developer.gserviceaccount.com

  • Format kedua adalah:

    service-[PROJECT_NUMBER]@cloud-redis.iam.gserviceaccount.com

Untuk mengetahui sumber tepercaya terkait akun layanan mana yang digunakan instance Anda, baca Melihat akun layanan instance.

Masalah umum

Terkadang akun layanan yang menggunakan format [PROJECT_NUMBER]-compute@developer.gserviceaccount.com dapat bertentangan dengan kebijakan organisasi Anda. Untuk mengetahui informasi selengkapnya dan langkah-langkah untuk menyelesaikan masalah ini, lihat Masalah pada kebijakan organisasi berbagi yang dibatasi domain.

Lihat akun layanan instance Anda:

Guna melihat akun layanan untuk instance Anda, jalankan perintah berikut dan buat catatan akun layanan yang tercantum di persistenceIamIdentity:

gcloud redis instances describe [INSTANCE_ID] --region=[REGION]

Izin AUTH Redis

Tabel berikut menunjukkan izin minimum yang diperlukan pengguna untuk menyelesaikan beberapa tugas Memorystore for Redis AUTH dasar.

Izin yang 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 selama perjalanan

Tabel di bawah menunjukkan izin yang diperlukan untuk mengaktifkan dan mengelola Enkripsi dalam transit untuk Memorystore for Redis.

Izin yang diperlukan Membuat instance Memorystore dengan enkripsi dalam transit 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 yang diperlukan Membuat instance Memorystore yang mengaktifkan kebijakan pemeliharaan Membuat atau mengubah kebijakan pemeliharaan pada instance Memorystore yang ada Melihat setelan kebijakan pemeliharaan Penjadwalan 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, baca Melihat akun layanan instance

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 level bucket akun layanan, Anda dapat mengabaikan pesan yang bertuliskan "Memorystore tidak dapat memverifikasi apakah akun layanan xxxx@xxxx.gserviceaccount.com memiliki izin yang diperlukan untuk mengimpor/mengekspor. Untuk mendapatkan bantuan dalam memverifikasi atau memperbarui izin, hubungi administrator project Anda. Untuk izin yang diperlukan, lihat dokumentasi izin impor/ekspor." Jika Anda menerapkan izin yang tercantum di bawah ini ke peran khusus untuk akun pengguna dan akun layanan, impor/ekspor akan berhasil.

Izin untuk peran khusus untuk akun layanan Impor dengan gcloud Ekspor dengan gcloud Impor 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 sudah ada).
X Opsional.
(Memberikan izin untuk menimpa file RDB yang sudah ada).

Izin untuk akun pengguna

Izin untuk peran khusus untuk akun pengguna Impor dengan gcloud Ekspor dengan gcloud Impor 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 selanjutnya