Bucket Layanan Penyimpanan Sederhana Amazon - AWS WAF, AWS Firewall Manager, dan AWS Shield Advanced

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

Bucket Layanan Penyimpanan Sederhana Amazon

Topik ini memberikan informasi untuk mengirim log ACL lalu lintas web Anda ke bucket Amazon S3.

catatan

Anda dikenakan biaya untuk logging selain biaya untuk menggunakan AWS WAF. Untuk informasi, lihat Harga untuk mencatat informasi lalu lintas ACL web.

Untuk mengirim log ACL lalu lintas web Anda ke Amazon S3, Anda menyiapkan bucket Amazon S3 dari akun yang sama seperti yang Anda gunakan untuk mengelola ACL web, dan Anda memberi nama bucket dimulai. aws-waf-logs- Saat mengaktifkan login AWS WAF, Anda memberikan nama bucket. Untuk informasi tentang membuat bucket logging, lihat Membuat Bucket di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

Anda dapat mengakses dan menganalisis log Amazon S3 Anda menggunakan layanan kueri interaktif Amazon Athena. Athena memudahkan untuk menganalisis data secara langsung di Amazon S3 menggunakan standar. SQL Dengan beberapa tindakan di dalamnya AWS Management Console, Anda dapat mengarahkan Athena ke data yang disimpan di Amazon S3 dan dengan cepat mulai menggunakan SQL standar untuk menjalankan kueri ad-hoc dan mendapatkan hasil. Untuk informasi selengkapnya, lihat Menanyakan AWS WAF log di panduan pengguna Amazon Athena. Untuk contoh tambahan kueri Amazon Athena, lihat waf-log-sample-athenaaws-samples/ -queries di situs web. GitHub

catatan

AWS WAF mendukung enkripsi dengan bucket Amazon S3 untuk kunci jenis kunci Amazon S3 (SSE-S3) dan untuk (-). AWS Key Management Service SSE KMS AWS KMS keys AWS WAF tidak mendukung enkripsi untuk AWS Key Management Service kunci yang dikelola oleh AWS.

Web Anda ACLs mempublikasikan file log mereka ke bucket Amazon S3 dengan interval 5 menit. Setiap file log berisi catatan log untuk lalu lintas yang direkam dalam 5 menit sebelumnya.

Ukuran file maksimum untuk berkas log adalah 75 MB. Jika file log mencapai batas ukuran file dalam periode 5 menit, log berhenti menambahkan catatan ke dalamnya, menerbitkannya ke bucket Amazon S3, dan kemudian membuat file log baru.

Berkas log dikompresi. Jika Anda membuka file menggunakan konsol Amazon S3, Amazon S3 mendekompresi catatan log dan menampilkannya. Jika Anda mengunduh file log, Anda harus mendekompresnya untuk melihat catatan.

Sebuah file log tunggal berisi entri yang disisipkan dengan beberapa catatan. Untuk melihat semua file log untuk webACL, cari entri yang digabungkan berdasarkan ACL nama web, Wilayah, dan ID akun Anda.

Persyaratan penamaan dan sintaks

Nama bucket Anda untuk AWS WAF logging harus dimulai dengan aws-waf-logs- dan dapat diakhiri dengan akhiran apa pun yang Anda inginkan. Misalnya, aws-waf-logs-DOC-EXAMPLE-BUCKET-SUFFIX.

Lokasi ember

Lokasi bucket menggunakan sintaks berikut:

s3://aws-waf-logs-DOC-EXAMPLE-BUCKET-SUFFIX/
Ember ARN

Format bucket Amazon Resource Name (ARN) adalah sebagai berikut:

arn:aws:s3:::aws-waf-logs-DOC-EXAMPLE-BUCKET-SUFFIX
Lokasi bucket dengan awalan

Jika Anda menggunakan awalan dalam nama kunci objek untuk mengatur data yang disimpan di bucket, Anda dapat memberikan awalan dalam nama bucket logging Anda.

catatan

Opsi ini tidak tersedia melalui konsol. Gunakan AWS WAF APIs,CLI, atau AWS CloudFormation.

Untuk informasi tentang menggunakan awalan di Amazon S3, lihat Mengatur objek menggunakan awalan di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.

Lokasi bucket dengan awalan menggunakan sintaks berikut:

s3://aws-waf-logs-DOC-EXAMPLE-BUCKET-SUFFIX/DOC-EXAMPLE-KEY-NAME-PREFIX/
Folder bucket dan nama file

Di dalam bucket Anda, dan mengikuti awalan apa pun yang Anda berikan, AWS WAF log Anda ditulis di bawah struktur folder yang ditentukan oleh ID akun Anda, Wilayah, ACL nama web, dan tanggal dan waktu.

AWSLogs/account-id/WAFLogs/Region/web-acl-name/YYYY/MM/dd/HH/mm

Di dalam folder, nama file log mengikuti format yang sama:

account-id_waflogs_Region_web-acl-name_timestamp_hash.log.gz

Spesifikasi waktu yang digunakan dalam struktur folder dan nama file log mematuhi spesifikasi format stempel waktu. YYYYMMddTHHmmZ

Berikut ini menunjukkan contoh file log di bucket Amazon S3 untuk bucket bernama. DOC-EXAMPLE-BUCKET Akun AWS adalah11111111111. Web ACL adalah TEST-WEBACL dan Wilayah adalahus-east-1.

s3://DOC-EXAMPLE-BUCKET/AWSLogs/11111111111/WAFLogs/us-east-1/TEST-WEBACL/2021/10/28/19/50/11111111111_waflogs_us-east-1_TEST-WEBACL_20211028T1950Z_e0ca43b5.log.gz
catatan

Nama bucket Anda untuk AWS WAF logging harus dimulai dengan aws-waf-logs- dan dapat diakhiri dengan akhiran apa pun yang Anda inginkan.

Izin diperlukan untuk mempublikasikan log ke Amazon S3

Mengonfigurasi pencatatan ACL lalu lintas web untuk bucket Amazon S3 memerlukan pengaturan izin berikut. Izin ini ditetapkan untuk Anda saat Anda menggunakan salah satu kebijakan terkelola akses AWS WAF penuh, AWSWAFConsoleFullAccess atauAWSWAFFullAccess. Jika Anda ingin mengelola akses berbutir halus ke pencatatan dan AWS WAF sumber daya, Anda dapat mengatur izin ini sendiri. Untuk informasi tentang mengelola izin, lihat Manajemen akses untuk AWS sumber daya di Panduan IAM Pengguna. Untuk informasi tentang kebijakan AWS WAF terkelola, lihatAWS kebijakan terkelola untuk AWS WAF.

Izin berikut memungkinkan Anda mengubah konfigurasi ACL pencatatan web dan mengonfigurasi pengiriman log ke bucket Amazon S3 Anda. Izin ini harus dilampirkan ke pengguna yang Anda gunakan untuk mengelola AWS WAF.

catatan

Saat Anda menetapkan izin yang tercantum di bawah ini, Anda mungkin melihat kesalahan dalam AWS CloudTrail log yang menunjukkan akses ditolak, tetapi izin tersebut benar untuk AWS WAF pencatatan.

{ "Version":"2012-10-17", "Statement":[ { "Action":[ "wafv2:PutLoggingConfiguration", "wafv2:DeleteLoggingConfiguration" ], "Resource":[ "*" ], "Effect":"Allow", "Sid":"LoggingConfigurationAPI" }, { "Sid":"WebACLLogDelivery", "Action":[ "logs:CreateLogDelivery", "logs:DeleteLogDelivery" ], "Resource": "*", "Effect":"Allow" }, { "Sid":"WebACLLoggingS3", "Action":[ "s3:PutBucketPolicy", "s3:GetBucketPolicy" ], "Resource": [ "arn:aws:s3:::aws-waf-logs-amzn-s3-demo-bucket" ], "Effect":"Allow" } ] }

Ketika tindakan diizinkan pada semua AWS sumber daya, itu ditunjukkan dalam kebijakan dengan "Resource" pengaturan"*". Ini berarti bahwa tindakan diizinkan pada semua AWS sumber daya yang didukung oleh setiap tindakan. Misalnya, tindakan hanya wafv2:PutLoggingConfiguration didukung untuk wafv2 mencatat sumber daya konfigurasi.

Secara default, ember Amazon S3 dan objek yang dikandungnya bersifat pribadi. Hanya pemilik bucket yang bisa mengakses bucket dan objek yang tersimpan di dalamnya. Namun, pemilik bucket dapat memberikan akses ke sumber daya dan pengguna lain dengan menulis kebijakan akses.

Jika pengguna yang membuat log memiliki bucket, layanan akan secara otomatis melampirkan kebijakan berikut ke bucket untuk memberikan izin log untuk memublikasikan log ke bucket:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::aws-waf-logs-amzn-s3-demo-bucket/AWSLogs/account-id/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": ["account-id"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:region:account-id:*"] } } }, { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::aws-waf-logs-amzn-s3-demo-bucket", "Condition": { "StringEquals": { "aws:SourceAccount": ["account-id"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:region:account-id:*"] } } } ] }
catatan

Nama bucket Anda untuk AWS WAF logging harus dimulai dengan aws-waf-logs- dan dapat diakhiri dengan akhiran apa pun yang Anda inginkan.

Jika pengguna yang membuat log tidak memiliki bucket, atau tidak memiliki PutBucketPolicy izin GetBucketPolicy dan untuk bucket, pembuatan log gagal. Dalam hal ini, pemilik bucket harus menambahkan kebijakan sebelumnya secara manual ke bucket dan menentukan ID pembuat log. Akun AWS Untuk informasi selengkapnya, lihat Bagaimana Cara Menambahkan Kebijakan Bucket S3? di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon. Jika bucket menerima log dari beberapa akun, tambahkan entri Resource elemen ke pernyataan AWSLogDeliveryWrite kebijakan untuk setiap akun.

Misalnya, kebijakan bucket berikut memungkinkan Akun AWS 111122223333 untuk memublikasikan log ke bucket bernamaaws-waf-logs-amzn-s3-demo-bucket:

{ "Version": "2012-10-17", "Id": "AWSLogDeliveryWrite20150319", "Statement": [ { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::aws-waf-logs-amzn-s3-demo-bucket/AWSLogs/111122223333/*", "Condition": { "StringEquals": { "s3:x-amz-acl": "bucket-owner-full-control", "aws:SourceAccount": ["111122223333"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:111122223333:*"] } } }, { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::aws-waf-logs-amzn-s3-demo-bucket", "Condition": { "StringEquals": { "aws:SourceAccount": ["111122223333"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:111122223333:*"] } } } ] }

Izin untuk menggunakan AWS Key Management Service dengan kunci KMS

Jika tujuan logging Anda menggunakan enkripsi sisi server dengan kunci yang disimpan di AWS Key Management Service (SSE-KMS) dan Anda menggunakan kunci terkelola pelanggan (KMSkunci), Anda harus memberikan AWS WAF izin untuk menggunakan kunci Anda. KMS Untuk melakukan ini, Anda menambahkan kebijakan kunci ke KMS kunci untuk tujuan yang Anda pilih. Ini memungkinkan AWS WAF logging untuk menulis file log Anda ke tujuan Anda.

Tambahkan kebijakan kunci berikut ke KMS kunci Anda untuk memungkinkan masuk AWS WAF ke bucket Amazon S3 Anda.

{ "Sid": "Allow AWS WAF to use the key", "Effect": "Allow", "Principal": { "Service": [ "delivery.logs.amazonaws.com" ] }, "Action": "kms:GenerateDataKey*", "Resource": "*" }

Izin diperlukan untuk mengakses file log Amazon S3

Amazon S3 menggunakan daftar kontrol akses (ACLs) untuk mengelola akses ke file log yang dibuat oleh log. AWS WAF Secara default, pemilik bucket memiliki izin FULL_CONTROL pada setiap file berkas log. Pemilik pengiriman log, jika berbeda dari pemilik bucket, tidak memiliki izin. Akun pengiriman log memiliki izin READ dan WRITE. Untuk informasi selengkapnya, lihat Daftar Kontrol Akses (ACL) Ringkasan di Panduan Pengguna Layanan Penyimpanan Sederhana Amazon.