View a markdown version of this page

Log yang dikirim ke Amazon S3 - CloudWatch Log Amazon

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

Log yang dikirim ke Amazon S3

Saat Anda menyetel log untuk dikirim ke Amazon S3 AWS , buat atau ubah kebijakan sumber daya yang terkait dengan bucket S3 yang menerima log, jika diperlukan.

Log yang diterbitkan langsung ke Amazon S3 diterbitkan ke bucket lama yang Anda tentukan. Satu atau lebih berkas log dibuat setiap lima menit dalam bucket yang ditetapkan.

Ketika Anda mengirimkan log untuk pertama kalinya ke bucket Amazon S3, layanan yang mengirimkan log mencatat pemilik bucket untuk memastikan bahwa log dikirim hanya untuk bucket milik akun ini. Oleh karenanya, untuk mengubah pemilik bucket Amazon S3, Anda harus membuat ulang atau memperbarui langganan log di layanan asal.

catatan

CloudFront menggunakan model izin yang berbeda dari layanan lain yang mengirim log yang dijual ke S3. Untuk informasi selengkapnya, lihat Izin yang diperlukan untuk mengonfigurasi pencatatan log standar dan untuk mengakses berkas log Anda.

Selain itu, jika Anda menggunakan bucket S3 yang sama untuk log CloudFront akses dan sumber log lain, mengaktifkan ACL pada bucket for CloudFront juga memberikan izin ke semua sumber log lain yang menggunakan bucket ini.

penting

Jika Anda mengirim log ke bucket Amazon S3 dan kebijakan bucket berisi NotPrincipal elemen NotAction atau, menambahkan izin pengiriman log ke bucket secara otomatis dan membuat langganan log akan gagal. Agar berhasil membuat langganan log, Anda perlu menambahkan izin pengiriman log secara manual ke kebijakan bucket, lalu buat langganan log. Untuk informasi selengkapnya, lihat petunjuk di bagian ini.

Jika bucket memiliki enkripsi sisi server menggunakan AWS KMS kunci yang dikelola pelanggan, Anda juga harus menambahkan kebijakan kunci untuk kunci yang dikelola pelanggan Anda. Untuk informasi selengkapnya, lihat Amazon S3.

Jika bucket tujuan telah diaktifkan SSE-KMS dan Kunci Bucket diaktifkan, kebijakan kunci KMS yang dikelola pelanggan yang terlampir tidak lagi berfungsi seperti yang diharapkan untuk semua permintaan. Untuk informasi selengkapnya, lihat Mengurangi biaya menggunakan SSE-KMS Amazon S3 Bucket Keys.

Jika Anda menggunakan log yang dijual dan enkripsi S3 dengan AWS KMS kunci yang dikelola pelanggan, Anda harus menggunakan AWS KMS kunci ARN yang memenuhi syarat dan bukan ID kunci saat mengonfigurasi bucket. Untuk informasi selengkapnya, lihat enkripsi put-bucket.

Izin pengguna

Untuk dapat mengatur pengiriman salah satu jenis log ini ke Amazon S3 untuk pertama kalinya, Anda harus masuk ke akun dengan izin berikut.

  • logs:CreateLogDelivery

  • S3:GetBucketPolicy

  • S3:PutBucketPolicy

Jika salah satu jenis log ini sudah dikirim ke bucket Amazon S3, untuk mengatur pengiriman dari salah satu jenis log ini ke bucket yang sama Anda hanya perlu memiliki izin logs:CreateLogDelivery.

Kebijakan sumber daya bucket S3

Bucket S3 tempat log dikirim harus memiliki kebijakan sumber daya yang mencakup izin tertentu. Jika saat ini bucket tidak memiliki kebijakan sumber daya, dan pengguna yang mengatur pencatatan memiliki izin S3:GetBucketPolicy dan S3:PutBucketPolicy untuk bucket, maka AWS secara otomatis membuat kebijakan berikut ini saat Anda mulai mengirim log ke Amazon S3.

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

Di kebijakan sebelumnya, foraws:SourceAccount, tentukan daftar ID akun yang lognya dikirimkan ke bucket ini. Untukaws:SourceArn, tentukan daftar ARN dari sumber daya yang menghasilkan log, dalam formulirarn:aws:logs:source-region:source-account-id:*.

Jika bucket memiliki kebijakan sumber daya tetapi kebijakan tersebut tidak berisi pernyataan yang ditampilkan dalam kebijakan sebelumnya, dan pengguna yang mengatur logging memiliki S3:PutBucketPolicy izin S3:GetBucketPolicy dan untuk bucket, pernyataan tersebut ditambahkan ke kebijakan sumber daya bucket.

catatan

Dalam beberapa kasus, Anda mungkin melihat AccessDenied kesalahan AWS CloudTrail jika s3:ListBucket izin belum diberikandelivery.logs.amazonaws.com. Untuk menghindari kesalahan ini dalam CloudTrail log Anda, Anda harus memberikan s3:ListBucket izin delivery.logs.amazonaws.com dan Anda harus menyertakan Condition parameter yang ditampilkan dengan s3:GetBucketAcl izin yang ditetapkan dalam kebijakan bucket sebelumnya. Untuk membuatnya lebih sederhana, alih-alih membuat yang baruStatement, Anda dapat langsung memperbarui AWSLogDeliveryAclCheck menjadi “Action”: [“s3:GetBucketAcl”, “s3:ListBucket”]

Enkripsi sisi server bucket Amazon S3

Anda dapat melindungi data di bucket Amazon S3 Anda dengan mengaktifkan Enkripsi sisi server dengan S3-managed kunci Amazon (SSE-S3) atau enkripsi sisi server dengan AWS KMS kunci yang disimpan di (). AWS Key Management Service SSE-KMS Untuk informasi selengkapnya, silakan lihat Melindungi data menggunakan enkripsi sisi server.

Jika Anda memilih SSE-S3, tidak diperlukan konfigurasi tambahan. Amazon S3 menangani kunci enkripsi.

Awas

Jika Anda memilih SSE-KMS, Anda harus menggunakan kunci yang dikelola pelanggan, karena menggunakan kunci AWS terkelola tidak didukung untuk skenario ini. Jika Anda mengatur enkripsi menggunakan kunci ter AWS kelola, log akan dikirimkan dalam format yang tidak dapat dibaca.

Saat menggunakan AWS KMS kunci yang dikelola pelanggan, Anda dapat menentukan Nama Sumber Daya Amazon (ARN) dari kunci yang dikelola pelanggan saat mengaktifkan enkripsi bucket. Anda harus menambahkan yang berikut ini ke kebijakan kunci untuk kunci yang dikelola pelanggan Anda (bukan ke kebijakan bucket untuk bucket S3 Anda), sehingga akun pengiriman log dapat menulis ke bucket S3 Anda.

Jika Anda memilih SSE-KMS, Anda harus menggunakan kunci yang dikelola pelanggan, karena menggunakan kunci AWS terkelola tidak didukung untuk skenario ini. Saat menggunakan AWS KMS kunci yang dikelola pelanggan, Anda dapat menentukan Nama Sumber Daya Amazon (ARN) dari kunci yang dikelola pelanggan saat mengaktifkan enkripsi bucket. Anda harus menambahkan yang berikut ini ke kebijakan kunci untuk kunci yang dikelola pelanggan Anda (bukan ke kebijakan bucket untuk bucket S3 Anda), sehingga akun pengiriman log dapat menulis ke bucket S3 Anda.

{ "Sid": "Allow Logs Delivery to use the key", "Effect": "Allow", "Principal": { "Service": [ "delivery.logs.amazonaws.com" ] }, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:ReEncrypt*", "kms:GenerateDataKey*", "kms:DescribeKey" ], "Resource": "*", "Condition": { "StringEquals": { "aws:SourceAccount": ["0123456789"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:0123456789:*"] } } }

Untukaws:SourceAccount, tentukan daftar ID akun yang log dikirimkan ke bucket ini. Untukaws:SourceArn, tentukan daftar ARN dari sumber daya yang menghasilkan log, dalam formulirarn:aws:logs:source-region:source-account-id:*.