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.
Topik
- Kebijakan akses data versus kebijakan IAM
- Izin IAM diperlukan untuk mengonfigurasi kebijakan akses data
- Sintaksis kebijakan
- Izin kebijakan yang didukung
- Contoh kumpulan data di Dasbor OpenSearch
- Membuat kebijakan akses data (konsol)
- Membuat kebijakan akses data (AWS CLI)
- Melihat kebijakan akses data
- Memperbarui kebijakan akses data
- Menghapus kebijakan akses data
- Akses data lintas akun
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:DashboardsAccessAll
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 OpenSearch API operasi.
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 OpenSearch API operasi.
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.
|
Permission |
Daftar izin untuk diberikan untuk sumber daya yang ditentukan. Untuk daftar lengkap izin dan operasi API yang diizinkan, lihat OpenSearch APIOperasi dan izin 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, lihat OpenSearch APIOperasi dan izin 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*
) 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
-
Buka konsol OpenSearch Layanan Amazon di https://console.aws.amazon.com/aos/home
. -
Di panel navigasi kiri, perluas Tanpa Server dan pilih Kontrol akses data.
-
Pilih Buat kebijakan akses.
-
Berikan nama dan deskripsi untuk kebijakan tersebut.
-
Berikan nama untuk aturan pertama dalam kebijakan Anda. Misalnya, “Akses koleksi log”.
-
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
daniam:ListRoles
izin (untuk identitas SAFL).aoss:ListSecurityConfigs
-
Pilih Grant dan pilih alias, template, dan izin indeks untuk memberikan prinsipal terkait. Untuk daftar lengkap izin dan akses yang mereka izinkan, lihat OpenSearch APIOperasi dan izin yang didukung.
-
(Opsional) Konfigurasikan aturan tambahan untuk kebijakan tersebut.
-
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
memiliki koleksi yang account-a
memerlukan akses ke, pengguna dari account-b
dapat mengambil peran dalamaccount-b
. Peran harus memiliki izin IAM account-a
aoss:APIAccessAll
danaoss:DashboardsAccessAll
, dan disertakan dalam kebijakan akses data pada. account-a