Tutorial: Konfigurasikan domain dengan pengguna master IAM dan otentikasi Amazon Cognito - OpenSearch Layanan Amazon

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

Tutorial: Konfigurasikan domain dengan pengguna master IAM dan otentikasi Amazon Cognito

Tutorial ini mencakup kasus penggunaan OpenSearch Layanan Amazon yang populer untuk kontrol akses berbutir halus: pengguna master IAM dengan otentikasi Amazon Cognito untuk Dasbor. OpenSearch

Dalam tutorial, kita akan mengkonfigurasi peran master IAM dan peran IAM terbatas, yang kemudian akan kita kaitkan dengan pengguna di Amazon Cognito. Pengguna master kemudian dapat masuk ke OpenSearch Dasbor, memetakan pengguna terbatas ke peran, dan menggunakan kontrol akses berbutir halus untuk membatasi izin pengguna.

IAM roles and Amazon Cognito integration with OpenSearch Dashboards access control.

Meskipun langkah-langkah ini menggunakan kolam pengguna Amazon Cognito untuk autentikasi, proses dasar yang sama ini bekerja untuk penyedia autentikasi Cognito yang memungkinkan Anda menetapkan peran IAM yang berbeda untuk pengguna yang berbeda.

Anda akan menyelesaikan langkah-langkah berikut dalam tutorial ini:

Langkah 1: Buat master dan peran IAM terbatas

Arahkan ke konsol AWS Identity and Access Management (IAM) dan buat dua peran terpisah:

  • MasterUserRole— Pengguna master, yang akan memiliki izin penuh ke cluster dan mengelola peran dan pemetaan peran.

  • LimitedUserRole— Peran yang lebih terbatas, yang akan Anda berikan akses terbatas sebagai pengguna utama.

Untuk petunjuk membuat peran, lihat Membuat peran menggunakan kebijakan kepercayaan khusus.

Kedua peran harus memiliki kebijakan kepercayaan berikut, yang memungkinkan kumpulan identitas Cognito Anda untuk mengambil peran:

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Principal": { "Federated": "cognito-identity.amazonaws.com" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringEquals": { "cognito-identity.amazonaws.com:aud": "{identity-pool-id}" }, "ForAnyValue:StringLike": { "cognito-identity.amazonaws.com:amr": "authenticated" } } }] }
catatan

Ganti identity-pool-id dengan pengenal unik kumpulan identitas Amazon Cognito Anda. Misalnya, us-east-1:0c6cdba7-3c3c-443b-a958-fb9feb207aa6.

Langkah 2: Buat domain dengan otentikasi Cognito

Arahkan ke konsol OpenSearch Layanan Amazon di https://console.aws.amazon.com/aos/home/ dan buat domain dengan pengaturan berikut:

  • OpenSearch 1.0 atau yang lebih baru, atau Elasticsearch 7.8 atau yang lebih baru

  • Akses publik

  • Kontrol akses berbutir halus diaktifkan dengan MasterUserRole sebagai pengguna utama (dibuat pada langkah sebelumnya)

  • Otentikasi Amazon Cognito diaktifkan untuk Dasbor. OpenSearch Untuk petunjuk untuk mengaktifkan otentikasi Cognito dan memilih kumpulan pengguna dan identitas, lihat. Mengonfigurasi domain untuk menggunakan otentikasi Amazon Cognito

  • Kebijakan akses domain berikut:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "AWS": "arn:aws:iam::{account-id}:root" }, "Action": [ "es:ESHttp*" ], "Resource": "arn:aws:es:{region}:{account-id}:domain/{domain-name}/*" } ] }
  • HTTPS diperlukan untuk semua lalu lintas ke domain

  • ode-to-node Enkripsi N

  • Enkripsi data saat tidak digunakan

Langkah 3: Konfigurasikan pengguna Cognito

Saat domain Anda sedang dibuat, konfigurasikan master dan pengguna terbatas dalam Amazon Cognito dengan mengikuti Buat kumpulan pengguna di Panduan Pengembang Amazon Cognito. Terakhir, konfigurasikan kumpulan identitas Anda dengan mengikuti langkah-langkah di Buat kumpulan identitas di Amazon Cognito. Kumpulan pengguna dan kumpulan identitas harus sama Wilayah AWS.

Langkah 4: Memetakan peran di OpenSearch Dasbor

Setelah pengguna dikonfigurasi, Anda dapat masuk ke OpenSearch Dasbor sebagai pengguna utama dan memetakan pengguna ke peran.

  1. Kembali ke konsol OpenSearch Layanan dan arahkan ke URL OpenSearch Dasbor untuk domain yang Anda buat. URL mengikuti format ini:domain-endpoint/_dashboards/.

  2. Masuk dengan master-user kredensialnya.

  3. Pilih Tambahkan data sampel dan tambahkan contoh data penerbangan.

  4. Di panel navigasi kiri, pilih Keamanan, Peran, Buat peran.

  5. Beri nama peran new-role.

  6. Untuk Indeks, tentukan opensearch_dashboards_sample_data_fli* (kibana_sample_data_fli*pada domain Elasticsearch).

  7. Untuk izin Indeks, pilih baca.

  8. Untuk keamanan tingkat Dokumen, tentukan kueri berikut:

    { "match": { "FlightDelay": true } }
  9. Untuk keamanan tingkat lapangan, pilih Kecualikan dan tentukan. FlightNum

  10. Untuk Anonimisasi, tentukan. Dest

  11. Pilih Buat.

  12. Pilih Pengguna yang dipetakan, Kelola pemetaan. Tambahkan Nama Sumber Daya Amazon (ARN) LimitedUserRole sebagai identitas eksternal dan pilih Peta.

  13. Kembali ke daftar peran dan pilih opensearch_dashboards_user. Pilih Pengguna yang Dipetakan, Kelola pemetaan. Tambahkan ARN untuk LimitedUserRole sebagai peran backend dan pilih Peta.

Langkah 5: Uji izin

Jika peran Anda dipetakan dengan benar, Anda dapat masuk sebagai pengguna terbatas dan menguji izin.

  1. Di jendela browser pribadi yang baru, navigasikan ke URL OpenSearch Dasbor untuk domain, masuk menggunakan limited-user kredensialnya, dan pilih Jelajahi sendiri.

  2. Buka Dev Tools dan jalankan pencarian default:

    GET _search { "query": { "match_all": {} } }

    Perhatikan kesalahan izin. limited-user tidak memiliki izin untuk menjalankan pencarian luas klaster.

  3. Jalankan pencarian lain:

    GET opensearch_dashboards_sample_data_flights/_search { "query": { "match_all": {} } }

    Perhatikan bahwa semua dokumen yang cocok memiliki FlightDelay bidang true, bidang Dest yang anonim, dan tidak ada bidang FlightNum.

  4. Di jendela browser asli Anda, masuk sebagai master-user, pilih Alat Dev, dan kemudian lakukan pencarian yang sama. Perhatikan perbedaan izin, jumlah klik, dokumen yang cocok, dan bidang yang disertakan.