View a markdown version of this page

Mengaktifkan federasi SAML dengan AWS Identity and Access Management - OpenSearch Layanan Amazon

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

Mengaktifkan federasi SAML dengan AWS Identity and Access Management

OpenSearch UI mendukung Security Assertion Markup Language 2.0 (SAML), standar terbuka yang digunakan banyak penyedia identitas. Ini memungkinkan federasi identitas dengan AWS Identity and Access Management (IAM). Dengan dukungan ini, pengguna di akun atau organisasi Anda dapat langsung mengakses OpenSearch UI dengan mengambil peran IAM. Anda dapat membuat pengalaman masuk tunggal yang diprakarsai penyedia identitas (IdP) untuk pengguna akhir Anda, di mana mereka dapat melakukan otentikasi di penyedia identitas eksternal dan dialihkan langsung ke halaman yang Anda tentukan di UI. OpenSearch Anda juga dapat menerapkan kontrol akses halus dengan mengonfigurasi pengguna akhir atau grup untuk mengambil peran IAM yang berbeda dengan izin yang berbeda untuk mengakses OpenSearch UI dan sumber data terkait.

Topik ini menyajikan petunjuk langkah demi langkah untuk mengonfigurasi penggunaan SAML dengan OpenSearch UI. Dalam prosedur ini, kami menggunakan langkah-langkah untuk mengonfigurasi aplikasi manajemen identitas dan akses Okta sebagai contoh. Langkah-langkah konfigurasi untuk penyedia identitas lain, seperti Azure Active Directory dan Ping, serupa.

catatan

Jika Anda menggunakan Pusat Identi AWS tas IAM, Anda tidak perlu mengonfigurasi federasi SAML seperti yang dijelaskan dalam topik ini. OpenSearch UI mendukung IAM Identity Center secara native, yang menyediakan akses SSO tanpa konfigurasi SAML tambahan. IAM Identity Center juga mendukung manajemen pengguna dan grup tingkat organisasi. Integrasi SAML yang dijelaskan di sini ditujukan untuk penyedia identitas pihak ketiga (seperti Okta, Azure Active Directory, dan Ping) yang bukan IAM Identity Center.

Langkah 1: Siapkan aplikasi penyedia identitas (Okta)

Untuk menggunakan SAML dengan OpenSearch UI, langkah pertama adalah mengatur penyedia identitas Anda.

Tugas 1: Buat pengguna Okta
  1. Masuk ke organisasi Okta Anda di https://login.okta.com/ sebagai pengguna dengan hak administratif.

  2. Di konsol admin, di bawah Direktori di panel navigasi, pilih Orang.

  3. Pilih Tambah orang.

  4. Untuk Nama D epan, masukkan nama depan pengguna.

  5. Untuk Nama Bel akang, masukkan nama belakang pengguna.

  6. Untuk Nama Pengguna, masukkan nama pengguna pengguna dalam format email.

  7. Pilih Saya akan mengatur kata sandi dan masukkan kata sandi

  8. (Opsional) Kos ongkan kotak Pengguna harus mengubah kata sandi pada login pertama jika Anda tidak ingin pengguna mengubah kata sandi saat masuk pertama kali.

  9. Pilih Simpan.

Tugas 2: Buat dan tetapkan grup
  1. Masuk ke organisasi Okta Anda di https://login.okta.com/ sebagai pengguna dengan hak administratif.

  2. Di konsol admin, di bawah Direktori di panel navigasi, pilih Grup.

  3. Pilih Tambah grup.

  4. Masukkan nama grup dan pilih S impan.

  5. Pilih grup yang baru dibuat, lalu pilih Tet apkan orang.

  6. Pilih tanda plus (+), lalu pilih Sel esai.

  7. (Opsional) Ulangi Langkah 1—6 untuk menambahkan lebih banyak grup.

Tugas 3: Buat aplikasi Okta
  1. Masuk ke organisasi Okta Anda di https://login.okta.com/ sebagai pengguna dengan hak administratif.

  2. Di konsol admin, di bawah Aplikasi di panel navigasi, pilih Aplikasi.

  3. Pilih Buat Integrasi Aplikasi.

  4. Pilih SAML 2.0 sebagai metode masuk, lalu pilih Berikutnya.

  5. Masukkan nama untuk integrasi aplikasi Anda (misalnya,OpenSearch_UI), lalu pilih Ber ikutnya.

  6. Masukkan nilai berikut di aplikasi; Anda tidak perlu mengubah nilai lain:

    1. 1. Untuk URL Masuk Tun ggal, masukkan https://signin.aws.amazon.com/saml untuk Wil AWS ayah komersial, atau URL khusus untuk Wilayah Anda.

    2. 2. Untuk URI Audiens (ID Entitas SP), masukkanurn:amazon:webservices.

    3. 3. Untuk format ID Nama, masukkanEmailAddress.

  7. Pilih Berikutnya.

  8. Pilih Saya pelanggan Okta menambahkan aplikasi internal, lalu pilih Ini adalah aplikasi internal yang telah kami buat.

  9. Pilih Selesai.

  10. Pilih Tu gas, lalu pilih Tet apkan.

  11. Pilih Tetapkan ke grup, lalu pilih Tet apkan di sebelah grup yang ingin Anda tambahkan.

  12. Pilih Selesai.

Tugas 4: Siapkan konfigurasi lanjutan Okta

Setelah Anda membuat aplikasi SAML kustom, selesaikan langkah-langkah berikut:

  1. Masuk ke organisasi Okta Anda di https://login.okta.com/ sebagai pengguna dengan hak administratif.

    Di konsol administrator, di area Umum, pilih Edit di bawah pengaturan SAML.

  2. Pilih Berikutnya.

  3. Set el Status Relay Default ke titik akhir OpenSearch UI, menggunakan format:

    https://region.console.aws.amazon.com/aos/home?region=region#opensearch/applications/application-id/redirectToDashboardURL.

    Berikut ini adalah contohnya:

    https://us-east-2.console.aws.amazon.com/aos/home?region=us-east-2#opensearch/applications/abc123def4567EXAMPLE/redirectToDashboardURL

  4. Di bawah Pernyataan Atribut (opsional), tambahkan properti berikut:

    1. Menyediakan peran IAM dan penyedia identitas dalam format yang dipisahkan koma menggunakan atribut Role. Anda akan menggunakan peran IAM dan penyedia identitas yang sama di langkah selanjutnya saat menyiapkan AWS konfigurasi.

    2. Setel user.login untuk. RoleSessionName Ini digunakan sebagai pengidentifikasi untuk kredenSIAL sementara yang dikeluarkan ketika peran diasumsikan.

    Untuk referensi:

    Nama Format nama format Contoh

    https://aws.amazon.com/SAML/Attributes/Role

    Tidak ditentukan

    arn:aws:iam::aws-account-id:role/role-name,arn:aws:iam::aws-account-id:saml-provider/provider-name

    arn:aws:iam::111222333444:role/oktarole,arn:aws:iam::111222333444:saml-provider/oktaidp

    https://aws.amazon.com/SAML/Attributes/RoleSessionName

    Tidak ditentukan

    user.login

    user.login

  5. Setelah Anda menambahkan properti atribut, pilih Ber ikutnya, lalu pilih Sel esai.

Atribut Anda harus serupa dalam format dengan yang ditunjukkan pada gambar berikut. Nilai Status Relay Default adalah URL untuk menentukan halaman arahan untuk pengguna akhir di akun atau organisasi Anda setelah mereka menyelesaikan validasi masuk tunggal dari Okta. Anda dapat mengaturnya ke halaman mana pun di OpenSearch UI, dan kemudian memberikan URL itu kepada pengguna akhir yang dituju.

Area “SAML 2.0" melaporkan URL status relay default dan URL metadata untuk aplikasi.

Langkah 2: Siapkan AWS konfigurasi untuk Okta

Selesaikan tugas berikut untuk mengatur AWS konfigurasi Anda untuk Okta.

Tugas 1: Kumpulkan Informasi Okta

Untuk langkah ini, Anda perlu mengumpulkan informasi Okta Anda sehingga nantinya Anda dapat mengonfigurasinya. AWS

  1. Masuk ke organisasi Okta Anda di https://login.okta.com/ sebagai pengguna dengan hak administratif.

  2. Pada tab Masuk, di sudut kanan bawah halaman, pilih Lihat petunjuk penyiapan SAML.

  3. Perhatikan nilai untuk Identity Provider Single Sign-on URL. Anda dapat menggunakan URL ini saat menghubungkan ke klien SQL pihak ketiga seperti SQL Workbench/J.

  4. Gunakan metadata penyedia identitas di blok 4, lalu simpan file metadata dalam format.xml (misalnya,metadata.xml).

Tugas 2: Buat penyedia IAM

Untuk membuat penyedia IAM Anda, selesaikan langkah-langkah berikut:

  1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di https://console.aws.amazon.com/iam/.

  2. Di panel navigasi, di bawah Manajemen akses, pilih Penye dia identitas.

  3. Pilih Tambah penyedia.

  4. Untuk tipe Penyedia ¸ pilih SAML.

  5. Untuk nama Penye dia ¸ masukkan nama.

  6. Untuk dokumen Metadata, pilih Pilih file dan unggah file metadata (.xml) yang Anda unduh sebelumnya.

  7. Pilih Tambah penyedia.

Tugas 3: Buat peran IAM

Untuk membuat AWS Identity and Access Management peran Anda, selesaikan langkah-langkah berikut:

  1. Masuk ke Konsol Manajemen AWS dan buka konsol IAM di https://console.aws.amazon.com/iam/.

  2. Di panel navigasi, di bawah Manajemen akses, pilih Per an.

  3. Pilih Buat peran.

  4. Untuk Ti pe entitas tepercaya, pilih federasi SAML 2.0.

  5. Untuk penyedia berbasis SAML 2.0, pilih penyedia identitas yang Anda buat sebelumnya.

  6. Pilih Izinkan programmatic dan Konsol Manajemen AWS akses.

  7. catatan

    Di bawah Sign-in titik akhir, pilih tanpa pengidentifikasi unik. Jika Anda memilih dengan pengidentifikasi unik, SAML:aud kondisi dalam kebijakan kepercayaan tidak akan cocok dengan audiens pernyataan SAML, yang mengakibatkan AccessDenied kesalahan saat pengguna mencoba masuk.

  8. Pilih Berikutnya.

  9. Dalam daftar Kebijakan Izin, pilih kotak centang untuk kebijakan yang memberikan izin OpenSearch Layanan, misalnya, kebijakan ter AWS kelola AmazonOpenSearchServiceFullAccess.

  10. Pilih Berikutnya.

  11. Di area Tinjauan, untuk Nama Peran, masukkan nama peran Anda; misalnya,oktarole.

  12. (Opsional) Untuk Deskripsi, masukkan deskripsi singkat tentang tujuan peran.

  13. Pilih Buat peran.

  14. Arahkan ke peran yang baru saja Anda buat, pilih tab Hubungan Kepercayaan, lalu pilih Edit kebijakan kepercayaan.

  15. Di panel Edit pernyataan, di bawah Tambah tindakan untuk STS, pilih kotak untuk TagSession.

  16. Pilih Perbarui kebijakan.

Langkah 3: Buat kebijakan akses OpenSearch Layanan Amazon di IAM

Pelajari cara mengonfigurasi peran IAM Anda untuk kontrol OpenSearch akses. Dengan peran IAM, Anda dapat menerapkan kontrol akses halus untuk grup pengguna Okta Anda untuk mengakses sumber daya. OpenSearch Topik ini menunjukkan konfigurasi berbasis peran IAM menggunakan dua grup contoh.

Sample group: Alice

Permintaan:

GET _plugins/_security/api/roles/alice-group

Hasil:

{ "alice-group": { "reserved": false, "hidden": false, "cluster_permissions": [ "unlimited" ], "index_permissions": [ { "index_patterns": [ "alice*" ], "dls": "", "fls": [], "masked_fields": [], "allowed_actions": [ "indices_all" ] } ], "tenant_permissions": [ { "tenant_patterns": [ "global_tenant" ], "allowed_actions": [ "kibana_all_write" ] } ], "static": false } }
Sample group: Bob

Permintaan:

GET _plugins/_security/api/roles/bob-group

Hasil:

{ "bob-group": { "reserved": false, "hidden": false, "cluster_permissions": [ "unlimited" ], "index_permissions": [ { "index_patterns": [ "bob*" ], "dls": "", "fls": [], "masked_fields": [], "allowed_actions": [ "indices_all" ] } ], "tenant_permissions": [ { "tenant_patterns": [ "global_tenant" ], "allowed_actions": [ "kibana_all_write" ] } ], "static": false } }

Anda dapat memetakan peran domain OpenSearch Layanan Amazon ke peran IAM menggunakan pemetaan peran backend, seperti yang ditunjukkan dalam contoh berikut:

{ "bob-group": { "hosts": [], "users": [], "reserved": false, "hidden": false, "backend_roles": [ "arn:aws:iam::111222333444:role/bob-group" ], "and_backend_roles": [] }, "alice-group": { "hosts": [], "users": [], "reserved": false, "hidden": false, "backend_roles": [ "arn:aws:iam::111222333444:role/alice-group" ], "and_backend_roles": [] } }

Langkah 4: Verifikasi Sign-On pengalaman tunggal yang diprakarsai penyedia identitas dengan SAML

Buka URL untuk Status Relay Def ault untuk membuka halaman otentikasi Okta. Masukkan kredensibilitas pengguna akhir. Anda secara otomatis diarahkan ke OpenSearch UI.

Anda dapat memeriksa kredenSIAL Anda saat ini dengan memilih ikon pengguna di bagian bawah panel navigasi, seperti yang diilustrasikan pada gambar berikut:

Memilih ikon pengguna di halaman “Pengaturan dan pengaturan” Okta menampilkan kredenSIAL pengguna saat ini.

Anda juga dapat memverifikasi izin kontrol akses halus untuk pengguna dengan mengakses Alat Pengembang di bagian bawah panel navigasi dan menjalankan kueri di konsol. Berikut ini adalah contoh kueri.

Example 1: Displays information about the current user

Permintaan:

GET _plugins/_security/api/account

Hasil:

{ "user_name": "arn:aws:iam::XXXXXXXXXXXX:role/bob-group", "is_reserved": false, "is_hidden": false, "is_internal_user": false, "user_requested_tenant": null, "backend_roles": [ "arn:aws:iam::XXXXXXXXXXXX:role/bob-group" ], "custom_attribute_names": [], "tenants": { "global_tenant": true, "arn:aws:iam::XXXXXXXXXXXX:role/bob-group": true }, "roles": [ "bob-group" ] }
Example 2: Displays actions permitted for a user

Permintaan:

GET bob-test/_search

Hasil:

{ "took": 390, "timed_out": false, "_shards": { "total": 5, "successful": 5, "skipped": 0, "failed": 0 }, "hits": { "total": { "value": 1, "relation": "eq" }, "max_score": 1, "hits": [ { "_index": "bob-test", "_id": "ui01N5UBCIHpjO8Jlvfy", "_score": 1, "_source": { "title": "Your Name", "year": "2016" } } ] } }
Example 3: Displays actions not permitted for a user

Permintaan:

GET alice-test

Hasil:

{ "error": { "root_cause": [ { "type": "security_exception", "reason": "no permissions for [indices:admin/get] and User [name=arn:aws:iam::111222333444:role/bob-group, backend_roles=[arn:aws:iam::111222333444:role/bob-group], requestedTenant=null]" } ], "type": "security_exception", "reason": "no permissions for [indices:admin/get] and User [name=arn:aws:iam::111222333444:role/bob-group, backend_roles=[arn:aws:iam::111222333444:role/bob-group], requestedTenant=null]" }, "status": 403 }

Langkah 5: Konfigurasikan kontrol akses berbutir halus berbasis atribut SAML

Dengan Amazon OpenSearch Service, Anda dapat menggunakan kontrol akses halus dengan SAML untuk memetakan pengguna dan grup dari penyedia identitas Anda ke pengguna dan peran kontrol akses OpenSearch yang halus secara dinamis. Anda dapat memasukkan peran ini ke OpenSearch domain tertentu dan koleksi tanpa server, dan menentukan izin tingkat indeks dan keamanan tingkat dokumen.

catatan

Untuk informasi selengkapnya tentang kontrol akses halus, lihat. Fine-grained kontrol akses di OpenSearch Layanan Amazon

Atribut SAML untuk kontrol akses halus

SubjekKunci

Memetakan ke atribut pengguna unik, seperti email atau nama pengguna, yang mengidentifikasi pengguna untuk otentikasi.

RolesKey

Memetakan ke atribut grup atau peran di IdP Anda yang menentukan peran atau izin untuk otorisasi.

Tugas 1: Konfigurasikan Okta untuk kontrol akses halus

Untuk mengkonfigurasi Okta untuk kontrol akses halus
  1. Tambahkan atribut baru untuk prinsipal OpenSearch pengguna di bagian Pernyataan Atribut:

    • Nama: UserName

    • Nilai: ${user-email}

    Atribut ini digunakan sebagai kunci Subjek dalam konfigurasi kontrol OpenSearch akses halus untuk otentikasi.

  2. Tambahkan atribut grup untuk peran di bagian Pernyataan Atribut Grup:

    • Nama: groups

    • Menyaring: OpenSearch_xxx

    Atribut ini digunakan sebagai kunci Per an untuk memetakan grup ke peran kontrol akses OpenSearch berbutir halus untuk otorisasi.

Tugas 2: Konfigurasikan SAML di domain OpenSearch

Untuk mengkonfigurasi SAML di domain OpenSearch
  1. Di Konsol AWS Manajemen, identifikasi domain OpenSearch Layanan yang ingin Anda aktifkan kontrol akses halus untuk pengguna OpenSearch UI.

  2. Arahkan ke halaman detail domain tertentu.

  3. Pilih tab Konfigurasi keamanan dan klik Edit.

  4. Perluas SAML melalui IAM Federate.

  5. Masukkan subjectKey dan roleKey yang Anda definisikan di Okta.

  6. Pilih Simpan perubahan.

Anda juga dapat mengonfigurasi kontrol akses halus menggunakan. AWS CLI

aws opensearch create-domain \ --domain-name testDomain \ --engine-version OpenSearch_1.3 \ --cluster-config InstanceType=r5.xlarge.search,InstanceCount=1,DedicatedMasterEnabled=false,ZoneAwarenessEnabled=false,WarmEnabled=false \ --access-policies '{"Version": "2012-10-17","Statement":[{"Effect":"Allow","Principal":{"AWS":"*"},"Action":"es:*","Resource":"arn:aws:es:us-east-1:12345678901:domain/neosaml10/*"}]}' \ --domain-endpoint-options '{"EnforceHTTPS":true,"TLSSecurityPolicy":"Policy-Min-TLS-1-2-2019-07"}' \ --node-to-node-encryption-options '{"Enabled":true}' \ --encryption-at-rest-options '{"Enabled":true}' \ --advanced-security-options '{"Enabled":true,"InternalUserDatabaseEnabled":true,"MasterUserOptions":{"MasterUserName":"********","MasterUserPassword":"********"}, "IAMFederationOptions":{"Enabled": true,"SubjectKey":"TestSubjectKey","RolesKey":"TestRolesKey"}}' \ --ebs-options "EBSEnabled=true,VolumeType=gp2,VolumeSize=300" \ --no-verify-ssl \ --endpoint-url https://es.us-east-1.amazonaws.com \ --region us-east-1

Untuk memperbarui domain yang ada:

aws opensearch update-domain-config \ --domain-name testDomain \ --advanced-security-options '{"Enabled":true,"InternalUserDatabaseEnabled":true,"MasterUserOptions":{"MasterUserName":"********","MasterUserPassword":"********"}, "IAMFederationOptions":{"Enabled": true,"SubjectKey":"TestSubjectKey","RolesKey":"TestRolesKey"}}' \ --ebs-options "EBSEnabled=true,VolumeType=gp2,VolumeSize=300" \ --no-verify-ssl \ --endpoint-url https://es.us-east-1.amazonaws.com \ --region us-east-1

Tugas 3: Konfigurasikan SAML dalam koleksi tanpa OpenSearch server

Untuk mengonfigurasi kontrol SAML-based akses halus di Tanpa Server OpenSearch
  1. Buka Konsol Manajemen AWS dan arahkan ke OpenSearch Layanan Amazon.

  2. Di panel navigasi, di bawah Tanpa server, pilih Keamanan, lalu pilih Oten tik asi.

  3. Di bagian Federasi IAM, pilih Edit.

    Anda dapat mengontrol kontrol akses berbutir halus berbasis atribut SAML menggunakan konfigurasi ini. Federasi IAM dinonaktifkan secara default.

  4. Pilih Aktifkan Federasi IAM.

  5. Masukkan roleKey nilai subjectKey dan yang Anda definisikan di Okta.

    Untuk informasi selengkapnya, lihat Atribut SAML untuk kontrol akses halus.

  6. Pilih Simpan.

  7. Di panel navigasi di bawah Tanpa server, pilih Kebijakan akses data.

  8. Perbarui kebijakan yang ada atau buat yang baru.

  9. Perluas aturan, pilih Tam bah prinsipal, lalu pilih pengguna dan grup Federasi IAM.

  10. Tambahkan prinsipal yang diperlukan dan pilih S impan.

  11. PilihIzin.

  12. Di bawah aturan ini, lakukan hal berikut:

    • Pilih izin yang ingin Anda tentukan untuk prinsipal yang dipilih.

    • Tentukan koleksi tempat Anda ingin menerapkan izin.

    • Secara opsional, tentukan izin tingkat indeks.

    catatan

    Anda dapat membuat beberapa aturan untuk menetapkan izin yang berbeda untuk kelompok prinsipal yang berbeda.

  13. Setelah selesai, silakan pilih Simpan.

  14. Pilih Buat.

Atau, Anda dapat menggunakan CLI untuk membuat konfigurasi keamanan untuk koleksi, seperti yang diberikan di bawah ini:

aws opensearchserverless create-security-config --region "region" --type iamfederation --name "configuration_name" --description "description" --iam-federation-options '{"groupAttribute":"GroupKey","userAttribute":"UserKey"}'