Memantau log audit di Amazon OpenSearch Service - OpenSearch Layanan Amazon

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 berlaku.

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.

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)
  1. Pilih domain untuk membuka konfigurasinya, lalu buka tab Log.

  2. Pilih log Audit dan kemudian Aktifkan.

  3. Buat grup CloudWatch log, atau pilih yang sudah ada.

  4. 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 dan aws: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" } }
  5. 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.

  1. Buka OpenSearch Dasbor dan pilih Keamanan dari menu sebelah kiri.

  2. Pilih Log Audit.

  3. 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 .opendistro_security.

COMPLIANCE_INTERNAL_CONFIG_WRITE

Permintaan melakukan acara tulis di indeks .opendistro_security.

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 .opendistro_security indeks.

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:

{ "index-name-pattern": [ "field-name-pattern" ], "logs*": [ "message" ], "twitter": [ "id", "user*" ] }

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.

  1. Di Pengaturan umum, pilih Konfigurasi dan pastikan bahwa Lapisan REST diaktifkan.

  2. Masuk Pengaturan Kepatuhan, pilih Konfigurasi.

  3. Pada bagian Tulis, di Bidang yang Ditonton, tambahkan accounts untuk semua peristiwa tulis ke indeks ini.

  4. Pada bagian Baca, di Bidang yang Ditonton, tambahkan bidang ssn dan id- pada indeks accounts:

    { "accounts-": [ "ssn", "id-" ] }

Langkah 2: Lakukan peristiwa baca dan tulis

  1. Arahkan ke OpenSearch Dasbor, pilih Alat Pengembang, dan indeks dokumen sampel:

    PUT accounts/_doc/0 { "ssn": "123", "id-": "456" }
  2. Untuk menguji peristiwa baca, kirim permintaan berikut:

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

Langkah 3: Perhatikan log

  1. Buka CloudWatch konsol di https://console.aws.amazon.com/cloudwatch/.

  2. Di panel navigasi, pilih Grup log.

  3. Pilih grup log yang Anda tentukan saat mengaktifkan log audit. Dalam grup log, OpenSearch Layanan membuat aliran log untuk setiap node di domain Anda.

  4. Di Log aliran, pilih Cari semua.

  5. 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. Untuk informasi tentang penelusuran dan analisis data log audit Anda, lihat Menganalisis Data CloudWatch Log dengan Wawasan Log di Panduan Pengguna CloudWatch Log Amazon.

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" ] } }