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 CloudWatch log menggunakan pengiriman log yang CloudWatch dijual Amazon Logs. Setelah log masuk ke Log CloudWatch , Anda dapat menanyainya dengan CloudWatch Logs Insights, 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 merutekan melalui Amazon Data Firehose.

Anda mengonfigurasi pengiriman menggunakan CloudWatch Logs API, bukan Amazon S3 API. 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 bucket yang sama. Misalnya, kirimkan ke grup log CloudWatch log untuk kueri interaktif dan secara bersamaan kirimkan ke Amazon S3 dalam format Parquet untuk retensi jangka panjang dengan biaya lebih rendah.

catatan

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

catatan

Untuk informasi tentang pengiriman log akses server ke bucket tujuan umum Amazon S3 sebagai gantinya, lihatMengaktifkan 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 yang Wilayah AWS sama dengan bucket sumber.

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

    • logs:PutDeliverySource

    • logs:PutDeliveryDestination

    • logs:CreateDelivery

    • s3:AllowVendedLogDeliveryForResource(pada 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 log dengan CloudWatch 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 tempat 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 menghubungkan 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 CloudWatch log log Anda. Konfigurasi membutuhkan waktu 15-20 menit untuk menyebarkan. Setelah propagasi, pengiriman log biasanya dimulai dalam beberapa jam. Hanya permintaan baru yang dicatat — tidak ada pengisian 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, Log secara otomatis mengirimkan CloudWatch 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 tabel dalam integrasi Tabel S3. Anda hanya membayar untuk penyer CloudWatch apan 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 logs.amazonaws.com prinsipal 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 ini 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 ke 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 Logs 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 menanyakan integrasi Tabel S3, lihatMengkueri log akses di Tabel S3.

Cross-account dan agregasi lintas wilayah

Jal CloudWatch ur pengiriman 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 Telemetry Config AWS Organizations untuk secara otomatis mengaktifkan pengiriman log akses server di seluruh akun anggota.

catatan

Aturan pengaktifan 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 dikirimkan ke grup log itu, log tersebut dienkripsi dengan AWS KMS kunci Anda. Ini mengatasi batasan utama jalur pengiriman bucket tujuan umum Amazon S3, yang hanya mendukung SSE-S3 enkripsi.

Jika Anda mengaktifkan integrasi Tabel S3 dengan grup log AWS KMS terenkripsi, Anda harus memberikan izin tambahan dalam kebijakan AWS KMS kunci Anda kepada prinsipal 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/*" } } } ] }

Prinsi systemtables.cloudwatch.amazonaws.com p digunakan oleh CloudWatch Log untuk menulis log ke Tabel S3. Prinsi maintenance.s3tables.amazonaws.com p 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 mengkonfigurasi ulang sumbernya.

    aws logs delete-delivery \ --id delivery-id
  • Hapus sumber pengiriman — menghapus konfigurasi sumber sepenuhnya. Gunakan ini jika Anda tidak lagi ingin 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.