Mengautentikasi pengguna dengan Daftar Kontrol Akses (ACL) - 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 (ACL)

Anda dapat mengautentikasi pengguna dengan Access Control List (ACL).

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

Dengan ACL, 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.

ACL dirancang untuk mendukung pengenalan Redis ACL di Redis OSS 6. Saat Anda menggunakan ACL 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 Redis OSS Terbatas.

  • Anda tidak dapat menggunakan perintah reset sebagai bagian dari string akses. Anda menentukan kata sandi dengan parameter API, 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 ACL LIST. Perintah ini menampilkan daftar pengguna beserta aturan ACL yang berlaku 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 read-only lainnya yang didukung oleh MemoryDB termasuk ACL WHOAMI, ACL USERS, dan ACL CAT. MemoryDB tidak mendukung perintah ACL berbasis tulis lainnya.

Menggunakan ACL 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 aturan ACL, 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 dibatasi pada command1.

+@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.

Perintah VSS @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 ACL ke cluster untuk MemoryDB

Untuk menggunakan MemoryDB ACL, 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 pengguna ACL 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 ACL yang dimaksudkan. Misalnya, jika Anda membuat ACL yang dipanggilAdministrators, setiap pengguna yang Anda tambahkan ke grup itu harus memiliki string aksesnya disetel ke akses penuh ke kunci dan perintah. Untuk pengguna di e-commerce ACL, 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 ACL. Anda tidak dapat mengubah atau menghapus pengguna ini. Pengguna ini dimaksudkan untuk kompatibilitas dengan perilaku default versi Redis OSS sebelumnya dan memiliki string akses yang memungkinkannya untuk memanggil semua perintah dan mengakses semua kunci.

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

Cluster yang tidak mengaktifkan TLS harus menggunakan ACL “akses terbuka” untuk memberikan otentikasi terbuka.

ACL dapat dibuat tanpa pengguna. ACL kosong tidak akan memiliki akses ke cluster dan hanya dapat dikaitkan dengan cluster yang mendukung TLS.

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 ACL 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 mengubah pengguna menggunakan CLI
  1. Gunakan perintah update-user untuk memodifikasi pengguna.

  2. Ketika pengguna dimodifikasi, daftar kontrol Access yang terkait dengan pengguna diperbarui, bersama dengan cluster 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 Daftar kontrol akses (ACL) Anda dapat meninjau ACL milik pengguna.

  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 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 Create Access Control List (ACL), masukkan nama ACL.

    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 terpilih 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 ACL Anda atau melacak biaya Anda AWS .

  7. Pilih Buat.

Gunakan prosedur berikut untuk membuat daftar kontrol Akses menggunakan CLI.

Untuk membuat ACL baru dan menambahkan pengguna dengan menggunakan CLI
  • Gunakan perintah create-acl untuk membuat 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 ACL yang ingin 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 ke ACL.

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

  5. Pada halaman Create Access Control List (ACL), masukkan nama ACL.

    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 terpilih 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 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

Setiap koneksi terbuka milik pengguna yang dihapus dari ACL diakhiri dengan perintah ini.

Untuk melihat detail ACL 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 ACL di bawah nama ACL atau gunakan kotak pencarian untuk menemukan ACL.

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

  5. Di bawah Kluster terkait, Anda dapat meninjau klaster tempat ACL berada.

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

Gunakan perintah describe-acls untuk melihat detail 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 ACL yang ingin Anda ubah dan kemudian pilih Hapus

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

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

Untuk menghapus ACL dengan menggunakan CLI
  • Gunakan perintah delete-acl untuk menghapus 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 Akses ke cluster

Setelah Anda membuat ACL dan menambahkan pengguna, langkah terakhir dalam menerapkan ACL 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 nilai. new-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"