Mengaktifkan logging dari layanan AWS - CloudWatch Log Amazon

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

Mengaktifkan logging dari layanan AWS

Meskipun banyak layanan mempublikasikan log hanya ke CloudWatch Log, beberapa AWS layanan dapat mempublikasikan log langsung ke Amazon Simple Storage Service atau Amazon Kinesis Data Firehose. Jika persyaratan utama Anda untuk log adalah penyimpanan atau pemrosesan di salah satu layanan ini, Anda dapat dengan mudah membuat layanan yang menghasilkan log mengirimkannya langsung ke Amazon S3 atau Kinesis Data Firehose tanpa pengaturan tambahan.

Meskipun log dipublikasikan langsung ke Amazon S3 atau Kinesis Data Firehose, ada biaya yang dikenakan. Untuk informasi selengkapnya, lihat Log Terjual di tab Log di CloudWatch Harga Amazon.

Beberapa AWS layanan menggunakan infrastruktur umum untuk mengirim log mereka. Untuk mengaktifkan logging dari layanan ini, Anda harus masuk sebagai pengguna yang memiliki izin tertentu. Selain itu, Anda harus memberikan izin AWS untuk mengaktifkan log yang akan dikirim.

Untuk layanan yang memerlukan izin ini, ada dua versi izin yang diperlukan. Layanan yang memerlukan izin tambahan ini dicatat sebagai Didukung [Izin V1] dan Didukung [Izin V2] dalam tabel. Untuk informasi tentang izin yang diperlukan ini, lihat bagian setelah tabel.

Jenis log CloudWatch Logs Amazon S3 Kinesis Data Firehose

Log akses Amazon API Gateway

Didukung [Izin V1]

AWS AppSync log

Didukung

Log MySQL Amazon Aurora

Didukung

Log metrik kualitas media Amazon Chime dan log pesan SIP

Didukung [Izin V1]

CloudFront: log akses

Didukung [Izin V1]

AWS CloudHSM log audit

Didukung

CloudWatch Terbukti evaluasi log peristiwa

Didukung [Izin V1] Didukung [Izin V1]

CloudWatch Log Monitor Internet

Didukung [Izin V1]

CloudTrail log

Didukung

AWS CodeBuild log

Didukung

Amazon Cognito log

Didukung [Izin V1]

Log Amazon Connect

Didukung

AWS DataSync log

Didukung

Amazon ElastiCache untuk log Redis

Didukung [Izin V1] Didukung [Izin V1]

AWS Elastic Beanstalk log

Didukung

Log Layanan Kontainer Elastis Amazon

Didukung

Log bidang kontrol Amazon Elastic Kubernetes Service

Didukung

AWS Fargate log

Didukung

AWS Fault Injection Service log percobaan

Didukung [Izin V1]

Amazon FinSpace

Didukung [Izin V1] Didukung [Izin V1] Didukung [Izin V1]

AWS Global Accelerator log aliran

Didukung [Izin V1]

AWS Glue log pekerjaan

Didukung

Log obrolan Layanan Video Interaktif Amazon

Didukung [Izin V1] Didukung [Izin V1] Didukung [Izin V1]

AWS IoT log

Didukung

AWS IoT FleetWise log

Didukung [Izin V1] Didukung [Izin V1] Didukung [Izin V1]

AWS Lambda log

Didukung

Log Amazon Macie

Didukung

AWS Mainframe Modernization

Didukung [Izin V1] Didukung [Izin V1] Didukung [Izin V1]

Layanan Dikelola Amazon untuk log Prometheus

Didukung [Izin V1]

Log broker MSK Amazon

Didukung [Izin V1]

Didukung [Izin V1] Didukung [Izin V1]

Log Amazon MSK Connect

Didukung [Izin V1]

Didukung [Izin V1] Didukung [Izin V1]

Log umum dan audit Amazon MQ

Didukung

AWS Log Firewall Jaringan

Didukung [Izin V1]

Didukung [Izin V1] Didukung [Izin V1]

Log akses Network Load Balancer

Didukung [Izin V1]

OpenSearch log

Didukung

OpenSearch Log konsumsi Layanan Amazon

Didukung [Izin V1] Didukung [Izin V1] Didukung [Izin V1]

AWS OpsWorks log

Didukung

Log ServicePostgre SQL Database Relasional Amazon

Didukung

AWS RoboMaker log

Didukung

Amazon Route 53 log kueri DNS publik

Didukung

Log kueri penyelesai Amazon Route 53

Didukung [Izin V1]

Didukung [Izin V1]

SageMaker Acara Amazon

Didukung [Izin V1]

Acara SageMaker pekerja Amazon

Didukung [Izin V1]

AWS Log VPN situs-to_site

Didukung [Izin V1]

Didukung [Izin V1]

Didukung [Izin V1]

Log Layanan Pemberitahuan Sederhana Amazon

Didukung

Log kebijakan perlindungan data Amazon Simple Notification Service

Didukung

File umpan data Instans Spot EC2

Didukung [Izin V1]

AWS Step Functions Alur Kerja Ekspres dan Log Alur Kerja Standar

Didukung [Izin V1]

Log audit Storage Gateway dan log kesehatan

Didukung [Izin V1]

AWS Transfer Family log

Didukung [Izin V1]

Didukung [Izin V1]

Didukung [Izin V1]

Akses Terverifikasi AWS log

Didukung [Izin V1]

Didukung [Izin V1]

Didukung [Izin V1]

Log aliran Amazon Virtual Private Cloud

Didukung [Izin V1] Didukung [Izin V1]

Log akses Amazon VPC Lattice

Didukung [Izin V1] Didukung [Izin V1] Didukung [Izin V1]

AWS WAF log

Didukung [Izin V1] Didukung [Izin V1]

Didukung

Amazon CodeWhisperer

Didukung [Izin V2] Didukung [Izin V2] Didukung [Izin V2]

Logging yang membutuhkan izin tambahan [V1]

Beberapa AWS layanan menggunakan infrastruktur umum untuk mengirim log mereka ke CloudWatch Log, Amazon S3, atau Kinesis Data Firehose. Untuk mengaktifkan layanan AWS yang tercantum dalam tabel berikut untuk mengirim log mereka ke tujuan ini, Anda harus masuk sebagai pengguna yang memiliki izin tertentu.

Selain itu, izin harus diberikan AWS untuk mengaktifkan log yang akan dikirim. AWS dapat secara otomatis membuat izin tersebut ketika log disiapkan, atau Anda dapat membuatnya sendiri terlebih dahulu sebelum Anda mengatur logging.

Jika Anda memilih untuk AWS secara otomatis mengatur izin dan kebijakan sumber daya yang diperlukan saat Anda atau seseorang di organisasi Anda pertama kali mengatur pengiriman log, maka pengguna yang menyiapkan pengiriman log harus memiliki izin tertentu, seperti yang dijelaskan nanti di bagian ini. Selain itu, Anda dapat membuat kebijakan sumber daya sendiri, dan kemudian pengguna yang mengatur pengiriman log tidak memerlukan banyak izin.

Tabel berikut meringkas jenis log dan tujuan log mana yang terkait dengan informasi dalam bagian ini.

Bagian berikut menyediakan detail selengkapnya untuk setiap tujuan ini.

Log dikirim ke CloudWatch Log

penting

Ketika Anda mengatur jenis log dalam daftar berikut untuk dikirim ke CloudWatch Log, AWS membuat atau mengubah kebijakan sumber daya yang terkait dengan grup log yang menerima log, jika diperlukan. Lanjutkan membaca bagian ini untuk melihat detailnya.

Bagian ini berlaku ketika jenis log yang tercantum dalam tabel di bagian sebelumnya dikirim ke CloudWatch Log:

Izin pengguna

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

  • logs:CreateLogDelivery

  • logs:PutResourcePolicy

  • logs:DescribeResourcePolicies

  • logs:DescribeLogGroups

Jika salah satu jenis log ini sudah dikirim ke grup CloudWatch log di Log, maka untuk mengatur pengiriman salah satu jenis log ini ke grup log yang sama, Anda hanya perlu logs:CreateLogDelivery izin.

Kebijakan sumber daya grup log

Grup log tempat log dikirim harus memiliki kebijakan sumber daya yang mencakup izin tertentu. Jika grup log saat ini tidak memiliki kebijakan sumber daya, dan pengguna yang mengatur logging memilikilogs:PutResourcePolicy,logs:DescribeResourcePolicies, dan logs:DescribeLogGroups izin untuk grup log, maka AWS secara otomatis membuat kebijakan berikut untuk itu ketika Anda mulai mengirim CloudWatch log ke Log.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSLogDeliveryWrite20150319", "Effect": "Allow", "Principal": { "Service": [ "delivery.logs.amazonaws.com" ] }, "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-east-1:0123456789:log-group:my-log-group:log-stream:*" ], "Condition": { "StringEquals": { "aws:SourceAccount": ["0123456789"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:0123456789:*"] } } } ] }

Jika grup log memiliki kebijakan sumber daya tetapi kebijakan tersebut tidak berisi pernyataan yang ditampilkan dalam kebijakan sebelumnya, dan pengguna yang mengatur pencatatan memiliki izin logs:PutResourcePolicy, logs:DescribeResourcePolicies, dan logs:DescribeLogGroups untuk grup log, pernyataan tersebut ditambahkan ke kebijakan sumber daya grup log.

Pertimbangan batas ukuran kebijakan sumber daya grup log

Layanan ini harus mencantumkan setiap grup log tempat mereka mengirim log dalam kebijakan sumber daya, dan kebijakan sumber daya CloudWatch Log dibatasi hingga 5120 karakter. Layanan yang mengirimkan log ke sejumlah besar grup log dapat mencapai batasan ini.

Untuk mengurangi hal ini, CloudWatch Log memantau ukuran kebijakan sumber daya yang digunakan oleh layanan yang mengirim log, dan ketika mendeteksi bahwa kebijakan mendekati batas ukuran 5120 karakter, CloudWatch Log secara otomatis mengaktifkan /aws/vendedlogs/* kebijakan sumber daya untuk layanan tersebut. Anda kemudian dapat mulai menggunakan grup log dengan nama yang dimulai dengan /aws/vendedlogs/ sebagai tujuan log dari layanan-layanan ini.

Log yang dikirim ke Amazon S3

penting

Saat Anda menyiapkan jenis log dalam daftar berikut untuk dikirim ke Amazon S3, AWS membuat atau mengubah kebijakan sumber daya yang terkait dengan bucket S3 yang menerima log, jika diperlukan. Lanjutkan membaca bagian ini untuk melihat detailnya.

Bagian ini berlaku ketika jenis log berikut dikirim ke Amazon S3:

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.

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 bucket saat ini tidak memiliki kebijakan sumber daya dan pengguna yang menyiapkan logging memiliki izin S3:GetBucketPolicy dan S3:PutBucketPolicy izin untuk bucket, maka AWS secara otomatis membuat kebijakan berikut untuk itu saat Anda mulai mengirim log ke Amazon S3.

{ "Version": "2012-10-17", "Id": "AWSLogDeliveryWrite20150319", "Statement": [ { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::my-bucket", "Condition": { "StringEquals": { "aws:SourceAccount": ["0123456789"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:0123456789:*"] } } }, { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::my-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:0123456789:*"] } } } ] }

Dalam kebijakan sebelumnya, untukaws:SourceAccount, tentukan daftar ID akun tempat 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:*.

Jika bucket memiliki kebijakan sumber daya tetapi kebijakan tersebut tidak berisi pernyataan yang ditampilkan di kebijakan sebelumnya, dan pengguna yang menyiapkan logging memiliki S3:PutBucketPolicy izin S3:GetBucketPolicy dan untuk bucket, pernyataan tersebut akan 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 di 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 to be “Action”: [“s3:GetBucketAcl”, “s3:ListBucket”]

Enkripsi sisi server bucket Amazon S3

Anda dapat melindungi data di bucket Amazon S3 dengan mengaktifkan Enkripsi sisi server dengan kunci yang dikelola Amazon S3 (SSE-S3) atau enkripsi sisi server dengan kunci yang disimpan di (SSE-KMS). AWS KMS AWS Key Management Service 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 AWS terkelola, log akan dikirimkan dalam format yang tidak dapat dibaca.

Saat menggunakan AWS KMS kunci terkelola pelanggan, Anda dapat menentukan Nama Sumber Daya Amazon (ARN) kunci terkelola pelanggan saat mengaktifkan enkripsi bucket. Anda harus menambahkan hal berikut ke kebijakan kunci untuk kunci terkelola 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 terkelola pelanggan, Anda dapat menentukan Nama Sumber Daya Amazon (ARN) kunci terkelola pelanggan saat mengaktifkan enkripsi bucket. Anda harus menambahkan hal berikut ke kebijakan kunci untuk kunci terkelola 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 tempat log dikirim ke bucket ini. Untukaws:SourceArn, tentukan daftar ARN dari sumber daya yang menghasilkan log, dalam formulirarn:aws:logs:source-region:source-account-id:*.

Log yang dikirim ke Kinesis Data Firehose

Bagian ini berlaku ketika jenis log yang tercantum dalam tabel di bagian sebelumnya dikirim ke Kinesis Data Firehose:

Izin pengguna

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

  • logs:CreateLogDelivery

  • firehose:TagDeliveryStream

  • iam:CreateServiceLinkedRole

Jika salah satu jenis log ini sudah dikirim ke Kinesis Data Firehose, maka untuk mengatur pengiriman dari salah satu jenis log ini ke Kinesis Data Firehose Anda hanya perlu memiliki izin logs:CreateLogDelivery dan firehose:TagDeliveryStream.

Peran IAM yang digunakan untuk izin

Karena Kinesis Data Firehose tidak menggunakan AWS kebijakan sumber daya, menggunakan peran IAM saat menyiapkan log ini untuk dikirim ke Kinesis Data Firehose. AWS membuat peran terkait layanan bernama. AWSServiceRoleForLogDelivery Peran terkait layanan ini mencakup izin berikut.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch", "firehose:ListTagsForDeliveryStream" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/LogDeliveryEnabled": "true" } }, "Effect": "Allow" } ] }

Peran terkait layanan ini memberikan izin untuk semua aliran pengiriman Kinesis Data Firehose yang memiliki tag yang disetel ke. LogDeliveryEnabled true AWS memberikan tag ini ke aliran pengiriman tujuan saat Anda mengatur logging.

Peran terkait layanan ini juga memiliki kebijakan kepercayaan yang memungkinkan layanan delivery.logs.amazonaws.com utama untuk mengasumsikan peran yang terhubung dengan layanan yang diperlukan. Kebijakan kepercayaan tersebut adalah sebagai berikut:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Pencatatan yang membutuhkan izin tambahan [V2]

Beberapa AWS layanan menggunakan metode baru untuk mengirim log mereka. Ini adalah metode fleksibel yang memungkinkan Anda mengatur pengiriman log dari layanan ini ke satu atau beberapa tujuan berikut: CloudWatch Log, Amazon S3, atau Kinesis Data Firehose.

Untuk mengonfigurasi pengiriman log antara AWS layanan yang didukung dan tujuan, Anda harus melakukan hal berikut:

  • Buat sumber pengiriman, yang merupakan objek logis yang mewakili sumber daya yang sebenarnya mengirim log. Untuk informasi lebih lanjut, lihat PutDeliverySource.

  • Buat tujuan pengiriman, yang merupakan objek logis yang mewakili tujuan pengiriman yang sebenarnya. Untuk informasi lebih lanjut, lihat PutDeliveryDestination.

  • Jika Anda mengirimkan log lintas akun, Anda harus menggunakan PutDeliveryDestinationPolicydi akun tujuan untuk menetapkan IAM kebijakan ke tujuan. Kebijakan ini memungkinkan pengiriman ke tujuan tersebut.

  • Gunakan CreateDelivery untuk membuat pengiriman dengan memasangkan tepat satu sumber pengiriman dan satu tujuan pengiriman.

Bagian berikut memberikan rincian izin yang perlu Anda miliki saat Anda masuk untuk mengatur pengiriman log ke setiap jenis tujuan, menggunakan proses V2. Izin ini dapat diberikan ke peran IAM yang Anda masuki.

Selain izin yang tercantum di bagian berikut, jika Anda menyiapkan pengiriman log menggunakan konsol alih-alih API, Anda juga memerlukan izin tambahan berikut:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "firehose:ListDeliveryStreams", "firehose:DescribeDeliveryStream", "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:*", "arn:aws:firehose:region:account-id:deliverystream/*", "arn:aws:s3:::*" ] } ] }

Log dikirim ke CloudWatch Log

Izin pengguna

Untuk mengaktifkan pengiriman CloudWatch log ke Log, Anda harus masuk dengan izin berikut.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:PutDeliverySource", "logs:GetDeliverySource", "logs:DeleteDeliverySource", "logs:DescribeDeliverySources", "logs:PutDeliveryDestination", "logs:GetDeliveryDestination", "logs:DeleteDeliveryDestination", "logs:DescribeDeliveryDestinations", "logs:CreateDelivery", "logs:GetDelivery", "logs:DeleteDelivery", "logs:DescribeDeliveries", "logs:PutDeliveryDestinationPolicy", "logs:GetDeliveryDestinationPolicy", "logs:DeleteDeliveryDestinationPolicy" ], "Resource": [ "arn:aws:logs:region:account-id:delivery-source:*", "arn:aws:logs:region:account-id:delivery:*", "arn:aws:logs:region:account-id:delivery-destination:*" ] }, { "Sid": "AllowUpdatesToResourcePolicyCWL", "Effect": "Allow", "Action": [ "logs:PutResourcePolicy", "logs:DescribeResourcePolicies", "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:region:account-id:log-group:*" ] }] }

Kebijakan sumber daya grup log

Grup log tempat log dikirim harus memiliki kebijakan sumber daya yang mencakup izin tertentu. Jika grup log saat ini tidak memiliki kebijakan sumber daya, dan pengguna yang mengatur logging memilikilogs:PutResourcePolicy,logs:DescribeResourcePolicies, dan logs:DescribeLogGroups izin untuk grup log, maka AWS secara otomatis membuat kebijakan berikut untuk itu ketika Anda mulai mengirim CloudWatch log ke Log.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSLogDeliveryWrite20150319", "Effect": "Allow", "Principal": { "Service": [ "delivery.logs.amazonaws.com" ] }, "Action": [ "logs:CreateLogStream", "logs:PutLogEvents" ], "Resource": [ "arn:aws:logs:us-east-1:0123456789:log-group:my-log-group:log-stream:*" ], "Condition": { "StringEquals": { "aws:SourceAccount": ["0123456789"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:0123456789:*"] } } } ] }

Pertimbangan batas ukuran kebijakan sumber daya grup log

Layanan ini harus mencantumkan setiap grup log tempat mereka mengirim log dalam kebijakan sumber daya, dan kebijakan sumber daya CloudWatch Log dibatasi hingga 5120 karakter. Layanan yang mengirimkan log ke sejumlah besar grup log dapat mencapai batasan ini.

Untuk mengurangi hal ini, CloudWatch Log memantau ukuran kebijakan sumber daya yang digunakan oleh layanan yang mengirim log, dan ketika mendeteksi bahwa kebijakan mendekati batas ukuran 5120 karakter, CloudWatch Log secara otomatis mengaktifkan /aws/vendedlogs/* kebijakan sumber daya untuk layanan tersebut. Anda kemudian dapat mulai menggunakan grup log dengan nama yang dimulai dengan /aws/vendedlogs/ sebagai tujuan log dari layanan-layanan ini.

Log yang dikirim ke Amazon S3

Izin pengguna

Untuk mengaktifkan pengiriman log ke Amazon S3, Anda harus masuk dengan izin berikut.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:PutDeliverySource", "logs:GetDeliverySource", "logs:DeleteDeliverySource", "logs:DescribeDeliverySources", "logs:PutDeliveryDestination", "logs:GetDeliveryDestination", "logs:DeleteDeliveryDestination", "logs:DescribeDeliveryDestinations", "logs:CreateDelivery", "logs:GetDelivery", "logs:DeleteDelivery", "logs:DescribeDeliveries", "logs:PutDeliveryDestinationPolicy", "logs:GetDeliveryDestinationPolicy", "logs:DeleteDeliveryDestinationPolicy" ], "Resource": [ "arn:aws:logs:region:account-id:delivery-source:*", "arn:aws:logs:region:account-id:delivery:*", "arn:aws:logs:region:account-id:delivery-destination:*" ] }, { "Sid": "AllowUpdatesToResourcePolicyS3", "Effect": "Allow", "Action": [ "s3:PutBucketPolicy", "s3:GetBucketPolicy" ], "Resource": [ "arn:aws:s3:::bucket_name" ] }] }

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

{ "Version": "2012-10-17", "Id": "AWSLogDeliveryWrite20150319", "Statement": [ { "Sid": "AWSLogDeliveryAclCheck", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:GetBucketAcl", "Resource": "arn:aws:s3:::my-bucket", "Condition": { "StringEquals": { "aws:SourceAccount": ["0123456789"] }, "ArnLike": { "aws:SourceArn": ["arn:aws:logs:us-east-1:0123456789:delivery-source*"] } } }, { "Sid": "AWSLogDeliveryWrite", "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "s3:PutObject", "Resource": "arn:aws:s3:::my-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:0123456789:delivery-source:*"] } } } ] }

Dalam kebijakan sebelumnya, untukaws:SourceAccount, tentukan daftar ID akun tempat 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:*.

Jika bucket memiliki kebijakan sumber daya tetapi kebijakan tersebut tidak berisi pernyataan yang ditampilkan di kebijakan sebelumnya, dan pengguna yang menyiapkan logging memiliki S3:PutBucketPolicy izin S3:GetBucketPolicy dan untuk bucket, pernyataan tersebut akan 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 di 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 to be “Action”: [“s3:GetBucketAcl”, “s3:ListBucket”]

Enkripsi sisi server bucket Amazon S3

Anda dapat melindungi data di bucket Amazon S3 dengan mengaktifkan Enkripsi sisi server dengan kunci yang dikelola Amazon S3 (SSE-S3) atau enkripsi sisi server dengan kunci yang disimpan di (SSE-KMS). AWS KMS AWS Key Management Service 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 AWS terkelola, log akan dikirimkan dalam format yang tidak dapat dibaca.

Saat menggunakan AWS KMS kunci terkelola pelanggan, Anda dapat menentukan Nama Sumber Daya Amazon (ARN) kunci terkelola pelanggan saat mengaktifkan enkripsi bucket. Anda harus menambahkan hal berikut ke kebijakan kunci untuk kunci terkelola 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 terkelola pelanggan, Anda dapat menentukan Nama Sumber Daya Amazon (ARN) kunci terkelola pelanggan saat mengaktifkan enkripsi bucket. Anda harus menambahkan hal berikut ke kebijakan kunci untuk kunci terkelola 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:delivery-source:*"] } } }

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

Log yang dikirim ke Kinesis Data Firehose

Izin pengguna

Untuk mengaktifkan pengiriman log ke Kinesis Data Firehose, Anda harus masuk dengan izin berikut.

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:PutDeliverySource", "logs:GetDeliverySource", "logs:DeleteDeliverySource", "logs:DescribeDeliverySources", "logs:PutDeliveryDestination", "logs:GetDeliveryDestination", "logs:DeleteDeliveryDestination", "logs:DescribeDeliveryDestinations", "logs:CreateDelivery", "logs:GetDelivery", "logs:DeleteDelivery", "logs:DescribeDeliveries", "logs:PutDeliveryDestinationPolicy", "logs:GetDeliveryDestinationPolicy", "logs:DeleteDeliveryDestinationPolicy" ], "Resource": [ "arn:aws:logs:region:account-id:delivery-source:*", "arn:aws:logs:region:account-id:delivery:*", "arn:aws:logs:region:account-id:delivery-destination:*" ] }, { "Version": "2012-10-17", "Statement": [ { "Sid": "AllowUpdatesToResourcePolicyFH", "Effect": "Allow", "Action": [ "firehose:TagDeliveryStream", "iam:CreateServiceLinkedRole" ], "Resource": [ "arn:aws:firehose:region:account-id:deliverystream/delivery-stream-name" ] } ] }] }

Peran IAM yang digunakan untuk izin sumber daya

Karena Kinesis Data Firehose tidak menggunakan AWS kebijakan sumber daya, menggunakan peran IAM saat menyiapkan log ini untuk dikirim ke Kinesis Data Firehose. AWS membuat peran terkait layanan bernama. AWSServiceRoleForLogDelivery Peran terkait layanan ini mencakup izin berikut.

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "firehose:PutRecord", "firehose:PutRecordBatch", "firehose:ListTagsForDeliveryStream" ], "Resource": "*", "Condition": { "StringEquals": { "aws:ResourceTag/LogDeliveryEnabled": "true" } }, "Effect": "Allow" } ] }

Peran terkait layanan ini memberikan izin untuk semua aliran pengiriman Kinesis Data Firehose yang memiliki tag yang disetel ke. LogDeliveryEnabled true AWS memberikan tag ini ke aliran pengiriman tujuan saat Anda mengatur logging.

Peran terkait layanan ini juga memiliki kebijakan kepercayaan yang memungkinkan layanan delivery.logs.amazonaws.com utama untuk mengasumsikan peran yang terhubung dengan layanan yang diperlukan. Kebijakan kepercayaan tersebut adalah sebagai berikut:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "delivery.logs.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Pencegahan confused deputy lintas layanan

Masalah confused deputy adalah masalah keamanan saat entitas yang tidak memiliki izin untuk melakukan suatu tindakan dapat memaksa entitas yang lebih berhak untuk melakukan tindakan tersebut. Pada tahun AWS, peniruan lintas layanan dapat mengakibatkan masalah wakil yang membingungkan. Peniruan identitas lintas layanan dapat terjadi ketika satu layanan (layanan pemanggil) memanggil layanan lain (layanan yang dipanggil). Layanan pemanggil dapat dimanipulasi menggunakan izinnya untuk bertindak pada sumber daya pelanggan lain dengan cara yang seharusnya tidak dilakukannya kecuali bila memiliki izin untuk mengakses. Untuk mencegah hal ini, AWS menyediakan alat yang membantu Anda melindungi data untuk semua layanan dengan pengguna utama layanan yang telah diberi akses ke sumber daya di akun Anda.

Sebaiknya gunakan kunci konteks kondisi aws:SourceAccountglobal aws:SourceArndan global dalam kebijakan sumber daya untuk membatasi izin yang diberikan CloudWatch Log dan Amazon S3 ke layanan yang menghasilkan log. Jika Anda menggunakan kedua kunci konteks kondisi global, aws:SourceAccount nilai dan akun dalam aws:SourceArn nilai harus menggunakan ID akun yang sama saat digunakan dalam pernyataan kebijakan yang sama.

Nilai aws:SourceArn harus berupa ARN dari sumber pengiriman yang menghasilkan log.

Cara paling efektif untuk melindungi dari masalah confused deputy adalah dengan menggunakan kunci konteks kondisi global aws:SourceArn dengan ARN sumber daya penuh. Jika Anda tidak mengetahui ARN lengkap sumber daya atau jika Anda menentukan beberapa sumber daya, gunakan kunci kondisi konteks aws:SourceArn global dengan wildcard (*) untuk bagian ARN yang tidak diketahui.

Kebijakan di bagian sebelumnya dari halaman ini menunjukkan bagaimana Anda dapat menggunakan kunci konteks kondisi aws:SourceAccount global aws:SourceArn dan global untuk mencegah masalah deputi yang membingungkan.

CloudWatch Log pembaruan ke kebijakan AWS terkelola

Lihat detail tentang pembaruan kebijakan AWS terkelola untuk CloudWatch Log sejak layanan ini mulai melacak perubahan ini. Untuk peringatan otomatis tentang perubahan pada halaman ini, berlangganan umpan RSS di halaman riwayat Dokumen CloudWatch Log.

Perubahan Deskripsi Tanggal

AWSServiceRoleForLogDelivery kebijakan peran terkait layanan — Pembaruan ke kebijakan yang ada

CloudWatch Log mengubah izin dalam kebijakan IAM yang terkait dengan peran terkait AWSServiceRoleForLogDeliverylayanan. Perubahan berikut dibuat:

  • Kunci firehose:ResourceTag/LogDeliveryEnabled": "true" kondisi diubah menjadiaws:ResourceTag/LogDeliveryEnabled": "true".

15 Juli 2021

CloudWatch Log mulai melacak perubahan

CloudWatch Log mulai melacak perubahan untuk kebijakan yang AWS dikelola.

10 Juni 2021