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 Logs, 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 pencatatan 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. Layanan yang memerlukan izin tambahan ini dicatat sebagai [Izin] yang Didukung dalam tabel. Untuk informasi tentang izin yang diperlukan ini, lihat bagian setelah tabel.
Logging yang membutuhkan izin tambahan
Beberapa AWS layanan menggunakan infrastruktur umum untuk mengirim lognya ke CloudWatch Logs, 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 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 dikirim ke CloudWatch loggs
penting
Saat mengatur tipe log dalam daftar berikut ini untuk dikirim ke CloudWatch Logs, 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 Logs untuk pertama kalinya, Anda harus masuk ke akun dengan izin berikut ini.
logs:CreateLogDelivery
logs:PutResourcePolicy
logs:DescribeResourcePolicies
logs:DescribeLogGroups
Jika salah satu jenis log ini sudah dikirim ke grup CloudWatch log di Logs, 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 pencatatan memiliki logs:DescribeLogGroups
izin logs:PutResourcePolicy
logs:DescribeResourcePolicies
, dan grup log, maka AWS secara otomatis membuat kebijakan berikut ini saat Anda mulai mengirim CloudWatch log ke Logs.
{ "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 kebijakan sumber daya grup log
Layanan ini harus mencantumkan grup log tempat mereka mengirim log dalam kebijakan sumber daya, dan kebijakan sumber daya CloudWatch loggs dibatasi hingga 5120 karakter. Layanan yang mengirimkan log ke sejumlah besar grup log dapat mencapai batasan ini.
Untuk mengurangi ini, CloudWatch Logs memantau ukuran kebijakan sumber daya yang digunakan oleh layanan yang mengirim log, dan saat mendeteksi bahwa kebijakan mendekati batas ukuran 5120 karakter, CloudWatch Logs 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:
CloudFront log akses dan log akses streaming. CloudFront menggunakan model izin yang berbeda dari layanan lain dalam daftar ini. Untuk informasi selengkapnya, lihat Izin yang diperlukan untuk mengonfigurasi pencatatan log standar dan untuk mengakses berkas log Anda.
Umpan data Instans Spot Amazon EC2
log alur AWS Global Accelerator
Log broker Amazon Managed Streaming for Apache Kafka
Log akses Penyeimbang Beban Jaringan
Log Network Firewall AWS
log alur Amazon Virtual Private Cloud
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 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 mengatur pencatatan 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 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, 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 Anda menggunakan AWS KMS kunci yang dikelola pelanggan, Anda dapat menentukan Nama Sumber Daya Amazon (ARN) dari kunci yang dikelola pelanggan saat Anda mengaktifkan enkripsi bucket. Anda harus menambahkan kebijakan kunci berikut ini untuk kunci yang dikelola pelanggan Anda (bukan 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 Anda menggunakan AWS KMS kunci yang dikelola pelanggan, Anda dapat menentukan Nama Sumber Daya Amazon (ARN) dari kunci yang dikelola pelanggan saat Anda mengaktifkan enkripsi bucket. Anda harus menambahkan kebijakan kunci berikut ini untuk kunci yang dikelola pelanggan Anda (bukan 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 dikirimkan 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 saat 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, maka peran IAM 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 Deputi Bingung Lintas Layanan
Masalah deputi yang membingungkan adalah masalah keamanan di mana entitas yang tidak memiliki izin untuk melakukan tindakan dapat memaksa entitas yang lebih istimewa untuk melakukan tindakan. Pada tahunAWS, peniruan lintas layanan dapat mengakibatkan masalah wakil yang membingungkan. Peniruan identitas 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 prinsip layanan yang telah diberikan akses ke sumber daya di akun Anda.
Sebaiknya gunakan kunci konteks kondisi aws:SourceAccount
global aws:SourceArn
dan 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 AWS sumber daya yang menghasilkan log.
Cara paling efektif untuk melindungi dari masalah wakil yang membingungkan adalah dengan menggunakan kunci konteks kondisi aws: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 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 Logs 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 — Perbarui ke kebijakan yang ada |
CloudWatch Log mengubah izin dalam kebijakan IAM yang terkait dengan peran terkait AWSServiceRoleForLogDeliverylayanan. Perubahan berikut dibuat:
|
15 Juli 2021 |
CloudWatch Logs mulai melacak perubahan |
CloudWatch Logs mulai melacak perubahan untuk kebijakan yang AWS dikelola. |
10 Juni 2021 |