Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Memantau log audit di Amazon OpenSearch Service
Jika domain OpenSearch Layanan Amazon menggunakan kontrol akses berbutir halus, Anda dapat mengaktifkan log audit untuk data Anda. Log audit sangat dapat disesuaikan dan memungkinkan Anda melacak aktivitas pengguna di OpenSearch klaster Anda, termasuk keberhasilan dan kegagalan otentikasi, permintaan, perubahan indeks OpenSearch, dan kueri penelusuran yang masuk. Konfigurasi default melacak serangkaian tindakan pengguna yang populer, namun sebaiknya sesuaikan pengaturan sesuai kebutuhan Anda.
Sama seperti log OpenSearch aplikasi dan log lambat, OpenSearch Service menerbitkan log audit ke CloudWatch Log. Jika diaktifkan, CloudWatch harga standar
catatan
Untuk mengaktifkan log audit, peran pengguna Anda harus dipetakan ke security_manager
peran, yang memberi Anda akses ke OpenSearch plugins/_security
REST API. Untuk mempelajari selengkapnya, lihat Mengubah pengguna utama.
Topik
Batasan
Log audit memiliki batasan berikut ini:
-
Log audit tidak mencakup permintaan pencarian lintas-klaster yang ditolak oleh kebijakan akses domain tujuan.
-
Ukuran maksimum setiap pesan log audit adalah 10.000 karakter. Pesan audit log dipotong jika melebihi batas ini.
Mengaktifkan log audit
Mengaktifkan log audit adalah proses dua langkah. Pertama, Anda mengonfigurasi domain Anda untuk mempublikasikan log audit ke CloudWatch Log. Kemudian, Anda mengaktifkan log audit di OpenSearch Dasbor dan mengonfigurasinya untuk memenuhi kebutuhan Anda.
penting
Jika Anda mengalami kesalahan saat mengikuti langkah-langkah ini, lihat Tidak dapat mengaktifkan log audit untuk informasi pemecahan masalah.
Langkah 1: Aktifkan log audit dan konfigurasikan kebijakan akses
Langkah-langkah ini menjelaskan cara mengaktifkan log audit menggunakan konsol. Anda juga dapat mengaktifkannya menggunakan AWS CLI, atau API OpenSearch Layanan.
Untuk mengaktifkan log audit untuk domain OpenSearch Layanan (konsol)
-
Pilih domain untuk membuka konfigurasinya, lalu buka tab Log.
-
Pilih log Audit dan kemudian Aktifkan.
-
Buat grup CloudWatch log, atau pilih yang sudah ada.
-
Pilih kebijakan akses yang berisi izin yang sesuai, atau buat kebijakan menggunakan JSON yang disediakan oleh konsol:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "es.amazonaws.com" }, "Action": [ "logs:PutLogEvents", "logs:CreateLogStream" ], "Resource": "
cw_log_group_arn
" } ] }Kami menyarankan Anda menambahkan kunci
aws:SourceAccount
danaws:SourceArn
kondisi ke kebijakan untuk melindungi diri Anda dari masalah wakil yang membingungkan. Akun sumber adalah pemilik domain dan sumber ARN adalah ARN domain. Domain Anda harus berada di perangkat lunak layanan R20211203 atau yang lebih baru untuk menambahkan kunci kondisi ini.Misalnya, Anda dapat menambahkan blok kondisi berikut ke kebijakan:
"Condition": { "StringEquals": { "aws:SourceAccount": "
account-id
" }, "ArnLike": { "aws:SourceArn": "arn:aws:es:region
:account-id
:domain/domain-name
" } } -
Pilih Aktifkan.
Langkah 2: Aktifkan log audit di OpenSearch Dasbor
Setelah mengaktifkan log audit di konsol OpenSearch Layanan, Anda juga harus mengaktifkannya di OpenSearch Dasbor dan mengonfigurasinya agar sesuai dengan kebutuhan Anda.
-
Buka OpenSearch Dasbor dan pilih Keamanan dari menu sebelah kiri.
-
Pilih Log Audit.
-
Pilih Mengaktifkan pencatatan audit.
UI Dasbor menawarkan kontrol penuh atas pengaturan log audit di bawah pengaturan Umum dan pengaturan Kepatuhan. Untuk deskripsi semua opsi konfigurasi, lihat Pengaturan log audit.
Aktifkan pencatatan audit menggunakan AWS CLI
AWS CLI Perintah berikut memungkinkan log audit pada domain yang ada:
aws opensearch update-domain-config --domain-name
my-domain
--log-publishing-options "AUDIT_LOGS={CloudWatchLogsLogGroupArn=arn:aws:logs:us-east-1:123456789012:log-group:my-log-group
,Enabled=true}"
Anda juga dapat mengaktifkan log audit saat membuat domain. Untuk informasi rinci, lihat AWS CLI Referensi Perintah.
Aktifkan pencatatan audit menggunakan API konfigurasi
Permintaan berikut pada API konfigurasi mengaktifkan log audit pada domain yang sudah ada:
POST https://es.us-east-1.amazonaws.com/2021-01-01/opensearch/domain/
my-domain
/config { "LogPublishingOptions": { "AUDIT_LOGS": { "CloudWatchLogsLogGroupArn":"arn:aws:logs:us-east-1
:123456789012
:log-group1:sample-domain", "Enabled":true } } }
Untuk informasi selengkapnya, lihat referensi Amazon OpenSearch Service API.
Lapisan dan kategori log audit
Komunikasi klaster terjadi pada dua lapisan terpisah: lapisan REST dan lapisan transport.
-
Lapisan REST mencakup komunikasi dengan klien HTTP seperti curl, Logstash, OpenSearch Dashboards, klien REST tingkat tinggi Java, perpustakaan Permintaan Python — semua permintaan
HTTP yang tiba di cluster. -
Lapisan transportasi mencakup komunikasi antara simpul. Misalnya, setelah permintaan pencarian tiba di klaster (atas lapisan REST), simpul koordinasi melayani permintaan mengirimkan kueri ke simpul lain, menerima tanggapan mereka, mengumpulkan dokumen yang diperlukan, dan menyusun mereka ke respon akhir. Operasi seperti alokasi serpihan dan menyeimbangkan ulang juga terjadi di atas lapisan transportasi.
Anda dapat mengaktifkan atau menonaktifkan log audit untuk seluruh lapisan, serta kategori audit individual untuk layer. Tabel berikut berisi ringkasan kategori audit dan lapisan yang tersedia.
Kategori | Deskripsi | Tersedia untuk REST | Tersedia untuk transportasi |
---|---|---|---|
FAILED_LOGIN |
Permintaan berisi kredensial yang tidak valid, dan autentikasi gagal. | Ya | Ya |
MISSING_PRIVILEGES |
Pengguna tidak memiliki hak untuk membuat permintaan. | Ya | Ya |
GRANTED_PRIVILEGES |
Seorang pengguna memiliki hak untuk membuat permintaan. | Ya | Ya |
OPENSEARCH_SECURITY_INDEX_ATTEMPT |
Permintaan mencoba untuk mengubah indeks .opendistro_security . |
Tidak | Ya |
DIAUTENTIKASI |
Permintaan berisi kredensial yang valid, dan autentikasi berhasil. | Ya | Ya |
INDEX_EVENT |
Permintaan melakukan operasi administratif pada indeks, seperti membuat satu alias, mengatur alias, atau melakukan gabungan kekuatan. Daftar lengkap indices:admin/ tindakan yang termasuk dalam kategori ini tersedia dalam OpenSearch dokumentasi |
Tidak | Ya |
Selain kategori standar ini, kontrol akses detail menawarkan beberapa kategori tambahan yang dirancang untuk memenuhi persyaratan kepatuhan data.
Kategori | Deskripsi |
---|---|
COMPLIANCE_DOC_READ |
Permintaan melakukan peristiwa baca pada dokumen dalam indeks. |
COMPLIANCE_DOC_WRITE |
Permintaan melakukan peristiwa tulis pada dokumen dalam indeks. |
COMPLIANCE_INTERNAL_CONFIG_READ |
Permintaan melakukan acara baca di indeks |
COMPLIANCE_INTERNAL_CONFIG_WRITE |
Permintaan melakukan acara tulis di indeks |
Anda dapat memiliki kombinasi kategori dan atribut pesan mana pun. Misalnya, jika Anda mengirim permintaan REST untuk mengindeks dokumen, Anda mungkin melihat baris berikut dalam log audit:
-
AUTHENTICATED pada layer REST (autentikasi)
-
GRANTED_PRIVILEGE pada lapisan transport (otorisasi)
-
COMPLIANCE_DOC_WRITE (dokumen ditulis ke indeks)
Pengaturan log audit
Log audit memiliki banyak pilihan konfigurasi.
Pengaturan umum
Pengaturan umum memungkinkan Anda mengaktifkan atau menonaktifkan masing-masing kategori atau seluruh lapisan. Kami sangat menyarankan agar meninggalkan GRANTED_PRIVILEGES dan AUTHENTICATED sebagai kategori yang dikecualikan. Jika tidak, kategori ini dicatat untuk setiap permintaan yang valid untuk klaster.
Nama | Pengaturan backend | Deskripsi |
---|---|---|
Lapisan REST |
enable_rest |
Mengaktifkan atau menonaktifkan peristiwa yang terjadi pada lapisan REST. |
Kategori REST dinonaktifkan |
disabled_rest_categories |
Tentukan kategori audit untuk diabaikan pada lapisan REST. Memodifikasi kategori ini dapat meningkatkan ukuran log audit secara dramatis. |
Lapisan transport |
enable_transport |
Mengaktifkan atau menonaktifkan peristiwa yang terjadi pada lapisan transport. |
Kategori transport dinonaktifkan |
disabled_transport_categories |
Tentukan kategori audit yang harus diabaikan pada lapisan transport. Memodifikasi kategori ini dapat meningkatkan ukuran log audit secara dramatis. |
Pengaturan atribut memungkinkan Anda menyesuaikan jumlah detail di setiap baris log.
Nama | Pengaturan backend | Deskripsi |
---|---|---|
Permintaan massal |
resolve_bulk_requests |
Mengaktifkan pengaturan ini menghasilkan log untuk setiap dokumen dalam permintaan massal, yang secara dramatis dapat meningkatkan ukuran log audit. |
Isi permintaan |
log_request_body |
Sertakan badan permintaan pada permintaan. |
Selesaikan indeks |
resolve_indices |
Menyelesaikan alias untuk indeks. |
Gunakan pengaturan abaikan untuk mengecualikan satu set pengguna atau jalur API:
Nama | Pengaturan backend | Deskripsi |
---|---|---|
Pengguna yang diabaikan |
ignore_users |
Tentukan pengguna yang ingin Anda kecualikan. |
Permintaan yang diabaikan |
ignore_requests |
Tentukan pola permintaan yang ingin Anda kecualikan. |
Pengaturan kepatuhan
Setelan kepatuhan memungkinkan Anda menyetel indeks, dokumen, atau akses tingkat bidang.
Nama | Pengaturan backend | Deskripsi |
---|---|---|
Pencatatan kepatuhan |
enable_compliance |
Mengaktifkan atau menonaktifkan kepatuhan log. |
Anda dapat menentukan pengaturan berikut untuk membaca dan menulis event logging.
Nama | Pengaturan backend | Deskripsi |
---|---|---|
Pencatatan konfigurasi internal |
internal_config |
Aktifkan atau nonaktifkan pencatatan peristiwa pada |
Anda dapat menentukan pengaturan berikut untuk peristiwa baca.
Nama | Pengaturan backend | Deskripsi |
---|---|---|
Metadata baca |
read_metadata_only |
Sertakan hanya metadata untuk peristiwa baca. Jangan sertakan bidang dokumen apa pun. |
Pengguna yang diabaikan |
read_ignore_users |
Jangan sertakan pengguna tertentu untuk peristiwa baca. |
Kolom yang ditonton |
read_watched_fields |
Tentukan indeks dan bidang untuk menonton peristiwa baca. Menambahkan bidang yang ditonton menghasilkan satu log per akses dokumen, yang dapat meningkatkan ukuran log audit secara dramatis. Bidang yang ditonton mendukung pola indeks dan pola bidang:
|
Anda dapat menentukan pengaturan berikut untuk peristiwa tulis.
Nama | Pengaturan backend | Deskripsi |
---|---|---|
Metadata tulis |
write_metadata_only |
Sertakan hanya metadata untuk peristiwa tulis. Jangan sertakan bidang dokumen apa pun. |
Diffs log |
write_log_diffs |
Jika write_metadata_only adalah salah, hanya mencakup perbedaan antara peristiwa tulis. |
Pengguna yang diabaikan |
write_ignore_users |
Jangan sertakan pengguna tertentu untuk peristiwa tulis. |
Tonton indeks |
write_watched_indices |
Tentukan indeks atau pola indeks untuk ditonton untuk peristiwa tulis. Menambahkan bidang yang ditonton menghasilkan satu log per akses dokumen, yang dapat meningkatkan ukuran log audit secara dramatis. |
Contoh log Audit
Bagian ini mencakup contoh konfigurasi, permintaan pencarian, dan log audit yang dihasilkan untuk semua peristiwa baca dan tulis dari sebuah indeks.
Langkah 1: Mengonfigurasi log audit
Setelah mengaktifkan penerbitan log audit ke grup CloudWatch Log, navigasikan ke halaman logging audit OpenSearch Dasbor dan pilih Aktifkan pencatatan audit.
-
Di Pengaturan umum, pilih Konfigurasi dan pastikan bahwa Lapisan REST diaktifkan.
-
Masuk Pengaturan Kepatuhan, pilih Konfigurasi.
-
Pada bagian Tulis, di Bidang yang Ditonton, tambahkan
accounts
untuk semua peristiwa tulis ke indeks ini. -
Pada bagian Baca, di Bidang yang Ditonton, tambahkan bidang
ssn
danid-
pada indeksaccounts
:{ "accounts-": [ "ssn", "id-" ] }
Langkah 2: Lakukan peristiwa baca dan tulis
-
Arahkan ke OpenSearch Dasbor, pilih Alat Pengembang, dan indeks dokumen sampel:
PUT accounts/_doc/0 { "ssn": "123", "id-": "456" }
-
Untuk menguji peristiwa baca, kirim permintaan berikut:
GET accounts/_search { "query": { "match_all": {} } }
Langkah 3: Perhatikan log
-
Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/
. -
Di panel navigasi, pilih Grup log.
-
Pilih grup log yang Anda tentukan saat mengaktifkan log audit. Dalam grup log, OpenSearch Layanan membuat aliran log untuk setiap node di domain Anda.
-
Di Log aliran, pilih Cari semua.
-
Untuk peristiwa baca dan tulis, lihat log terkait. Anda dapat mengharapkan penundaan 5 detik sebelum log muncul.
Contoh menulis log audit
{ "audit_compliance_operation": "CREATE", "audit_cluster_name": "824471164578:audit-test", "audit_node_name": "be217225a0b77c2bd76147d3ed3ff83c", "audit_category": "COMPLIANCE_DOC_WRITE", "audit_request_origin": "REST", "audit_compliance_doc_version": 1, "audit_node_id": "3xNJhm4XS_yTzEgDWcGRjA", "@timestamp": "2020-08-23T05:28:02.285+00:00", "audit_format_version": 4, "audit_request_remote_address": "3.236.145.227", "audit_trace_doc_id": "lxnJGXQBqZSlDB91r_uZ", "audit_request_effective_user": "admin", "audit_trace_shard_id": 8, "audit_trace_indices": [ "accounts" ], "audit_trace_resolved_indices": [ "accounts" ] }
Contoh membaca log audit
{ "audit_cluster_name": "824471164578:audit-docs", "audit_node_name": "806f6050cb45437e2401b07534a1452f", "audit_category": "COMPLIANCE_DOC_READ", "audit_request_origin": "REST", "audit_node_id": "saSevm9ASte0-pjAtYi2UA", "@timestamp": "2020-08-31T17:57:05.015+00:00", "audit_format_version": 4, "audit_request_remote_address": "54.240.197.228", "audit_trace_doc_id": "config:7.7.0", "audit_request_effective_user": "admin", "audit_trace_shard_id": 0, "audit_trace_indices": [ "accounts" ], "audit_trace_resolved_indices": [ "accounts" ] }
Untuk menyertakan badan permintaan, kembali ke pengaturan Kepatuhan di OpenSearch Dasbor dan nonaktifkan metadata Tulis. Untuk mengecualikan peristiwa oleh pengguna tertentu, tambahkan pengguna ke Pengguna yang diabaikan.
Untuk deskripsi setiap bidang log audit, lihat Referensi bidang log audit
Mengonfigurasi log audit menggunakan API REST
Sebaiknya gunakan OpenSearch Dasbor untuk mengonfigurasi log audit, tetapi Anda juga dapat menggunakan REST API kontrol akses berbutir halus. Bagian ini berisi contoh permintaan. Dokumentasi lengkap tentang REST API tersedia dalam OpenSearchdokumentasi
PUT _opendistro/_security/api/audit/config { "enabled": true, "audit": { "enable_rest": true, "disabled_rest_categories": [ "GRANTED_PRIVILEGES", "AUTHENTICATED" ], "enable_transport": true, "disabled_transport_categories": [ "GRANTED_PRIVILEGES", "AUTHENTICATED" ], "resolve_bulk_requests": true, "log_request_body": true, "resolve_indices": true, "exclude_sensitive_headers": true, "ignore_users": [ "kibanaserver" ], "ignore_requests": [ "SearchRequest", "indices:data/read/*", "/_cluster/health" ] }, "compliance": { "enabled": true, "internal_config": true, "external_config": false, "read_metadata_only": true, "read_watched_fields": { "read-index-1": [ "field-1", "field-2" ], "read-index-2": [ "field-3" ] }, "read_ignore_users": [ "read-ignore-1" ], "write_metadata_only": true, "write_log_diffs": false, "write_watched_indices": [ "write-index-1", "write-index-2", "log-*", "*" ], "write_ignore_users": [ "write-ignore-1" ] } }