Pencatatan audit basis data - Amazon Redshift

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

Pencatatan audit basis data

Amazon Redshift mencatat informasi tentang koneksi dan aktivitas pengguna di database Anda. Log ini membantu Anda memantau database untuk tujuan keamanan dan pemecahan masalah, proses yang disebut audit database. Log dapat disimpan di:

  • Bucket Amazon S3 - Ini menyediakan akses dengan fitur keamanan data untuk pengguna yang bertanggung jawab untuk memantau aktivitas dalam database.

  • Amazon CloudWatch - Anda dapat melihat data pencatatan audit menggunakan fitur bawaan CloudWatch, seperti fitur visualisasi dan tindakan pengaturan.

catatan

SYS_CONNECTION_LOG mengumpulkan data log koneksi untuk Amazon Redshift Tanpa Server. Perhatikan bahwa saat Anda mengumpulkan data pencatatan audit untuk Amazon Redshift Tanpa Server, data tersebut tidak dapat dikirim ke file log, hanya ke file log. CloudWatch

Log Amazon Redshift

Amazon Redshift mencatat informasi dalam file log berikut:

  • Log koneksi - Upaya otentikasi log, koneksi, dan pemutusan.

  • Log pengguna — Log informasi tentang perubahan definisi pengguna database.

  • Log aktivitas pengguna — Log setiap kueri sebelum dijalankan pada database.

Koneksi dan log pengguna berguna terutama untuk tujuan keamanan. Anda dapat menggunakan log koneksi untuk memantau informasi tentang pengguna yang terhubung ke database dan informasi koneksi terkait. Informasi ini mungkin alamat IP mereka, ketika mereka membuat permintaan, jenis otentikasi apa yang mereka gunakan, dan sebagainya. Anda dapat menggunakan log pengguna untuk memantau perubahan definisi pengguna database.

Log aktivitas pengguna berguna terutama untuk tujuan pemecahan masalah. Ini melacak informasi tentang jenis kueri yang dilakukan pengguna dan sistem dalam database.

Log koneksi dan log pengguna keduanya sesuai dengan informasi yang disimpan dalam tabel sistem di database Anda. Anda dapat menggunakan tabel sistem untuk mendapatkan informasi yang sama, tetapi file log menyediakan mekanisme yang lebih sederhana untuk pengambilan dan peninjauan. File log mengandalkan izin Amazon S3 daripada izin database untuk melakukan kueri terhadap tabel. Selain itu, dengan melihat informasi dalam file log daripada menanyakan tabel sistem, Anda mengurangi dampak berinteraksi dengan database.

catatan

File log tidak terkini seperti tabel log sistem yang STL_USERLOG dan STL_CONNECTION_LOG. Catatan yang lebih tua dari, tetapi tidak termasuk, catatan terbaru disalin ke file log.

catatan

Untuk Amazon Redshift Tanpa Server, SYS_CONNECTION_LOG mengumpulkan data log koneksi. Saat Anda mengumpulkan data pencatatan audit untuk Amazon Redshift Tanpa Server, data tersebut tidak dapat dikirim ke file log, hanya ke file log. CloudWatch

Log koneksi

Log upaya otentikasi, dan koneksi dan pemutusan. Tabel berikut menjelaskan informasi dalam log koneksi. Untuk informasi selengkapnya tentang bidang ini, lihat STL_CONNECTION_LOG di Panduan Pengembang Database Amazon Redshift. Untuk informasi selengkapnya tentang data log koneksi yang dikumpulkan untuk Amazon Redshift Serverless, lihat SYS_CONNECTION_LOG.

Nama kolom Deskripsi
kejadian Koneksi atau acara otentikasi.
rekor waktu Waktu peristiwa itu terjadi.
remotehost Nama atau alamat IP host jarak jauh.
remote port Nomor port untuk host jarak jauh.
pid ID proses yang terkait dengan pernyataan.
dbname Nama basis data.
nama pengguna Nama pengguna.
authmethod Metode otentikasi.
durasi Durasi koneksi dalam mikrodetik.
sslversion Versi Secure Sockets Layer (SSL).
sslcipher Sandi SSL.
mtu Unit transmisi maksimum (MTU).
sslkompresi Jenis kompresi SSL.
sslexpansion Jenis ekspansi SSL.
iamauthguid ID otentikasi AWS Identity and Access Management (IAM) untuk permintaan tersebut. AWS CloudTrail Ini adalah pengenal untuk panggilan GetClusterCredentialsAPI untuk membuat kredensil yang digunakan untuk koneksi tertentu.
application_name Nama awal atau yang diperbarui dari aplikasi untuk sesi.
os_versi Versi sistem operasi yang ada di mesin klien yang terhubung ke cluster Amazon Redshift Anda.
driver_version Versi driver ODBC atau JDBC yang terhubung ke cluster Amazon Redshift Anda dari alat klien SQL pihak ketiga Anda.
plugin_name Nama plugin yang digunakan untuk terhubung ke cluster Amazon Redshift Anda.
protocol_version Versi protokol internal yang digunakan driver Amazon Redshift saat membuat koneksi dengan server.
sessionid Pengidentifikasi unik global untuk sesi saat ini.
Kompresi Algoritma kompresi yang digunakan untuk koneksi.

Log pengguna

Merekam detail untuk perubahan berikut pada pengguna database:

  • Buat pengguna

  • Jatuhkan pengguna

  • Ubah pengguna (ganti nama)

  • Mengubah pengguna (mengubah properti)

Nama kolom Deskripsi
userid ID pengguna yang terpengaruh oleh perubahan.
nama pengguna Nama pengguna pengguna yang terpengaruh oleh perubahan.
nama pengguna lama Untuk tindakan ganti nama, nama pengguna asli. Untuk tindakan lain, bidang ini kosong.
tindakan Tindakan yang terjadi. Nilai yang valid:
  • Mengubah

  • Buat

  • Jatuhkan

  • Ubah Nama

digunakancreatedb Jika benar (1), menunjukkan bahwa pengguna telah membuat izin database.
menggunakansuper Jika benar (1), menunjukkan bahwa pengguna adalah superuser.
menggunakancatupd Jika benar (1), menunjukkan bahwa pengguna dapat memperbarui katalog sistem.
valuntil Tanggal kedaluwarsa kata sandi.
pid ID Proses.
xid ID Transaksi.
rekor waktu Waktu di UTC kueri dimulai.

Kueri tampilan sistem SYS_USERLOG untuk menemukan informasi tambahan tentang perubahan pada pengguna. Tampilan ini mencakup data log dari Amazon Redshift Tanpa Server.

Log aktivitas pengguna

Log setiap query sebelum dijalankan pada database.

Nama kolom Deskripsi
rekor waktu Waktu peristiwa itu terjadi.
db Nama basis data.
pengguna Nama pengguna.
pid ID proses yang terkait dengan pernyataan.
userid ID pengguna.
xid ID Transaksi.
query Awalan LOG: diikuti oleh teks kueri, termasuk baris baru.

Mengaktifkan pencatatan log

Pencatatan audit tidak diaktifkan secara default di Amazon Redshift. Saat Anda mengaktifkan logging di klaster, Amazon Redshift mengekspor log ke Amazon CloudWatch, atau membuat dan mengunggah log ke Amazon S3, yang menangkap data dari saat pencatatan audit diaktifkan hingga saat ini. Setiap pembaruan logging merupakan kelanjutan dari log sebelumnya.

Audit logging ke CloudWatch atau ke Amazon S3 adalah proses opsional. Logging ke tabel sistem tidak opsional dan terjadi secara otomatis. Untuk informasi selengkapnya tentang pencatatan ke tabel sistem, lihat Referensi Tabel Sistem di Panduan Pengembang Database Amazon Redshift.

Log koneksi, log pengguna, dan log aktivitas pengguna diaktifkan bersama-sama dengan menggunakan Referensi API Amazon Redshift, atau AWS Command Line Interface ()AWS CLI. AWS Management Console Untuk log aktivitas pengguna, Anda juga harus mengaktifkan parameter enable_user_activity_logging database. Jika Anda hanya mengaktifkan fitur audit logging, tetapi bukan parameter terkait, audit database mencatat informasi log hanya untuk log koneksi dan log pengguna, tetapi tidak untuk log aktivitas pengguna. enable_user_activity_loggingParameter tidak diaktifkan (false) secara default. Anda dapat mengaturnya true untuk mengaktifkan log aktivitas pengguna. Untuk informasi selengkapnya, lihat Grup parameter Amazon Redshift.

Mengirim log audit ke Amazon CloudWatch

Saat Anda mengaktifkan login ke CloudWatch, Amazon Redshift mengekspor data log koneksi klaster, pengguna, dan aktivitas pengguna ke grup log Amazon Logs. CloudWatch Data log tidak berubah, dalam hal skema. CloudWatch dibangun untuk memantau aplikasi, dan Anda dapat menggunakannya untuk melakukan analisis real-time atau mengaturnya untuk mengambil tindakan. Anda juga dapat menggunakan Amazon CloudWatch Logs untuk menyimpan catatan log Anda dalam penyimpanan yang tahan lama.

Menggunakan CloudWatch untuk melihat log adalah alternatif yang disarankan untuk menyimpan file log di Amazon S3. Ini tidak memerlukan banyak konfigurasi, dan mungkin sesuai dengan persyaratan pemantauan Anda, terutama jika Anda sudah menggunakannya untuk memantau layanan dan aplikasi lain.

Grup log dan peristiwa log di Amazon CloudWatch

Setelah memilih log Amazon Redshift mana yang akan diekspor, Anda dapat memantau peristiwa log di Amazon CloudWatch Logs. Grup log baru secara otomatis dibuat untuk Amazon Redshift Tanpa Server, di bawah awalan berikut, yang log_type mewakili jenis log.

/aws/redshift/cluster/<cluster_name>/<log_type>

Misalnya, jika Anda memilih untuk mengekspor log koneksi, data log disimpan dalam grup log berikut.

/aws/redshift/cluster/cluster1/connectionlog

Peristiwa log diekspor ke grup log menggunakan aliran log. Untuk mencari informasi dalam peristiwa log untuk titik akhir tanpa server Anda, gunakan konsol Amazon CloudWatch Logs, API, atau Amazon CloudWatch Logs. AWS CLI Untuk informasi tentang mencari dan memfilter data log, lihat Membuat metrik dari peristiwa log menggunakan filter.

Di CloudWatch, Anda dapat mencari data log Anda dengan sintaks kueri yang menyediakan perincian dan fleksibilitas. Untuk informasi selengkapnya, lihat sintaks kueri Wawasan CloudWatch Log.

Migrasi ke pencatatan CloudWatch audit Amazon

Dalam kasus apa pun di mana Anda mengirim log ke Amazon S3 dan Anda mengubah konfigurasi, misalnya untuk mengirim log ke CloudWatch, log yang tetap di Amazon S3 tidak terpengaruh. Anda masih dapat menanyakan data log di ember Amazon S3 di mana ia berada.

Mengelola file log di Amazon S3

Jumlah dan ukuran file log Amazon Redshift di Amazon S3 sangat bergantung pada aktivitas di cluster Anda. Jika Anda memiliki cluster aktif yang menghasilkan sejumlah besar log, Amazon Redshift mungkin menghasilkan file log lebih sering. Anda mungkin memiliki serangkaian file log untuk jenis aktivitas yang sama, seperti memiliki beberapa log koneksi dalam jam yang sama.

Saat Amazon Redshift menggunakan Amazon S3 untuk menyimpan log, Anda dikenakan biaya untuk penyimpanan yang Anda gunakan di Amazon S3. Sebelum Anda mengonfigurasi logging ke Amazon S3, rencanakan berapa lama Anda perlu menyimpan file log. Sebagai bagian dari ini, tentukan kapan file log dapat dihapus atau diarsipkan, berdasarkan kebutuhan audit Anda. Paket yang Anda buat sangat bergantung pada jenis data yang Anda simpan, seperti data yang tunduk pada kepatuhan atau persyaratan peraturan. Untuk informasi selengkapnya tentang harga Amazon S3, buka Harga Amazon Simple Storage Service (S3).

Batasan saat Anda mengaktifkan logging ke Amazon S3

Audit logging memiliki kendala sebagai berikut:

  • Anda hanya dapat menggunakan enkripsi kunci terkelola Amazon S3 (SSE-S3) (AES-256).

  • Bucket Amazon S3 harus mematikan fitur Kunci Objek S3.

Izin bucket untuk pencatatan audit Amazon Redshift

Saat Anda mengaktifkan logging ke Amazon S3, Amazon Redshift mengumpulkan informasi pencatatan dan mengunggahnya ke file log yang disimpan di Amazon S3. Anda dapat menggunakan ember yang sudah ada atau ember baru. Amazon Redshift memerlukan izin IAM berikut ke bucket:

  • s3:GetBucketAclLayanan ini memerlukan izin baca ke bucket Amazon S3 sehingga dapat mengidentifikasi pemilik bucket.

  • s3:PutObjectLayanan ini memerlukan izin objek put untuk mengunggah log. Selain itu, peran pengguna atau IAM yang mengaktifkan logging harus memiliki s3:PutObject izin ke bucket Amazon S3. Setiap kali log diunggah, layanan menentukan apakah pemilik bucket saat ini cocok dengan pemilik bucket pada saat logging diaktifkan. Jika pemilik ini tidak cocok, Anda menerima kesalahan.

Jika, saat mengaktifkan pencatatan audit, Anda memilih opsi untuk membuat bucket baru, izin yang benar akan diterapkan padanya. Namun, jika Anda membuat bucket sendiri di Amazon S3, atau menggunakan bucket yang sudah ada, pastikan untuk menambahkan kebijakan bucket yang menyertakan nama bucket. Log dikirimkan menggunakan kredensi prinsipal layanan. Untuk sebagian besar Wilayah AWS, Anda menambahkan nama utama layanan Redshift, redshift.amazonaws.com.

Kebijakan bucket menggunakan format berikut. ServiceNamedan BucketNamemerupakan placeholder untuk nilai-nilai Anda sendiri. Tentukan juga tindakan dan sumber daya terkait dalam kebijakan bucket.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "Put bucket policy needed for audit logging", "Effect": "Allow", "Principal": { "Service": "ServiceName" }, "Action": [ "s3:PutObject", "s3:GetBucketAcl" ], "Resource": [ "arn:aws:s3:::BucketName", "arn:aws:s3:::BucketName/*" ] } ] }

Contoh berikut adalah kebijakan ember untuk Wilayah AS Timur (Virginia N.) dan ember bernamaAuditLogs.

{ "Version": "2008-10-17", "Statement": [ { "Sid": "Put bucket policy needed for audit logging", "Effect": "Allow", "Principal": { "Service": "redshift.amazonaws.com" }, "Action": [ "s3:PutObject", "s3:GetBucketAcl" ], "Resource": [ "arn:aws:s3:::AuditLogs", "arn:aws:s3:::AuditLogs/*" ] } ] }

Wilayah yang tidak diaktifkan secara default, juga dikenal sebagai Wilayah “keikutsertaan”, memerlukan nama utama layanan khusus Wilayah. Untuk ini, nama prinsipal layanan mencakup wilayah, dalam format. redshift.region.amazonaws.com Misalnya, redshift.ap-east-1.amazonaws.com untuk Wilayah Asia Pasifik (Hong Kong). Untuk daftar Wilayah yang tidak diaktifkan secara default, lihat Mengelola Wilayah AWS di Referensi Umum AWS.

catatan

Nama utama layanan khusus Wilayah sesuai dengan Wilayah tempat cluster berada.

Praktik terbaik untuk file log

Saat Redshift mengunggah file log ke Amazon S3, file besar dapat diunggah menjadi beberapa bagian. Jika unggahan multibagian tidak berhasil, sebagian file dapat tetap berada di bucket Amazon S3. Hal ini dapat mengakibatkan biaya penyimpanan tambahan, jadi penting untuk memahami apa yang terjadi ketika unggahan multipart gagal. Untuk penjelasan rinci tentang unggahan multibagian untuk log audit, lihat Mengunggah dan menyalin objek menggunakan unggahan multibagian dan membatalkan unggahan multibagian.

Untuk informasi selengkapnya tentang membuat bucket S3 dan menambahkan kebijakan bucket, lihat Membuat Bucket dan Mengedit Izin Bucket di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

Struktur bucket untuk pencatatan audit Amazon Redshift

Secara default, Amazon Redshift mengatur file log di bucket Amazon S3 dengan menggunakan bucket dan struktur objek berikut:

AWSLogs/AccountID/ServiceName/Region/Year/Month/Day/AccountID_ServiceName_Region_ClusterName_LogType_Timestamp.gz

Contohnya adalah: AWSLogs/123456789012/redshift/us-east-1/2013/10/29/123456789012_redshift_us-east-1_mycluster_userlog_2013-10-29T18:01.gz

Jika Anda memberikan awalan kunci Amazon S3, letakkan awalan di awal kunci.

Misalnya, jika Anda menentukan awalan myprefix: myprefix/AWSLogs/123456789012/redshift/us-east-1/2013/10/29/123456789012_redshift_us-east-1_mycluster_userlog_2013-10-29T18:01.gz

Awalan key Amazon S3 tidak dapat melebihi 512 karakter. Itu tidak dapat berisi spasi (), tanda kutip ganda (“), tanda kutip tunggal ('), garis miring terbalik (\). Ada juga sejumlah karakter khusus dan karakter kontrol yang tidak diizinkan. Kode heksadesimal untuk karakter ini adalah sebagai berikut:

  • x00 ke x20

  • x22

  • x27

  • x5c

  • x7f atau lebih besar

Memecahkan masalah pencatatan audit Amazon Redshift di Amazon S3

Pencatatan audit Amazon Redshift dapat terganggu karena alasan berikut:

  • Amazon Redshift tidak memiliki izin untuk mengunggah log ke bucket Amazon S3. Verifikasi bahwa bucket dikonfigurasi dengan kebijakan IAM yang benar. Untuk informasi selengkapnya, lihat Izin bucket untuk pencatatan audit Amazon Redshift.

  • Pemilik ember berubah. Saat Amazon Redshift mengunggah log, Amazon Redshift memverifikasi bahwa pemilik bucket sama seperti saat logging diaktifkan. Jika pemilik bucket telah berubah, Amazon Redshift tidak dapat mengunggah log hingga Anda mengonfigurasi bucket lain yang akan digunakan untuk pencatatan audit.

  • Ember tidak dapat ditemukan. Jika bucket dihapus di Amazon S3, Amazon Redshift tidak dapat mengunggah log. Anda harus membuat ulang bucket atau mengonfigurasi Amazon Redshift untuk mengunggah log ke bucket lain.

Mencatat panggilan Amazon Redshift API dengan AWS CloudTrail

Amazon Redshift terintegrasi dengan AWS CloudTrail, layanan yang menyediakan catatan tindakan yang diambil oleh pengguna, peran, atau AWS layanan di Amazon Redshift. CloudTrail menangkap semua panggilan API untuk Amazon Redshift sebagai peristiwa. Untuk informasi selengkapnya tentang integrasi Amazon Redshift dengan AWS CloudTrail, lihat Logging with. CloudTrail

Anda dapat menggunakan CloudTrail secara independen dari atau selain pencatatan audit database Amazon Redshift.

Untuk mempelajari selengkapnya CloudTrail, lihat Panduan AWS CloudTrail Pengguna.