Mengautentikasi pengguna dengan Daftar Kontrol Akses () ACLs - Amazon MemoryDB

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Mengautentikasi pengguna dengan Daftar Kontrol Akses () ACLs

Anda dapat mengautentikasi pengguna dengan daftar kontrol Access (ACLs).

ACLsmemungkinkan Anda untuk mengontrol akses cluster dengan mengelompokkan pengguna. Daftar kontrol Access ini dirancang sebagai cara untuk mengatur akses ke cluster.

DenganACLs, Anda membuat pengguna dan menetapkan mereka izin tertentu dengan menggunakan string akses, seperti yang dijelaskan di bagian berikutnya. Anda menetapkan pengguna ke daftar kontrol Access selaras dengan peran tertentu (administrator, sumber daya manusia) yang kemudian disebarkan ke satu atau beberapa cluster MemoryDB. Dengan melakukan ini, Anda dapat menetapkan batas keamanan antara klien menggunakan cluster atau cluster MemoryDB yang sama dan mencegah klien mengakses data satu sama lain.

ACLsdirancang untuk mendukung pengenalan ACLdi Redis OSS 6. Bila Anda menggunakan ACLs dengan cluster MemoryDB Anda, ada beberapa batasan:

  • Anda tidak dapat menentukan kata sandi dalam string akses. Anda mengatur kata sandi dengan CreateUseratau UpdateUserpanggilan.

  • Untuk hak pengguna, Anda meneruskan on dan off sebagai bagian dari string akses. Jika keduanya tidak ditentukan dalam string akses, pengguna ditugaskan off dan tidak memiliki hak akses ke cluster.

  • Anda tidak dapat menggunakan perintah terlarang. Jika Anda menentukan perintah terlarang, pengecualian akan dilemparkan. Untuk daftar perintah tersebut, lihatPerintah terbatas.

  • Anda tidak dapat menggunakan perintah reset sebagai bagian dari string akses. Anda menentukan kata sandi dengan API parameter, dan MemoryDB mengelola kata sandi. Dengan demikian, Anda tidak dapat menggunakan reset karena akan menghapus semua kata sandi untuk pengguna.

  • Redis OSS 6 memperkenalkan perintah. ACLLIST Perintah ini mengembalikan daftar pengguna bersama dengan ACL aturan yang diterapkan untuk setiap pengguna. MemoryDB mendukung ACL LIST perintah, tetapi tidak menyertakan dukungan untuk hash kata sandi seperti yang dilakukan Redis. OSS Dengan MemoryDB, Anda dapat menggunakan DescribeUsersoperasi untuk mendapatkan informasi serupa, termasuk aturan yang terkandung dalam string akses. Namun, DescribeUserstidak mengambil kata sandi pengguna.

    Perintah hanya-baca lainnya yang didukung oleh MemoryDB termasuk ACLWHOAMI,, dan. ACLUSERSACLCAT MemoryDB tidak mendukung perintah berbasis tulis ACL lainnya.

Menggunakan ACLs dengan MemoryDB dijelaskan secara lebih rinci berikut.

Menentukan Izin Menggunakan String Akses

Untuk menentukan izin ke cluster MemoryDB, Anda membuat string akses dan menetapkannya ke pengguna, menggunakan salah satu atau. AWS CLI AWS Management Console

String akses didefinisikan sebagai daftar aturan yang dipisahkan spasi yang diterapkan pada pengguna. String akses menentukan perintah yang dapat dijalankan oleh pengguna dan kunci yang dapat dioperasikan oleh pengguna. Untuk dapat menjalankan perintah, pengguna harus memiliki akses ke perintah yang dijalankan dan semua kunci yang diakses oleh perintah itu. Aturan diterapkan dari kiri ke kanan secara kumulatif, dan string yang lebih sederhana dapat digunakan sebagai pengganti yang disediakan jika ada kelebihan dalam string yang disediakan.

Untuk informasi tentang sintaks ACL aturan, lihat ACL.

Pada contoh berikut, string akses merepresentasikan pengguna aktif dengan akses ke semua kunci dan perintah yang tersedia.

on ~* &* +@all

Sintaksis string akses diuraikan sebagai berikut:

  • on – Pengguna adalah pengguna yang aktif.

  • ~* – Akses diberikan ke semua kunci yang tersedia.

  • &*— Akses diberikan ke semua saluran pubsub.

  • +@all – Akses diberikan ke semua perintah yang tersedia.

Pengaturan di atas adalah pengaturan yang tidak terlalu membatasi. Anda dapat mengubah pengaturan ini untuk membuatnya lebih aman.

Pada contoh berikut, string akses merepresentasikan pengguna dengan akses yang dibatasi untuk akses baca pada kunci yang diawali dengan ruang kunci "app::"

on ~app::* -@all +@read

Anda dapat mempersempit izin ini lebih lanjut dengan menampilkan daftar perintah yang dapat diakses pengguna:

+command1— Akses pengguna ke perintah terbatas pada perintah1.

+@category – Akses pengguna dibatasi pada kategori perintah.

Untuk informasi tentang cara menetapkan string akses ke pengguna, lihat Membuat Pengguna dan Daftar Kontrol Akses dengan Konsol dan CLI.

Jika Anda memigrasikan beban kerja yang ada ke MemoryDB, Anda dapat mengambil string akses dengan meneleponACL LIST, tidak termasuk pengguna dan hash kata sandi apa pun.

Kemampuan pencarian vektor

catatan

Fitur ini dalam rilis pratinjau untuk MemoryDB dan dapat berubah.

UntukPencarian vektor, semua perintah pencarian termasuk dalam @search kategori dan kategori yang ada @read@write, @fast dan @slow diperbarui untuk menyertakan perintah pencarian. Jika pengguna tidak memiliki akses ke kategori, maka pengguna tidak memiliki akses ke perintah apa pun dalam kategori tersebut. Misalnya, jika pengguna tidak memiliki akses ke@search, maka pengguna tidak dapat menjalankan perintah terkait pencarian.

Tabel berikut menunjukkan pemetaan perintah pencarian ke kategori yang sesuai.

VSSPerintah @read @write @fast @slow
FT.CREATE T Y
FT.DROPINDEX Y Y
FT.LIST Y Y
FT.INFO Y Y
FT.SEARCH Y Y
FT.AGGREGATE Y Y
FT.PROFILE Y Y
FT.ALIASADD Y Y
FT.ALIASDEL Y Y
FT.ALIASUPDATE Y Y
FT._ALIASLIST Y Y
FT.EXPLAIN Y Y
FT.EXPLAINCLI Y Y
FT.CONFIG Y T

Menerapkan ACLs ke cluster untuk MemoryDB

Untuk menggunakan MemoryDBACLs, Anda mengambil langkah-langkah berikut:

  1. Buat satu atau beberapa pengguna.

  2. Buat ACL dan tambahkan pengguna ke daftar.

  3. Tetapkan ACL ke cluster.

Langkah ini dijelaskan secara mendetail di bagian berikut.

Membuat Pengguna dan Daftar Kontrol Akses dengan Konsol dan CLI

Informasi pengguna untuk ACLs pengguna adalah nama pengguna, dan secara opsional kata sandi dan string akses. String akses menyediakan tingkat izin pada kunci dan perintah. Nama ini unik untuk pengguna dan itulah yang diteruskan ke mesin.

Pastikan bahwa izin pengguna yang Anda berikan masuk akal dengan tujuan yang dimaksudkan. ACL Misalnya, jika Anda membuat ACL panggilanAdministrators, setiap pengguna yang Anda tambahkan ke grup itu harus memiliki string aksesnya disetel ke akses penuh ke kunci dan perintah. Untuk pengguna di sebuah e-commerceACL, Anda dapat mengatur string akses mereka ke akses hanya-baca.

MemoryDB secara otomatis mengkonfigurasi pengguna default per akun dengan nama pengguna. "default" Ini tidak akan dikaitkan dengan cluster apa pun kecuali eksplisit ditambahkan ke fileACL. Anda tidak dapat mengubah atau menghapus pengguna ini. Pengguna ini dimaksudkan untuk kompatibilitas dengan perilaku default OSS versi Redis sebelumnya dan memiliki string akses yang memungkinkannya memanggil semua perintah dan mengakses semua kunci.

“Akses terbuka” yang tidak dapat diubah ACL akan dibuat untuk setiap akun yang berisi pengguna default. Ini adalah ACL satu-satunya pengguna default yang dapat menjadi anggota. Ketika Anda membuat cluster, Anda harus memilih ACL untuk mengasosiasikan dengan cluster. Meskipun Anda memiliki opsi untuk menerapkan “akses terbuka” ACL dengan pengguna default, kami sangat menyarankan membuat ACL dengan pengguna yang memiliki izin terbatas pada kebutuhan bisnis mereka.

Cluster yang belum TLS diaktifkan harus menggunakan “akses terbuka” ACL untuk memberikan otentikasi terbuka.

ACLsdapat dibuat tanpa pengguna. Kosong tidak ACL akan memiliki akses ke cluster dan hanya dapat dikaitkan dengan cluster TLS yang diaktifkan.

Saat membuat pengguna, Anda dapat menetapkan hingga dua kata sandi. Saat Anda memodifikasi kata sandi, koneksi apa pun yang ada ke cluster dipertahankan.

Secara khusus, perhatikan kendala kata sandi pengguna ini saat menggunakan ACLs untuk MemoryDB:

  • Kata sandi harus terdiri dari 16–128 karakter yang dapat dicetak.

  • Karakter non-alfanumerik berikut tidak diizinkan: , "" / @.

Mengelola Pengguna dengan Konsol dan CLI

Untuk membuat pengguna di konsol
  1. Masuk ke AWS Management Console dan buka konsol MemoryDB di. https://console.aws.amazon.com/memorydb/

  2. Di panel navigasi kiri, pilih Pengguna.

  3. Pilih Buat pengguna

  4. Pada halaman Buat pengguna, masukkan Nama.

    Batasan penamaan klaster adalah sebagai berikut:

    • Harus berisi 1–40 karakter alfanumerik atau tanda hubung.

    • Harus diawali dengan huruf.

    • Tidak boleh berisi dua tanda hubung berurutan.

    • Tidak boleh diakhiri dengan tanda hubung.

  5. Di bawah Kata Sandi, Anda dapat memasukkan hingga dua kata sandi.

  6. Di bawah Access string, masukkan string akses. String akses menetapkan tingkat izin untuk kunci dan perintah yang boleh digunakan pengguna.

  7. Untuk Tag, Anda dapat menerapkan tag secara opsional untuk mencari dan memfilter pengguna Anda atau melacak AWS biaya Anda.

  8. Pilih Buat.

Untuk membuat pengguna dengan menggunakan CLI
  • Gunakan perintah create-user untuk membuat pengguna.

    Untuk Linux, macOS, atau Unix:

    aws memorydb create-user \ --user-name user-name-1 \ --access-string "~objects:* ~items:* ~public:*" \ --authentication-mode \ Passwords="abc",Type=password

    Untuk Windows:

    aws memorydb create-user ^ --user-name user-name-1 ^ --access-string "~objects:* ~items:* ~public:*" ^ --authentication-mode \ Passwords="abc",Type=password
Untuk memodifikasi pengguna di konsol
  1. Masuk ke AWS Management Console dan buka konsol MemoryDB di. https://console.aws.amazon.com/memorydb/

  2. Di panel navigasi kiri, pilih Pengguna.

  3. Pilih tombol radio di sebelah pengguna yang ingin Anda modifikasi dan kemudian pilih Tindakan -> Ubah

  4. Jika Anda ingin mengubah kata sandi, pilih tombol radio Ubah kata sandi. Perhatikan bahwa jika Anda memiliki dua kata sandi, Anda harus memasukkan keduanya saat memodifikasi salah satunya.

  5. Jika Anda memperbarui string akses, masukkan yang baru.

  6. Pilih Ubah.

Untuk memodifikasi pengguna dengan menggunakan CLI
  1. Gunakan perintah update-user untuk memodifikasi pengguna.

  2. Ketika pengguna dimodifikasi, daftar kontrol Access yang terkait dengan pengguna diperbarui, bersama dengan kluster apa pun yang terkait dengan. ACL Semua koneksi yang ada akan dipertahankan. Berikut ini adalah beberapa contohnya.

    Untuk Linux, macOS, atau Unix:

    aws memorydb update-user \ --user-name user-name-1 \ --access-string "~objects:* ~items:* ~public:*"

    Untuk Windows:

    aws memorydb update-user ^ --user-name user-name-1 ^ --access-string "~objects:* ~items:* ~public:*"
Untuk melihat detail pengguna di konsol
  1. Masuk ke AWS Management Console dan buka konsol MemoryDB di. https://console.aws.amazon.com/memorydb/

  2. Di panel navigasi kiri, pilih Pengguna.

  3. Pilih pengguna di bawah Nama pengguna atau gunakan kotak pencarian untuk menemukan pengguna.

  4. Di bawah Pengaturan pengguna, Anda dapat meninjau string akses pengguna, jumlah kata sandi, status, dan Nama Sumber Daya Amazon (ARN).

  5. Di bawah Access control lists (ACL) Anda dapat meninjau milik pengguna. ACL

  6. Di bawah Tag, Anda dapat meninjau tag apa pun yang terkait dengan pengguna.

Gunakan perintah deskripsikan pengguna untuk melihat detail pengguna.

aws memorydb describe-users \ --user-name my-user-name
Untuk menghapus pengguna di konsol
  1. Masuk ke AWS Management Console dan buka konsol MemoryDB di. https://console.aws.amazon.com/memorydb/

  2. Di panel navigasi kiri, pilih Pengguna.

  3. Pilih tombol radio di sebelah pengguna yang ingin Anda modifikasi dan kemudian pilih Tindakan -> Hapus

  4. Untuk mengonfirmasi, masukkan delete di kotak teks konfirmasi dan kemudian pilih Hapus.

  5. Untuk membatalkan, pilih Batalkan.

Untuk menghapus pengguna dengan menggunakan CLI
  • Gunakan perintah delete-user untuk menghapus pengguna.

    Akun dihapus dan dihapus dari daftar kontrol Akses apa pun yang menjadi miliknya. Berikut adalah contohnya.

    Untuk Linux, macOS, atau Unix:

    aws memorydb delete-user \ --user-name user-name-2

    Untuk Windows:

    aws memorydb delete-user ^ --user-name user-name-2

Mengelola Daftar Kontrol Akses dengan Konsol dan CLI

Anda dapat membuat daftar kontrol Access untuk mengatur dan mengontrol akses pengguna ke satu atau beberapa cluster, seperti yang ditunjukkan berikut.

Gunakan prosedur berikut untuk mengelola daftar kontrol Access menggunakan konsol.

Untuk membuat daftar kontrol Access menggunakan konsol
  1. Masuk ke AWS Management Console dan buka konsol MemoryDB di. https://console.aws.amazon.com/memorydb/

  2. Di panel navigasi kiri, pilih Daftar kontrol akses (ACL).

  3. Pilih Buat ACL.

  4. Pada halaman Buat daftar kontrol akses (ACL), masukkan ACL nama.

    Batasan penamaan klaster adalah sebagai berikut:

    • Harus berisi 1–40 karakter alfanumerik atau tanda hubung.

    • Harus diawali dengan huruf.

    • Tidak boleh berisi dua tanda hubung berurutan.

    • Tidak boleh diakhiri dengan tanda hubung.

  5. Di bawah Pengguna yang dipilih melakukan salah satu hal berikut:

    1. Buat pengguna baru dengan memilih Buat pengguna

    2. Tambahkan pengguna dengan memilih Kelola lalu pilih pengguna dari dialog Kelola pengguna lalu pilih Pilih.

  6. Untuk Tag, Anda dapat menerapkan tag secara opsional untuk mencari dan memfilter ACLs atau melacak AWS biaya Anda.

  7. Pilih Buat.

Gunakan prosedur berikut untuk membuat daftar kontrol Access menggunakanCLI.

Untuk membuat baru ACL dan menambahkan pengguna dengan menggunakan CLI
  • Gunakan perintah create-acl untuk membuat file. ACL

    Untuk Linux, macOS, atau Unix:

    aws memorydb create-acl \ --acl-name "new-acl-1" \ --user-names "user-name-1" "user-name-2"

    Untuk Windows:

    aws memorydb create-acl ^ --acl-name "new-acl-1" ^ --user-names "user-name-1" "user-name-2"
Untuk mengubah daftar kontrol Access menggunakan konsol
  1. Masuk ke AWS Management Console dan buka konsol MemoryDB di. https://console.aws.amazon.com/memorydb/

  2. Di panel navigasi kiri, pilih Daftar kontrol akses (ACL).

  3. Pilih yang ingin ACL Anda ubah dan kemudian pilih Modify

  4. Pada halaman Ubah, di bawah Pengguna yang dipilih lakukan salah satu hal berikut:

    1. Buat pengguna baru dengan memilih Buat pengguna untuk ditambahkan keACL.

    2. Menambah atau menghapus pengguna dengan memilih Kelola lalu memilih atau menghapus pilihan pengguna dari dialog Kelola pengguna lalu memilih Pilih.

  5. Pada halaman Buat daftar kontrol akses (ACL), masukkan ACL nama.

    Batasan penamaan klaster adalah sebagai berikut:

    • Harus berisi 1–40 karakter alfanumerik atau tanda hubung.

    • Harus diawali dengan huruf.

    • Tidak boleh berisi dua tanda hubung berurutan.

    • Tidak boleh diakhiri dengan tanda hubung.

  6. Di bawah Pengguna yang dipilih melakukan salah satu hal berikut:

    1. Buat pengguna baru dengan memilih Buat pengguna

    2. Tambahkan pengguna dengan memilih Kelola lalu pilih pengguna dari dialog Kelola pengguna lalu pilih Pilih.

  7. Pilih Ubah untuk menyimpan perubahan Anda atau Batalkan untuk membuangnya.

Untuk memodifikasi ACL dengan menambahkan pengguna baru atau menghapus anggota saat ini dengan menggunakan CLI
  • Gunakan perintah update-acl untuk memodfikasi file. ACL

    Untuk Linux, macOS, atau Unix:

    aws memorydb update-acl --acl-name new-acl-1 \ --user-names-to-add user-name-3 \ --user-names-to-remove user-name-2

    Untuk Windows:

    aws memorydb update-acl --acl-name new-acl-1 ^ --user-names-to-add user-name-3 ^ --user-names-to-remove user-name-2
catatan

Koneksi terbuka apa pun milik pengguna yang dihapus dari sebuah ACL diakhiri dengan perintah ini.

Untuk melihat ACL detail di konsol
  1. Masuk ke AWS Management Console dan buka konsol MemoryDB di. https://console.aws.amazon.com/memorydb/

  2. Di panel navigasi kiri, pilih Daftar kontrol akses (ACL).

  3. Pilih ACLnama ACL di bawah atau gunakan kotak pencarian untuk menemukanACL.

  4. Di bawah Pengguna, Anda dapat meninjau daftar pengguna yang terkait denganACL.

  5. Di bawah Kluster terkait, Anda dapat meninjau klaster yang ACL menjadi miliknya.

  6. Di bawah Tag, Anda dapat meninjau tag apa pun yang terkait denganACL.

Gunakan perintah describe-acls untuk melihat detail dari sebuah. ACL

aws memorydb describe-acls \ --acl-name test-group
Untuk menghapus daftar kontrol Access menggunakan konsol
  1. Masuk ke AWS Management Console dan buka konsol MemoryDB di. https://console.aws.amazon.com/memorydb/

  2. Di panel navigasi kiri, pilih Daftar kontrol akses (ACL).

  3. Pilih yang ingin ACL Anda ubah dan kemudian pilih Hapus

  4. Pada halaman Hapus, masukkan delete di kotak konfirmasi dan pilih Hapus atau Batal untuk menghindari penghapusan. ACL

Itu ACL sendiri, bukan pengguna yang termasuk dalam grup, dihapus.

Untuk menghapus ACL dengan menggunakan CLI
  • Gunakan perintah delete-acl untuk menghapus file. ACL

    Untuk Linux, macOS, atau Unix:

    aws memorydb delete-acl / --acl-name

    Untuk Windows:

    aws memorydb delete-acl ^ --acl-name

    Contoh sebelumnya menghasilkan respons berikut.

    aws memorydb delete-acl --acl-name "new-acl-1" { "ACLName": "new-acl-1", "Status": "deleting", "EngineVersion": "6.2", "UserNames": [ "user-name-1", "user-name-3" ], "clusters": [], "ARN":"arn:aws:memorydb:us-east-1:493071037918:acl/new-acl-1" }

Menetapkan daftar kontrol Access ke cluster

Setelah Anda membuat ACL dan menambahkan pengguna, langkah terakhir dalam mengimplementasikan ACLs adalah menetapkan ACL ke cluster.

Menetapkan daftar kontrol Access ke cluster Menggunakan Konsol

Untuk menambahkan ACL ke cluster menggunakan AWS Management Console, lihatMembuat cluster MemoryDB.

Menetapkan daftar kontrol Access ke cluster Menggunakan AWS CLI

AWS CLI Operasi berikut membuat cluster dengan enkripsi dalam transit (TLS) diaktifkan dan acl-name parameter dengan nilaimy-acl-name. Ganti grup subnet subnet-group dengan grup subnet yang ada.

Parameter Kunci
  • --engine-versionHarus 6.2.

  • --tls-enabled— Digunakan untuk otentikasi dan untuk mengaitkan. ACL

  • --acl-name— Nilai ini menyediakan daftar kontrol Access yang terdiri dari pengguna dengan izin akses tertentu untuk cluster.

Untuk Linux, macOS, atau Unix:

aws memorydb create-cluster \ --cluster-name "new-cluster" \ --description "new-cluster" \ --engine-version "6.2" \ --node-type db.r6g.large \ --tls-enabled \ --acl-name "new-acl-1" \ --subnet-group-name "subnet-group"

Untuk Windows:

aws memorydb create-cluster ^ --cluster-name "new-cluster" ^ --cluster-description "new-cluster" ^ --engine-version "6.2" ^ --node-type db.r6g.large ^ --tls-enabled ^ --acl-name "new-acl-1" ^ --subnet-group-name "subnet-group"

AWS CLI Operasi berikut memodifikasi cluster dengan enkripsi dalam transit (TLS) diaktifkan dan acl-name parameter dengan nilainew-acl-2.

Untuk Linux, macOS, atau Unix:

aws memorydb update-cluster \ --cluster-name cluster-1 \ --acl-name "new-acl-2"

Untuk Windows:

aws memorydb update-cluster ^ --cluster-name cluster-1 ^ --acl-name "new-acl-2"