View a markdown version of this page

Mengirimkan log akses server ke CloudWatch Log - Amazon Simple Storage Service

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

Mengirimkan log akses server ke CloudWatch Log

Anda dapat mengirimkan log akses server Amazon S3 ke grup log Log menggunakan CloudWatch pengiriman CloudWatch log penjual Amazon Logs. Setelah log berada di CloudWatch Log, Anda dapat melakukan kueri dengan Wawasan CloudWatch Log, menggabungkannya di seluruh akun dan Wilayah, mengenkripsinya dengan AWS Key Management Service (AWS KMS), dan secara opsional mengirimkannya ke Tabel Amazon S3 dalam format Apache Iceberg untuk analisis SQL. Anda juga dapat mengirimkan log ke Amazon S3 dalam format JSON atau Apache Parquet atau merutekkannya melalui Amazon Data Firehose.

Anda mengonfigurasi pengiriman menggunakan API CloudWatch Log, bukan API Amazon S3. Anda menentukan grup log untuk setiap bucket sumber. Beberapa bucket dapat berbagi grup log yang sama, atau setiap bucket dapat mengirimkannya sendiri.

Tip

Anda dapat mengatur beberapa tujuan untuk ember yang sama. Misalnya, kirimkan ke grup CloudWatch log Log untuk kueri interaktif dan kirimkan secara bersamaan ke Amazon S3 dalam format Parket untuk retensi jangka panjang dengan biaya lebih rendah.

catatan

CloudWatch Pengiriman log vended log juga mendukung Amazon Data Firehose dan Amazon S3 sebagai tujuan pengiriman, termasuk format keluaran Apache Parquet. Halaman ini mencakup tujuan grup CloudWatch log Log, yang juga mendukung integrasi Tabel S3 untuk analitik SQL. Untuk informasi tentang tujuan Firehose dan Amazon S3, lihat Mengaktifkan pencatatan AWS dari layanan di Panduan Pengguna Log CloudWatch Amazon.

catatan

Untuk informasi tentang mengirimkan log akses server ke bucket tujuan umum Amazon S3, lihat. Mengaktifkan pencatatan akses server Amazon S3

Prasyarat

Sebelum Anda mengatur pengiriman, Anda memerlukan yang berikut:

  • Bucket tujuan umum Amazon S3 (bucket sumber yang ingin Anda log).

  • Grup CloudWatch log Log Wilayah AWS sama dengan bucket sumber.

  • Izin IAM untuk pemanggil. Minimal, Anda memerlukan izin berikut:

    • logs:PutDeliverySource

    • logs:PutDeliveryDestination

    • logs:CreateDelivery

    • s3:AllowVendedLogDeliveryForResource(di ember sumber)

    Jika Anda berencana untuk mengaktifkan integrasi Tabel S3, Anda juga perlu:

    • observabilityadmin:CreateS3TableIntegration

    • logs:AssociateSourceToS3TableIntegration

    • s3tables:CreateTableBucket

    • s3tables:PutTableBucketEncryption

    • s3tables:PutTableBucketPolicy

Menyiapkan pengiriman (AWS CLI)

Untuk mengatur pengiriman log akses server ke CloudWatch Log menggunakan AWS Command Line Interface, selesaikan tiga langkah berikut.

  1. Buat sumber pengiriman. Ini mendaftarkan bucket Amazon S3 Anda sebagai sumber CloudWatch log dengan Log.

    aws logs put-delivery-source \ --name my-sal-source \ --resource-arn arn:aws:s3:::my-bucket \ --log-type S3_SERVER_ACCESS_LOGS
  2. Buat tujuan pengiriman. Ini menentukan grup CloudWatch log Log di mana log akan dikirimkan.

    aws logs put-delivery-destination \ --name my-sal-destination \ --delivery-destination-configuration '{"destinationResourceArn": "arn:aws:logs:us-east-1:123456789012:log-group:my-sal-logs"}'
  3. Buat pengiriman. Ini menautkan sumber ke tujuan dan memulai pengiriman log.

    aws logs create-delivery \ --delivery-source-name my-sal-source \ --delivery-destination-arn arn:aws:logs:us-east-1:123456789012:delivery-destination:my-sal-destination

Setelah Anda menyelesaikan langkah-langkah ini, Amazon S3 mulai mengirimkan log akses server ke grup log Log Anda CloudWatch . Konfigurasi membutuhkan waktu 15-20 menit untuk disebarkan. Setelah propagasi, pengiriman log biasanya dimulai dalam beberapa jam. Hanya permintaan baru yang dicatat — tidak ada isi ulang data historis.

Menyiapkan pengiriman (konsol Amazon S3)

  1. Masuk ke konsol Amazon S3 di. https://console.aws.amazon.com/s3/

  2. Di panel navigasi kiri, pilih Bucket.

  3. Pilih nama bucket sumber yang ingin Anda aktifkan logging.

  4. Pilih tab Properti.

  5. Di bagian Pengiriman log akses server ke CloudWatch Log, pilih Edit.

  6. Pilih Aktifkan.

  7. Pilih atau buat grup CloudWatch log Log sebagai tujuan pengiriman.

  8. (Opsional) Untuk mengirimkan log ke Tabel S3 dalam format Apache Iceberg, pilih Aktifkan integrasi Tabel S3.

  9. Pilih Simpan perubahan.

Setelah Anda menyimpan, bagian Pengiriman log akses Server ke CloudWatch Log menampilkan grup log yang diaktifkan.

Menyiapkan pengiriman (CloudFormation)

Anda dapat menggunakan AWS CloudFormation untuk mengotomatiskan pengaturan pengiriman log akses server ke CloudWatch Log. Template berikut membuat sumber daya yang diperlukan: peran IAM, grup CloudWatch log Log, sumber pengiriman, tujuan pengiriman, dan pengiriman.

AWSTemplateFormatVersion: '2010-09-09' Description: S3 Access Logs delivery to CloudWatch Logs Parameters: SourceBucketArn: Type: String Description: ARN of the S3 bucket to enable access logging LogGroupName: Type: String Default: /aws/s3/access-logs Description: CloudWatch Log Group name for SAL delivery Resources: SALLogGroup: Type: AWS::Logs::LogGroup Properties: LogGroupName: !Ref LogGroupName RetentionInDays: 180 SALDeliverySource: Type: AWS::Logs::DeliverySource Properties: Name: !Sub '${AWS::StackName}-sal-source' ResourceArn: !Ref SourceBucketArn LogType: S3_SERVER_ACCESS_LOGS SALDeliveryDestination: Type: AWS::Logs::DeliveryDestination Properties: Name: !Sub '${AWS::StackName}-sal-destination' DestinationResourceArn: !GetAtt SALLogGroup.Arn SALDelivery: Type: AWS::Logs::Delivery Properties: DeliverySourceName: !Ref SALDeliverySource DeliveryDestinationArn: !GetAtt SALDeliveryDestination.Arn

Mengaktifkan integrasi Tabel S3 (opsional)

Saat Anda mengaktifkan integrasi Tabel S3, CloudWatch Log secara otomatis mengirimkan log akses server Anda dalam format Apache Iceberg ke bucket tabel aws-cloudwatch terkelola di akun Anda. Anda kemudian dapat menanyakan data ini menggunakan Amazon Athena, Amazon Redshift, atau alat apa pun. Iceberg-compatible

Tidak ada biaya tambahan untuk penyimpanan atau pemeliharaan meja dalam integrasi Tabel S3. Anda hanya membayar untuk konsumsi CloudWatch Log dan untuk permintaan kueri dengan harga Tabel S3.

  1. Buat integrasi Tabel S3 (sekali per akun per Wilayah).

    aws observabilityadmin create-s3-table-integration \ --role-arn arn:aws:iam::123456789012:role/CWLogsS3TableIntegrationRole \ --encryption '{"SseAlgorithm": "AES256"}'

    Peran IAM harus mempercayai kepala logs.amazonaws.com layanan dan memberikan logs:integrateWithS3Table izin. Berikut ini adalah contoh kebijakan kepercayaan:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "logs.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:logs:us-east-1:123456789012:log-group:log-group-name" } } } ] }

    Peran tersebut juga memerlukan kebijakan izin berikut:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "logs:integrateWithS3Table", "Resource": "arn:aws:logs:us-east-1:123456789012:log-group:log-group-name", "Condition": { "StringEquals": { "aws:ResourceAccount": "123456789012" } } } ] }
  2. Kaitkan sumber pengiriman Anda dengan integrasi.

    aws logs associate-source-to-s3-table-integration \ --integration-arn integration-arn \ --data-source '{"name":"amazon_s3","type":"server_access"}'

Setelah langkah-langkah ini, CloudWatch Log membuat bucket tabel aws-cloudwatch terkelola dan mulai mengirimkan log dalam format Iceberg. Data biasanya muncul dalam waktu satu jam setelah pengiriman pertama ke CloudWatch Log.

Untuk informasi tentang kueri integrasi Tabel S3, lihat. Menanyakan log akses di Tabel S3

Cross-account dan agregasi lintas wilayah

Jalur pengiriman CloudWatch Log mendukung agregasi log lintas akun dan lintas wilayah dengan dua opsi:

  • CloudWatch observabilitas lintas akun memungkinkan Anda untuk menanyakan log di tempat di seluruh akun tanpa menyalin data.

  • CloudWatch Sentralisasi log memungkinkan Anda untuk mengkonsolidasikan log dari beberapa akun dan Wilayah ke dalam grup log pusat, secara opsional menggunakan filter langganan untuk penerusan selektif.

Untuk pengaturan multi-akun, administrator dapat menggunakan aturan pengaktifan CloudWatch Konfigurasi Telemetri AWS Organizations untuk secara otomatis mengaktifkan pengiriman log akses server di seluruh akun anggota.

catatan

Aturan pemberdayaan saat ini tidak mendukung pengaktifan otomatis integrasi Tabel S3. Anda harus mengaktifkan integrasi secara terpisah di setiap akun.

Enkripsi

Anda dapat mengenkripsi log akses server yang dikirimkan ke CloudWatch Log dengan mengonfigurasi AWS KMS enkripsi pada grup log Anda. Ketika log akses server dikirim ke grup log itu, log tersebut dienkripsi dengan kunci Anda AWS KMS . Ini membahas batasan utama jalur pengiriman bucket tujuan umum Amazon S3, yang hanya SSE-S3 mendukung enkripsi.

Jika Anda mengaktifkan integrasi Tabel S3 dengan grup log AWS KMS-enkripsi, Anda harus memberikan izin tambahan dalam kebijakan AWS KMS kunci Anda ke prinsip layanan berikut:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "EnableCWSystemTablesKeyUsage", "Effect": "Allow", "Principal": { "Service": "systemtables.cloudwatch.amazonaws.com" }, "Action": [ "kms:DescribeKey", "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-1:123456789012:key/key-id", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" } } }, { "Sid": "EnableS3TablesMaintenanceKeyUsage", "Effect": "Allow", "Principal": { "Service": "maintenance.s3tables.amazonaws.com" }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "arn:aws:kms:us-east-1:123456789012:key/key-id", "Condition": { "StringLike": { "kms:EncryptionContext:aws:s3:arn": "table-bucket-arn/*" } } } ] }

systemtables---cloudwatch.amazonaws.com.rproxy.govskope.caPrinsipal digunakan oleh CloudWatch Log untuk menulis log ke Tabel S3. maintenance---s3tables.amazonaws.com.rproxy.govskope.caPrinsipal digunakan oleh Tabel S3 untuk operasi Gunung Es seperti pemadatan.

Menonaktifkan pengiriman

Untuk menghentikan pengiriman log akses server ke CloudWatch Log, Anda dapat menghapus pengiriman atau sumber pengiriman:

  • Hapus pengiriman — menghentikan pengiriman log tetapi menjaga konfigurasi sumber pengiriman tetap utuh. Anda dapat membuat pengiriman baru nanti tanpa mengonfigurasi ulang sumbernya.

    aws logs delete-delivery \ --id delivery-id
  • Hapus sumber pengiriman — menghapus konfigurasi sumber sepenuhnya. Gunakan ini jika Anda tidak lagi menginginkan bucket terkait dengan pengiriman CloudWatch Log.

    aws logs delete-delivery-source \ --name delivery-source-name

Log yang dikirim sebelumnya tetap berada di grup log dan dalam integrasi Tabel S3 (jika diaktifkan). Menghapus pengiriman tidak menghapus data log yang ada.