Mengaktifkan logging dariAWS layanan tertentu - 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 dariAWS layanan tertentu

Meskipun banyak layanan memublikasikan log hanya ke CloudWatch log, beberapaAWS layanan dapat memublikasikan 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 Vending pada tab Log di CloudWatch Harga Amazon.

Izin

Beberapa dariAWS layanan ini menggunakan infrastruktur umum untuk mengirim log ke CloudWatch log, Amazon S3, Amazon S3, 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 kepada AWS untuk mengaktifkan log yang akan dikirim. AWS dapat secara otomatis membuat izin tersebut ketika log diatur, atau Anda dapat membuat mereka sendiri terlebih dahulu sebelum Anda mengatur pencatatan.

Jika Anda memilih untuk membuat AWS secara otomatis mengatur izin dan kebijakan sumber daya yang diperlukan ketika Anda atau seseorang di organisasi pertama kali mengatur pengiriman log, maka pengguna yang menyiapkan pengiriman log harus memiliki izin tertentu, seperti yang dijelaskan nanti dalam 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 yang dikirim ke log dikirim ke CloudWatch log

penting

Ketika Anda mengatur jenis log di 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 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 log di CloudWatch log, lalu untuk mengatur pengiriman dari salah satu jenis log ini ke grup log yang sama, Anda hanya memerlukanlogs:CreateLogDelivery izin.

Kebijakan sumber daya grup log grup log 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 mengatur pencatatan memiliki izinlogs:PutResourcePolicy,logs:DescribeResourcePolicies, danlogs:DescribeLogGroups izin untuk grup log, kemudianAWS secara otomatis membuat kebijakan berikut ini saat Anda mulai mengirim log ke CloudWatch 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 ukuran kebijakan sumber daya grup log grup log grup log grup log

Layanan ini harus mencantumkan setiap grup log tempat log dikirim 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 mengirimkan log, dan saat 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

Ketika Anda mengatur jenis log di 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 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.

{ "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 yang log dikirimkan ke bucket ini. Untukaws:SourceArn, tentukan daftar ARN 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 pencatatan memiliki izin S3:GetBucketPolicy dan S3:PutBucketPolicy untuk bucket, pernyataan tersebut ditambahkan ke kebijakan sumber daya bucket.

Enkripsi sisi server bucket Amazon S3

Anda dapat melindungi data di bucket Amazon S3 Anda dengan mengaktifkan Server-side Encryption dengan kunci yang dikelola Amazon S3 (SSE-S3) atau enkripsi sisi server denganAWS KMS kunci yang disimpan diAWS Key Management Service (SSE-KMS). Untuk informasi lain, 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 kunciAWS terkelola tidak didukung untuk skenario ini. Jika Anda menyiapkan enkripsi menggunakan kunciAWS terkelola, log akan dikirimkan dalam format yang tidak dapat dibaca.

Ketika Anda menggunakanAWS KMS kunci yang dikelola pelanggan, Anda dapat menentukan Amazon Resource Name (ARN) dari kunci yang dikelola pelanggan saat Anda mengaktifkan enkripsi bucket. Anda harus menambahkan hal berikut ke kebijakan utama 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 kunciAWS terkelola tidak didukung untuk skenario ini. Ketika Anda menggunakanAWS KMS kunci yang dikelola pelanggan, Anda dapat menentukan Amazon Resource Name (ARN) dari kunci yang dikelola pelanggan saat Anda mengaktifkan enkripsi bucket. Anda harus menambahkan hal berikut ke kebijakan utama 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 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.

IAM role yang digunakan untuk izin

Karena Kinesis Data Firehose tidak menggunakan kebijakan sumber daya,AWS menggunakan IAM role saat mengatur log ini untuk dikirim ke Kinesis Data Firehose. AWSmembuat 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 tanda LogDeliveryEnabled yang diatur ke true. AWS memberikan tanda ini ke aliran pengiriman tujuan saat Anda mengatur pencatatan log.

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 wakil bingung lintas layanan

Masalah wakil yang bingung adalah masalah keamanan di mana entitas yang tidak memiliki izin untuk melakukan tindakan dapat memaksa entitas yang lebih istimewa untuk melakukan tindakan. DalamAWS, peniruan lintas layanan dapat mengakibatkan masalah wakil bingung. Peniruan lintas layanan dapat terjadi ketika satu layanan (layanan panggilan) memanggil layanan lain (layanan yang disebut). Layanan panggilan dapat dimanipulasi untuk menggunakan izinnya untuk bertindak atas sumber daya pelanggan lain dengan cara yang seharusnya tidak memiliki izin untuk mengakses. Untuk mencegah hal ini,AWS sediakan alat yang membantu Anda melindungi data Anda untuk semua layanan dengan prinsipal layanan yang telah diberikan akses ke sumber daya di akun Anda.

Sebaiknya gunakan kunci konteks kondisi aws:SourceAccountglobal aws:SourceArndan 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 dalamaws:SourceArn nilai harus menggunakan ID akun yang sama saat digunakan dalam pernyataan kebijakan yang sama.

Nilai-nilaiaws:SourceArn harus ARN dariAWS sumber daya yang menghasilkan log.

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

Kebijakan di bagian sebelumnya dari halaman ini menunjukkan bagaimana Anda dapat menggunakan kunci konteks kondisiaws:SourceAccount globalaws:SourceArn dan untuk mencegah masalah wakil yang membingungkan.

CloudWatch Log pembaruan untuk kebijakanAWS terkelola

Lihat detail tentang pembaruan ke kebijakanAWS terkelola untuk CloudWatch log karena layanan ini mulai melacak perubahan ini. Untuk mendapatkan pemberitahuan otomatis tentang perubahan pada halaman ini, mulai langganan umpan RSS di halaman riwayat dokumen CloudWatch log dokumen log.

Perubahan Deskripsi Tanggal

AWSServiceRoleForLogDelivery kebijakan peran terkait layanan — Pembaruan ke kebijakan yang tersedia

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

  • Kuncifirehose:ResourceTag/LogDeliveryEnabled": "true" kondisi diubah menjadiaws:ResourceTag/LogDeliveryEnabled": "true".

15 Juli 2021

CloudWatch Log mulai melacak perubahan

CloudWatch Log mulai melacak perubahan untuk kebijakanAWS terkelola.

10 Juni 2021