Mengelola autentikasi IAM

Halaman ini memberikan petunjuk tentang tugas umum untuk fitur autentikasi IAM untuk Memorystore for Valkey. Untuk mengetahui detail selengkapnya tentang fitur ini, lihat Tentang autentikasi IAM.

Membuat instance dengan autentikasi IAM

Untuk membuat instance Memorystore untuk Valkey yang menggunakan autentikasi IAM, jalankan perintah create:

gcloud memorystore instances create INSTANCE_ID --region=REGION_ID --network=NETWORK --node-type=NODE_TYPE --shard-count=SHARD_COUNT --auth-mode=iam-auth

Ganti kode berikut:

  • INSTANCE_ID adalah ID instance Memorystore for Valkey yang Anda buat. ID instance Anda harus terdiri dari 1 hingga 63 karakter dan hanya menggunakan huruf kecil, angka, atau tanda hubung. ID ini harus dimulai dengan huruf kecil dan diakhiri dengan huruf kecil atau angka.

  • REGION_ID adalah region tempat Anda ingin menempatkan instance.

  • NETWORK adalah jaringan yang digunakan untuk membuat instance Anda. Harus menggunakan format: projects/NETWORK_PROJECT_ID/global/networks/NETWORK_ID. ID jaringan yang digunakan di sini harus cocok dengan ID jaringan yang digunakan oleh kebijakan koneksi layanan. Jika tidak, operasi create akan gagal. Untuk mengetahui detail selengkapnya, lihat Networking.

  • NODE_TYPE adalah jenis node yang Anda pilih. Nilai yang diterima adalah:

    • shared-core-nano
    • standard-small
    • highmem-medium
    • highmem-xlarge
  • SHARD_COUNT menentukan jumlah shard dalam instance Anda. Jumlah shard menentukan total kapasitas memori untuk menyimpan data instance. Untuk melihat detail selengkapnya tentang spesifikasi instance, lihat Spesifikasi instance dan node.

Memberikan izin untuk autentikasi IAM

Untuk memberikan akses IAM, berikan peran roles/memorystore.dbConnectionUser kepada akun utama menggunakan petunjuk Memberikan peran IAM.

Secara default, memberikan peran roles/memorystore.dbConnectionUser kepada akun utama akan memungkinkan akun utama tersebut mengakses semua instance di project Anda.

Membuat peran Admin IAM terbatas untuk instance

Anda mungkin ingin membuat peran yang dapat mengubah izin IAM koneksi instance tanpa memberikan akses administrator IAM penuh. Tindakan ini dapat dilakukan dengan membuat administrator IAM terbatas untuk peran roles/memorystore.dbConnectionUser. Untuk mengetahui detail selengkapnya, buka Membuat admin IAM terbatas.

Menghubungkan ke instance yang menggunakan autentikasi IAM

  1. Jika Anda belum memiliki VM Compute Engine yang menggunakan jaringan resmi yang sama dengan instance Valkey Anda, buat VM dan hubungkan dengan mengikuti Panduan memulai menggunakan VM Linux.

  2. Untuk terhubung ke instance, Anda harus mengaktifkan cakupan akses dan API berikut untuk project Anda:

  3. Instal valkey-cli di VM Compute Engine dengan mengikuti petunjuk di Menginstal Valkey.

  4. Jalankan perintah berikut untuk mendapatkan token akses bagi pengguna IAM Anda:

    gcloud auth print-access-token
    
  5. Hubungkan ke endpoint penemuan instance Anda:

    valkey-cli -h NETWORK_ADDRESS -p PORT -a ACCESS_TOKEN -c
    

    Ganti kode berikut:

    • NETWORK_ADDRESS adalah alamat jaringan instance. Untuk melihat alamat jaringan, lihat Melihat informasi instance.

    • PORT adalah nomor port instance. Untuk melihat nomor port, lihat Melihat informasi instance.

    • ACCESS_TOKEN adalah token akses IAM yang diambil pada langkah-langkah sebelumnya.

  6. Jalankan perintah CLUSTER SHARDS untuk melihat topologi node Anda. Catat salah satu alamat IP dan nomor port node.

  7. Hubungkan ke node yang Anda pilih dengan menjalankan perintah berikut:

    valkey-cli -h NODE_IP_ADDRESS -p NODE_PORT -a ACCESS_TOKEN -c
    

    Ganti kode berikut:

    • NODE_IP_ADDRESS adalah alamat IP node yang Anda temukan di langkah sebelumnya.
    • NODE_PORT adalah nomor port node yang Anda temukan di langkah sebelumnya.
  8. Jalankan perintah Valkey SET dan GET untuk memverifikasi bahwa Anda telah membuat koneksi yang diautentikasi ke node instance Anda.

  9. Setelah selesai menguji koneksi ke instance Valkey, Anda harus mempertimbangkan untuk menghapus VM Compute Engine yang Anda gunakan untuk terhubung ke instance Valkey. Dengan melakukannya, Anda dapat menghindari tagihan ke akun Penagihan Cloud Anda.

  10. Jalankan perintah berikut untuk menggunakan valkey-cli guna mengautentikasi dan terhubung ke instance Anda, dengan mengganti variabel dengan nilai yang sesuai:

    valkey-cli -h NETWORK_ADDRESS -p PORT -a ACCESS_TOKEN -c
    

    Ganti kode berikut:

    • NETWORK_ADDRESS adalah alamat jaringan instance. Untuk melihat alamat jaringan, lihat Melihat informasi instance.

    • PORT adalah nomor port instance. Untuk melihat nomor port, lihat Melihat informasi instance.

    • ACCESS_TOKEN adalah token akses IAM yang diambil pada langkah-langkah sebelumnya.

  11. Jalankan perintah Valkey SET dan GET untuk memverifikasi bahwa Anda telah membuat koneksi yang diautentikasi ke instance Anda.

  12. Setelah selesai menguji koneksi ke instance Valkey, Anda harus mempertimbangkan untuk menghapus VM Compute Engine yang Anda gunakan untuk terhubung ke instance Valkey. Dengan melakukannya, Anda dapat menghindari tagihan ke akun Penagihan Cloud Anda.

Mengotomatiskan pengambilan token akses

Sebaiknya otomatiskan pengambilan token akses di aplikasi Anda, karena token akses tidak dapat dikodekan secara permanen dengan mudah karena masa berlakunya yang singkat.

  1. (Opsional) Jika Anda belum melakukannya, buat akun layanan untuk aplikasi Anda (lihat Membuat dan mengelola akun layanan).

    gcloud iam service-accounts create SA_NAME \
        --description="DESCRIPTION" \
        --display-name="DISPLAY_NAME"
    

    Ganti kode berikut:

    • SA_NAME adalah nama akun layanan.
    • DESCRIPTION adalah deskripsi opsional akun layanan.
    • DISPLAY_NAME adalah nama akun layanan yang akan ditampilkan di konsolGoogle Cloud .
  2. Beri akun layanan Anda izin memorystore.dbConnectionUser di project Anda.

    gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="serviceAccount:SA_NAME@PROJECT_ID.iam.gserviceaccount.com" \
    --role="memorystore.dbConnectionUser"
    

    Ganti kode berikut:

    • PROJECT_ID adalah project ID.
    • SA_NAME adalah nama akun layanan.
    • ROLE_NAME adalah nama peran, seperti roles/compute.osLogin.
  3. Mengautentikasi aplikasi Anda sebagai akun layanan yang diberikan. Lihat akun layanan untuk mengetahui informasi selengkapnya.

    Untuk contoh kode yang menunjukkan cara mengautentikasi aplikasi Anda menggunakan library klien populer, lihat Contoh kode library klien.

Contoh kode untuk menghubungkan ke instance yang menggunakan autentikasi IAM

Untuk melihat contoh kode yang kompatibel dengan Valkey tentang cara menyiapkan library klien untuk terhubung ke instance yang menggunakan autentikasi IAM, lihat Contoh kode untuk autentikasi IAM dan enkripsi saat transit.

Memecahkan masalah pesan error dengan autentikasi IAM

Pesan error Tindakan yang disarankan Deskripsi

-WRONGPASS invalid username-password pair or user is disabled

Verifikasi nama pengguna dan token akses yang diberikan ke server Memorystore for Valkey Nama pengguna atau token akses yang diberikan tidak valid. "default" adalah satu-satunya nama pengguna yang didukung. Jika aplikasi Anda sudah menggunakan nama pengguna "default", pastikan token akses belum habis masa berlakunya dan diambil dengan mengikuti petunjuk di Menghubungkan ke instance yang menggunakan autentikasi IAM. Izin IAM mungkin memerlukan waktu beberapa menit untuk diterapkan jika baru-baru ini diubah.

-NOAUTH Authentication required

Pastikan aplikasi dikonfigurasi untuk menyediakan token akses IAM ke server Memorystore untuk Valkey Aplikasi tidak memberikan token akses ke server Memorystore for Valkey. Pastikan aplikasi dikonfigurasi untuk menyediakan token akses. Ikuti petunjuk di Menghubungkan ke instance yang menggunakan autentikasi IAM

-ERR (ERR_IAM_EXHAUSTED) Memorystore IAM authentication backend quota exceeded. See https://cloud.google.com/memorystore/docs/valkey/manage-iam-auth#error_messages.

Mencoba lagi dengan backoff eksponensial Backend IAM kelebihan beban dan menampilkan error kuota terlampaui ke server Memorystore untuk Valkey. Aplikasi harus mencoba lagi error ini dengan backoff eksponensial untuk mencegah kegagalan koneksi lebih lanjut.

-ERR (ERR_IAM_OTHER) Memorystore IAM authentication backend error. See https://cloud.google.com/memorystore/docs/valkey/manage-iam-auth#error_messages.

Mencoba lagi dengan backoff eksponensial Backend IAM menampilkan error sementara ke server Memorystore untuk Valkey. Aplikasi harus mencoba lagi error ini dengan backoff eksponensial untuk mencegah kegagalan koneksi lebih lanjut.