Kontrol akses data untuk Amazon Tanpa OpenSearch Server - OpenSearch Layanan Amazon

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

Kontrol akses data untuk Amazon Tanpa OpenSearch Server

Dengan kontrol akses data di Amazon OpenSearch Tanpa Server, Anda dapat mengizinkan pengguna mengakses koleksi dan indeks, terlepas dari mekanisme akses atau sumber jaringannya. Anda dapat memberikan akses ke peran IAM dan identitas SALL.

Anda mengelola izin akses melalui kebijakan akses data, yang berlaku untuk koleksi dan sumber daya indeks. Kebijakan akses data membantu Anda mengelola koleksi dalam skala besar dengan secara otomatis menetapkan izin akses ke koleksi dan indeks yang cocok dengan pola tertentu. Beberapa kebijakan akses data dapat diterapkan ke satu sumber daya. Perhatikan bahwa Anda harus memiliki kebijakan akses data untuk koleksi Anda agar dapat mengakses URL OpenSearch Dasbor Anda.

Kebijakan akses data versus kebijakan IAM

Kebijakan akses data secara logis terpisah dari kebijakan AWS Identity and Access Management (IAM). Izin IAM mengontrol akses ke operasi API tanpa server, seperti dan. CreateCollection ListAccessPolicies Kebijakan akses data mengontrol akses ke OpenSearch operasi yang didukung OpenSearch Tanpa Server, seperti PUT <index> atau. GET _cat/indices

Izin IAM yang mengontrol akses ke operasi API kebijakan akses data, seperti aoss:CreateAccessPolicy dan aoss:GetAccessPolicy (dijelaskan di bagian berikutnya), tidak memengaruhi izin yang ditentukan dalam kebijakan akses data.

Misalnya, kebijakan IAM menyangkal pengguna membuat kebijakan akses data untukcollection-a, tetapi memungkinkan mereka membuat kebijakan akses data untuk semua koleksi ()*:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Action": [ "aoss:CreateAccessPolicy" ], "Resource": "*", "Condition": { "StringLike": { "aoss:collection": "collection-a" } } }, { "Effect": "Allow", "Action": [ "aoss:CreateAccessPolicy" ], "Resource": "*" } ] }

Jika pengguna membuat kebijakan akses data yang mengizinkan izin tertentu untuk semua koleksi (collection/*atauindex/*/*) kebijakan tersebut akan berlaku untuk semua koleksi, termasuk koleksi A.

penting

Pemberian izin dalam kebijakan akses data tidak cukup untuk mengakses data dalam koleksi Tanpa OpenSearch Server Anda. Prinsipal terkait juga harus diberikan akses ke izin aoss:APIAccessAll IAM dan. aoss:DashboardAccessAll Kedua izin memberikan akses penuh ke sumber daya koleksi, sementara izin Dasbor juga menyediakan akses ke OpenSearch Dasbor. Jika prinsipal tidak memiliki kedua izin IAM ini, mereka akan menerima 403 kesalahan saat mencoba mengirim permintaan ke koleksi. Untuk informasi selengkapnya, lihat Menggunakan operasi OpenSearch API.

Izin IAM diperlukan untuk mengonfigurasi kebijakan akses data

Kontrol akses data untuk OpenSearch Tanpa Server menggunakan izin IAM berikut. Anda dapat menentukan kondisi IAM untuk membatasi pengguna ke nama kebijakan akses tertentu.

  • aoss:CreateAccessPolicy— Buat kebijakan akses.

  • aoss:ListAccessPolicies— Daftar semua kebijakan akses.

  • aoss:GetAccessPolicy— Lihat detail tentang kebijakan akses tertentu.

  • aoss:UpdateAccessPolicy— Memodifikasi kebijakan akses.

  • aoss:DeleteAccessPolicy— Hapus kebijakan akses.

Kebijakan akses berbasis identitas berikut memungkinkan pengguna untuk melihat semua kebijakan akses, dan memperbarui kebijakan yang berisi pola sumber daya. collection/logs

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "aoss:ListAccessPolicies", "aoss:GetAccessPolicy" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "aoss:UpdateAccessPolicy" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "aoss:collection": [ "logs" ] } } } ] }
catatan

Selain itu, OpenSearch Tanpa Server memerlukan aoss:DashboardsAccessAll izin aoss:APIAccessAll dan untuk sumber daya pengumpulan. Untuk informasi selengkapnya, lihat Menggunakan operasi OpenSearch API.

Sintaksis kebijakan

Kebijakan akses data mencakup seperangkat aturan, masing-masing dengan elemen berikut:

Elemen Deskripsi
ResourceType Jenis sumber daya (koleksi atau indeks) yang diterapkan izin. Izin alias dan template berada di tingkat pengumpulan, sementara izin untuk membuat, memodifikasi, dan mencari data berada pada tingkat indeks. Untuk informasi selengkapnya, lihat Izin kebijakan yang didukung.
Resource Daftar nama dan/atau pola sumber daya. Pola adalah awalan yang diikuti oleh wildcard (*), yang memungkinkan izin terkait diterapkan ke beberapa sumber daya.
  • Koleksi mengambil formatcollection/<name|pattern>.

  • Indeks mengambil formatindex/<collection-name|pattern>/<index-name|pattern/>.

Permission Daftar izin untuk diberikan untuk sumber daya yang ditentukan. Untuk daftar lengkap izin dan operasi API yang diizinkan, lihatOperasi dan izin OpenSearch API yang didukung.
Principal Daftar satu atau lebih kepala sekolah untuk memberikan akses ke. Prinsipal dapat berupa ARN peran IAM atau identitas SALL. Prinsipal ini harus berada dalam arus. Akun AWS Kebijakan akses data tidak secara langsung mendukung akses lintas akun, tetapi Anda dapat menyertakan peran dalam kebijakan yang Akun AWS dapat diasumsikan oleh pengguna dari akun pemilik koleksi. Untuk informasi selengkapnya, lihat Akses data lintas akun.

Kebijakan contoh berikut memberikan izin alias dan templat ke koleksi yang dipanggilautopartsinventory, serta koleksi apa pun yang dimulai dengan awalan. sales* Ini juga memberikan izin baca dan tulis ke semua indeks dalam autopartsinventory koleksi, dan indeks apa pun dalam salesorders koleksi yang dimulai dengan awalan. orders*

[ { "Description": "Rule 1", "Rules":[ { "ResourceType":"collection", "Resource":[ "collection/autopartsinventory", "collection/sales*" ], "Permission":[ "aoss:CreateCollectionItems", "aoss:UpdateCollectionItems", "aoss:DescribeCollectionItems" ] }, { "ResourceType":"index", "Resource":[ "index/autopartsinventory/*", "index/salesorders/orders*" ], "Permission":[ "aoss:*" ] } ], "Principal":[ "arn:aws:iam::123456789012:user/Dale", "arn:aws:iam::123456789012:role/RegulatoryCompliance", "saml/123456789012/myprovider/user/Annie", "saml/123456789012/anotherprovider/group/Accounting" ] } ]

Anda tidak dapat secara eksplisit menolak akses dalam kebijakan. Oleh karena itu, semua izin kebijakan bersifat aditif. Misalnya, jika satu kebijakan memberikan penggunaaoss:ReadDocument, dan kebijakan lain memberikanaoss:WriteDocument, pengguna akan memiliki kedua izin tersebut. Jika kebijakan ketiga memberikan pengguna yang samaaoss:*, maka pengguna dapat melakukan semua tindakan pada indeks terkait; izin yang lebih ketat tidak akan mengesampingkan yang kurang membatasi.

Izin kebijakan yang didukung

Izin berikut didukung dalam kebijakan akses data. Untuk operasi OpenSearch API yang diizinkan oleh setiap izin, lihatOperasi dan izin OpenSearch API yang didukung.

Izin koleksi

  • aoss:CreateCollectionItems

  • aoss:DeleteCollectionItems

  • aoss:UpdateCollectionItems

  • aoss:DescribeCollectionItems

  • aoss:*

Izin indeks

  • aoss:ReadDocument

  • aoss:WriteDocument

  • aoss:CreateIndex

  • aoss:DeleteIndex

  • aoss:UpdateIndex

  • aoss:DescribeIndex

  • aoss:*

Contoh kumpulan data di Dasbor OpenSearch

OpenSearch Dasbor menyediakan contoh kumpulan data yang dilengkapi dengan visualisasi, dasbor, dan alat lain untuk membantu Anda menjelajahi Dasbor sebelum menambahkan data Anda sendiri. Untuk membuat indeks dari data sampel ini, Anda memerlukan kebijakan akses data yang menyediakan izin ke kumpulan data yang ingin Anda gunakan. Kebijakan berikut menggunakan wildcard (*) untuk memberikan izin ke ketiga kumpulan data sampel.

[ { "Rules": [ { "Resource": [ "index/<collection-name>/opensearch_dashboards_sample_data_*" ], "Permission": [ "aoss:CreateIndex", "aoss:DescribeIndex", "aoss:ReadDocument" ], "ResourceType": "index" } ], "Principal": [ "arn:aws:iam::<account-id>:user/<user>" ] } ]

Membuat kebijakan akses data (konsol)

Anda dapat membuat kebijakan akses data menggunakan editor visual, atau dalam format JSON. Setiap koleksi baru yang cocok dengan salah satu pola yang ditentukan dalam kebijakan akan diberikan izin terkait saat Anda membuat koleksi.

Untuk membuat kebijakan OpenSearch akses data Tanpa Server
  1. Buka konsol OpenSearch Layanan Amazon di https://console.aws.amazon.com/aos/home.

  2. Di panel navigasi kiri, perluas Tanpa Server dan pilih Kontrol akses data.

  3. Pilih Buat kebijakan akses.

  4. Berikan nama dan deskripsi untuk kebijakan tersebut.

  5. Berikan nama untuk aturan pertama dalam kebijakan Anda. Misalnya, “Akses koleksi log”.

  6. Pilih Tambahkan prinsipal dan pilih satu atau beberapa peran IAM atau pengguna dan grup SAFL untuk menyediakan akses data.

    catatan

    Untuk memilih prinsipal dari menu tarik-turun, Anda harus memiliki dan izin (untuk kepala sekolah IAM) iam:ListUsers dan iam:ListRoles izin (untuk identitas SAFL). aoss:ListSecurityConfigs

  7. Pilih Grant dan pilih alias, template, dan izin indeks untuk memberikan prinsipal terkait. Untuk daftar lengkap izin dan akses yang mereka izinkan, lihatOperasi dan izin OpenSearch API yang didukung.

  8. (Opsional) Konfigurasikan aturan tambahan untuk kebijakan tersebut.

  9. Pilih Buat. Mungkin ada sekitar satu menit jeda waktu antara saat Anda membuat kebijakan dan saat izin diberlakukan. Jika dibutuhkan lebih dari 5 menit, hubungi AWS Support.

penting

Jika kebijakan Anda hanya menyertakan izin indeks (dan tidak ada izin pengumpulan), Anda mungkin masih melihat pesan untuk pencocokan koleksi yang menyatakan. Collection cannot be accessed yet. Configure data access policies so that users can access the data within this collection Anda dapat mengabaikan peringatan ini. Prinsipal yang diizinkan masih dapat melakukan operasi terkait indeks yang ditetapkan pada koleksi.

Membuat kebijakan akses data (AWS CLI)

Untuk membuat kebijakan akses data menggunakan API OpenSearch Tanpa Server, gunakan perintah. CreateAccessPolicy Perintah menerima kebijakan inline dan file.json. Kebijakan sebaris harus dikodekan sebagai string lolos JSON.

Permintaan berikut membuat kebijakan akses data:

aws opensearchserverless create-access-policy \ --name marketing \ --type data \ --policy "[{\"Rules\":[{\"ResourceType\":\"collection\",\"Resource\":[\"collection/autopartsinventory\",\"collection/sales*\"],\"Permission\":[\"aoss:UpdateCollectionItems\"]},{\"ResourceType\":\"index\",\"Resource\":[\"index/autopartsinventory/*\",\"index/salesorders/orders*\"],\"Permission\":[\"aoss:ReadDocument\",\"aoss:DescribeIndex\"]}],\"Principal\":[\"arn:aws:iam::123456789012:user/Shaheen\"]}]"

Untuk menyediakan kebijakan dalam file.json, gunakan formatnya. --policy file://my-policy.json

Prinsipal yang termasuk dalam kebijakan sekarang dapat menggunakan OpenSearch operasi yang diberikan akses kepada mereka.

Melihat kebijakan akses data

Sebelum membuat koleksi, Anda mungkin ingin melihat pratinjau kebijakan akses data yang ada di akun Anda untuk melihat mana yang memiliki pola sumber daya yang cocok dengan nama koleksi Anda. ListAccessPoliciesPermintaan berikut mencantumkan semua kebijakan akses data di akun Anda:

aws opensearchserverless list-access-policies --type data

Permintaan mengembalikan informasi tentang semua kebijakan akses data yang dikonfigurasi. Untuk melihat aturan pola yang ditentukan dalam satu kebijakan tertentu, cari informasi kebijakan dalam konten accessPolicySummaries elemen dalam respons. Perhatikan name dan type kebijakan ini dan gunakan properti ini dalam GetAccessPolicypermintaan untuk menerima tanggapan dengan rincian kebijakan berikut:

{ "accessPolicyDetails": [ { "type": "data", "name": "my-policy", "policyVersion": "MTY2NDA1NDE4MDg1OF8x", "description": "My policy", "policy": "[{\"Rules\":[{\"ResourceType\":\"collection\",\"Resource\":[\"collection/autopartsinventory\",\"collection/sales*\"],\"Permission\":[\"aoss:UpdateCollectionItems\"]},{\"ResourceType\":\"index\",\"Resource\":[\"index/autopartsinventory/*\",\"index/salesorders/orders*\"],\"Permission\":[\"aoss:ReadDocument\",\"aoss:DescribeIndex\"]}],\"Principal\":[\"arn:aws:iam::123456789012:user/Shaheen\"]}]", "createdDate": 1664054180858, "lastModifiedDate": 1664054180858 } ] }

Anda dapat menyertakan filter sumber daya untuk membatasi hasil pada kebijakan yang berisi koleksi atau indeks tertentu:

aws opensearchserverless list-access-policies --type data --resource "index/autopartsinventory/*"

Untuk melihat detail tentang kebijakan tertentu, gunakan GetAccessPolicyperintah.

Memperbarui kebijakan akses data

Saat Anda memperbarui kebijakan akses data, semua koleksi terkait akan terpengaruh. Untuk memperbarui kebijakan akses data di konsol OpenSearch Tanpa Server, pilih Kontrol akses data, pilih kebijakan yang akan diubah, dan pilih Edit. Buat perubahan dan pilih Simpan.

Untuk memperbarui kebijakan akses data menggunakan API OpenSearch Tanpa Server, kirim permintaan. UpdateAccessPolicy Anda harus menyertakan versi kebijakan, yang dapat Anda ambil menggunakan GetAccessPolicy perintah ListAccessPolicies atau. Menyertakan versi kebijakan terbaru memastikan bahwa Anda tidak secara tidak sengaja mengesampingkan perubahan yang dilakukan oleh orang lain.

UpdateAccessPolicyPermintaan berikut memperbarui kebijakan akses data dengan dokumen JSON kebijakan baru:

aws opensearchserverless update-access-policy \ --name sales-inventory \ --type data \ --policy-version MTY2NDA1NDE4MDg1OF8x \ --policy file://my-new-policy.json

Mungkin ada jeda waktu beberapa menit antara saat Anda memperbarui kebijakan dan saat izin baru diberlakukan.

Menghapus kebijakan akses data

Saat Anda menghapus kebijakan akses data, semua koleksi terkait kehilangan akses yang ditentukan dalam kebijakan. Pastikan bahwa pengguna IAM dan SALL Anda memiliki akses yang sesuai ke koleksi sebelum Anda menghapus kebijakan. Untuk menghapus kebijakan di konsol OpenSearch Tanpa Server, pilih kebijakan dan pilih Hapus.

Anda juga dapat menggunakan DeleteAccessPolicyperintah:

aws opensearchserverless delete-access-policy --name my-policy --type data

Akses data lintas akun

Meskipun Anda tidak dapat membuat kebijakan akses data dengan identitas lintas akun atau koleksi lintas akun, Anda masih dapat mengatur akses lintas akun dengan opsi asumsikan peran. Misalnya, jika account-a memiliki koleksi yang account-b memerlukan akses ke, pengguna dari account-b dapat mengambil peran dalamaccount-a. Peran harus memiliki izin IAM aoss:APIAccessAll danaoss:DashboardsAccessAll, dan disertakan dalam kebijakan akses data pada. account-a