Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Aktifkan pencatatan dari AWS layanan
Meskipun banyak layanan mempublikasikan log hanya ke CloudWatch Log, beberapa AWS layanan dapat mempublikasikan log langsung ke Amazon Simple Storage Service atau Amazon Data Firehose. Jika persyaratan utama Anda untuk log adalah penyimpanan atau pemrosesan di salah satu layanan ini, Anda dapat dengan mudah memiliki layanan yang menghasilkan log mengirimkannya langsung ke Amazon S3 atau Firehose tanpa pengaturan tambahan.
Bahkan ketika log dipublikasikan langsung ke Amazon S3 atau Firehose, biaya berlaku. 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 [Izin V1] yang Didukung dan Didukung [Izin V2] dalam tabel. Untuk informasi tentang izin yang diperlukan ini, lihat bagian setelah tabel.
Sumber log | Jenis log | CloudWatch Logs | Amazon S3 | Firehose |
---|---|---|---|---|
Log yang dipasok | ||||
Log kustom |
Didukung |
|||
Log kustom |
Didukung |
|||
Log yang dipasok | Didukung [Izin V2] | Didukung [Izin V2] | Didukung [Izin V2] | |
Log yang dipasok | ||||
Log yang dipasok | Didukung [Izin V1] | |||
Log kustom |
Didukung |
|||
Log yang dipasok | Didukung [Izin V1] | Didukung [Izin V1] | ||
Log yang dipasok | Didukung [Izin V1] | |||
Log kustom |
Didukung |
|||
Log kustom |
Didukung |
|||
Amazon CodeWhisperer log peristiwa |
Log yang dipasok | Didukung [Izin V2] | Didukung [Izin V2] | Didukung [Izin V2] |
Log yang dipasok | Didukung [Izin V1] | |||
Log kustom |
Didukung |
|||
Log kustom |
Didukung |
|||
Log yang dipasok | Didukung [Izin V1] | Didukung [Izin V1] | ||
Log kustom |
Didukung |
|||
Log kustom |
Didukung |
|||
Log yang dipasok |
Didukung |
|||
Log yang dipasok |
Didukung |
|||
Log yang dipasok | Didukung [Izin V1] | Didukung [Izin V1] | Didukung [Izin V1] | |
Log kustom |
Didukung |
|||
Log yang dipasok | Didukung [Izin V1] | |||
Log yang dipasok | Didukung [Izin V1] | Didukung [Izin V1] | Didukung [Izin V1] | |
Log yang dipasok | Didukung [Izin V1] | |||
Log kustom |
Didukung |
|||
Log yang dipasok | Didukung [Izin V2] | Didukung [Izin V2] | Didukung [Izin V2] | |
Log yang dipasok | Didukung [Izin V1] | Didukung [Izin V1] | Didukung [Izin V1] | |
Log kustom |
Didukung |
|||
Log yang dipasok | Didukung [Izin V1] | Didukung [Izin V1] | Didukung [Izin V1] | |
Log kustom |
Didukung |
|||
Log kustom |
Didukung |
|||
Log yang dipasok | Didukung [Izin V1] | Didukung [Izin V1] | Didukung [Izin V1] | |
Log yang dipasok | ||||
Log yang dipasok | Didukung [Izin V1] | Didukung [Izin V1] | ||
Log yang dipasok | Didukung [Izin V1] | Didukung [Izin V1] | ||
Log kustom |
Didukung |
|||
Log yang dipasok | Didukung [Izin V1] | Didukung [Izin V1] | ||
Log yang dipasok | Didukung [Izin V1] | |||
Log kustom |
Didukung |
|||
Log yang dipasok | Didukung [Izin V1] | Didukung [Izin V1] | Didukung [Izin V1] | |
Log kustom |
Didukung |
|||
Log kustom |
Didukung |
|||
Log kustom |
Didukung |
|||
Log yang dipasok |
Didukung |
|||
Log yang dipasok | ||||
Log yang dipasok | ||||
Log yang dipasok | ||||
Log yang dipasok | ||||
Log kustom |
Didukung |
|||
Log kebijakan perlindungan data Amazon Simple Notification Service |
Log kustom |
Didukung |
||
Log yang dipasok | Didukung [Izin V1] | |||
AWS Step Functions Alur Kerja Ekspres dan Log Alur Kerja Standar |
Log yang dipasok | |||
Log yang dipasok | ||||
Log yang dipasok | ||||
Log yang dipasok | ||||
Log yang dipasok | Didukung |
Didukung [Izin V1] | Didukung [Izin V1] | |
Log yang dipasok | Didukung [Izin V1] | Didukung [Izin V1] | Didukung [Izin V1] | |
Log yang dipasok | Didukung [Izin V1] | Didukung [Izin V1] | Didukung |
|
Amazon WorkMail log |
Log yang dipasok | 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 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. Untuk pengiriman lintas akun, Anda harus membuat sendiri kebijakan izin secara manual.
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
catatan
Saat Anda menentukan
logs:DescribeLogGroups
,logs:DescribeResourcePolicies
, ataulogs:PutResourcePolicy
izin, pastikan untuk mengaturResource
barisnya untuk menggunakan*
wildcard, alih-alih hanya menentukan satu nama grup log. ARN Sebagai contoh,"Resource": "arn:aws:logs:us-east-1:111122223333:log-group:*"
.
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 mungkin mengalami batas 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
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 vended 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 lainnya, mengaktifkan ACL bucket untuk CloudFront juga memberikan izin ke semua sumber log lain yang menggunakan bucket ini.
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 akun IDS yang log dikirimkan ke bucket ini. Untukaws:SourceArn
, tentukan daftar ARNs 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
menjadi “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 (-). AWS KMS 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 AWS terkelola, log akan dikirimkan dalam format yang tidak dapat dibaca.
Saat menggunakan AWS KMS kunci terkelola pelanggan, Anda dapat menentukan Amazon Resource Name (ARN) dari 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 Amazon Resource Name (ARN) dari 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 akun IDS tempat log dikirimkan ke bucket ini. Untukaws:SourceArn
, tentukan daftar ARNs sumber daya yang menghasilkan log, dalam formulirarn:aws:logs:
. source-region
:source-account-id
:*
Log dikirim ke Firehose
Bagian ini berlaku ketika jenis log yang tercantum dalam tabel di bagian sebelumnya dikirim ke Firehose:
Izin pengguna
Untuk dapat mengatur pengiriman salah satu jenis log ini ke Firehose untuk pertama kalinya, Anda harus masuk ke akun dengan izin berikut.
logs:CreateLogDelivery
firehose:TagDeliveryStream
iam:CreateServiceLinkedRole
Jika salah satu dari jenis log ini sudah dikirim ke Firehose, maka untuk mengatur pengiriman salah satu dari jenis log ini ke Firehose, Anda hanya perlu memiliki izin dan izin. logs:CreateLogDelivery
firehose:TagDeliveryStream
IAMperan yang digunakan untuk izin
Karena Firehose tidak menggunakan kebijakan sumber daya, AWS menggunakan IAM peran saat menyiapkan log ini untuk dikirim ke 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 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 Firehose.
Pengiriman log kerja terdiri dari tiga elemen:
A
DeliverySource
, yang merupakan objek logis yang mewakili sumber daya yang benar-benar mengirim log.A
DeliveryDestination
, yang merupakan objek logis yang mewakili tujuan pengiriman yang sebenarnya.A
Delivery
, yang menghubungkan sumber pengiriman ke tujuan pengiriman
Untuk mengonfigurasi pengiriman log antara AWS layanan yang didukung dan tujuan, Anda harus melakukan hal berikut:
Buat sumber pengiriman dengan PutDeliverySource.
Buat tujuan pengiriman dengan PutDeliveryDestination.
Jika Anda mengirimkan log lintas akun, Anda harus menggunakan PutDeliveryDestinationPolicydi akun tujuan untuk menetapkan IAM kebijakan ke tujuan. Kebijakan ini mengotorisasi pembuatan pengiriman dari sumber pengiriman di akun A ke tujuan pengiriman di akun B. Untuk pengiriman lintas akun, Anda harus membuat sendiri kebijakan izin secara manual.
Buat pengiriman dengan memasangkan tepat satu sumber pengiriman dan satu tujuan pengiriman, dengan menggunakan CreateDelivery.
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 IAM peran yang Anda masuki.
penting
Anda bertanggung jawab untuk menghapus sumber daya pengiriman log setelah menghapus sumber daya penghasil log. Untuk melakukannya, ikuti langkah-langkah ini.
Hapus
Delivery
dengan menggunakan DeleteDeliveryoperasi.Hapus
DeliverySource
dengan menggunakan DeleteDeliverySourceoperasi.Jika yang
DeliveryDestination
terkait denganDeliverySource
yang baru saja Anda hapus hanya digunakan untuk spesifik iniDeliverySource
, maka Anda dapat menghapusnya dengan menggunakan DeleteDeliveryDestinationsoperasi.
Daftar Isi
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": "ReadWriteAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:GetDelivery", "logs:GetDeliverySource", "logs:PutDeliveryDestination", "logs:GetDeliveryDestinationPolicy", "logs:DeleteDeliverySource", "logs:PutDeliveryDestinationPolicy", "logs:CreateDelivery", "logs:GetDeliveryDestination", "logs:PutDeliverySource", "logs:DeleteDeliveryDestination", "logs:DeleteDeliveryDestinationPolicy", "logs:DeleteDelivery" ], "Resource": [ "arn:aws:logs:
region
:account-id
:delivery:*", "arn:aws:logs:region
:account-id
:delivery-source:*", "arn:aws:logs:region
:account-id
:delivery-destination:*" ] }, { "Sid": "ListAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:DescribeDeliveryDestinations", "logs:DescribeDeliverySources", "logs:DescribeDeliveries" ], "Resource": "*" }, { "Sid": "AllowUpdatesToResourcePolicyCWL", "Effect": "Allow", "Action": [ "logs:PutResourcePolicy", "logs:DescribeResourcePolicies", "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:region
:account-id
:*" ] } ] }
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": "ReadWriteAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:GetDelivery", "logs:GetDeliverySource", "logs:PutDeliveryDestination", "logs:GetDeliveryDestinationPolicy", "logs:DeleteDeliverySource", "logs:PutDeliveryDestinationPolicy", "logs:CreateDelivery", "logs:GetDeliveryDestination", "logs:PutDeliverySource", "logs:DeleteDeliveryDestination", "logs:DeleteDeliveryDestinationPolicy", "logs:DeleteDelivery" ], "Resource": [ "arn:aws:logs:
region
:account-id
:delivery:*", "arn:aws:logs:region
:account-id
:delivery-source:*", "arn:aws:logs:region
:account-id
:delivery-destination:*" ] }, { "Sid": "ListAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:DescribeDeliveryDestinations", "logs:DescribeDeliverySources", "logs:DescribeDeliveries" ], "Resource": "*" }, { "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 akun IDS yang log dikirimkan ke bucket ini. Untukaws:SourceArn
, tentukan daftar ARNs 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
menjadi “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 (-). AWS KMS 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 AWS terkelola, log akan dikirimkan dalam format yang tidak dapat dibaca.
Saat menggunakan AWS KMS kunci terkelola pelanggan, Anda dapat menentukan Amazon Resource Name (ARN) dari 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 Amazon Resource Name (ARN) dari 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 akun IDS tempat log dikirimkan ke bucket ini. Untukaws:SourceArn
, tentukan daftar ARNs sumber daya yang menghasilkan log, dalam formulirarn:aws:logs:
. source-region
:source-account-id
:*
Log dikirim ke Firehose
Izin pengguna
Untuk mengaktifkan pengiriman log ke Firehose, Anda harus masuk dengan izin berikut.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ReadWriteAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:GetDelivery", "logs:GetDeliverySource", "logs:PutDeliveryDestination", "logs:GetDeliveryDestinationPolicy", "logs:DeleteDeliverySource", "logs:PutDeliveryDestinationPolicy", "logs:CreateDelivery", "logs:GetDeliveryDestination", "logs:PutDeliverySource", "logs:DeleteDeliveryDestination", "logs:DeleteDeliveryDestinationPolicy", "logs:DeleteDelivery" ], "Resource": [ "arn:aws:logs:
region
:account-id
:delivery:*", "arn:aws:logs:region
:account-id
:delivery-source:*", "arn:aws:logs:region
:account-id
:delivery-destination:*" ] }, { "Sid": "ListAccessForLogDeliveryActions", "Effect": "Allow", "Action": [ "logs:DescribeDeliveryDestinations", "logs:DescribeDeliverySources", "logs:DescribeDeliveries" ], "Resource": "*" }, { "Sid": "AllowUpdatesToResourcePolicyFH", "Effect": "Allow", "Action": [ "firehose:TagDeliveryStream" ], "Resource": [ "arn:aws:firehose:region
:account-id
:deliverystream/*" ] }, { "Sid": "CreateServiceLinkedRole", "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole" ], "Resource": "arn:aws:iam::account-id
:role/aws-service-role/delivery.logs.amazonaws.com/AWSServiceRoleForLogDelivery" } ] }
IAMperan yang digunakan untuk izin sumber daya
Karena Firehose tidak menggunakan kebijakan sumber daya, AWS menggunakan IAM peran saat menyiapkan log ini untuk dikirim ke 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 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" } ] }
Izin khusus layanan
Selain izin khusus tujuan yang tercantum di bagian sebelumnya, beberapa layanan memerlukan otorisasi eksplisit bahwa pelanggan diizinkan mengirim log dari sumber daya mereka, sebagai lapisan keamanan tambahan. Ini mengotorisasi AllowVendedLogDeliveryForResource
tindakan untuk sumber daya yang menjual log dalam layanan itu. Untuk layanan ini, gunakan kebijakan berikut dan ganti service
and resource-type
dengan nilai-nilai yang sesuai. Untuk nilai khusus layanan untuk bidang ini, lihat halaman dokumentasi layanan tersebut untuk log penjual.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ServiceLevelAccessForLogDelivery", "Effect": "Allow", "Action": [ "
service
:AllowVendedLogDeliveryForResource" ], "Resource": "arn:aws:service
:region
:account-id
:resource-type
/*" } ] }
Izin khusus konsol
Selain izin yang tercantum di bagian sebelumnya, jika Anda menyiapkan pengiriman log menggunakan konsol alih-alihAPIs, Anda juga memerlukan izin tambahan berikut:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowLogDeliveryActionsConsoleCWL", "Effect": "Allow", "Action": [ "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:us-east-1:
111122223333
:log-group:*" ] }, { "Sid": "AllowLogDeliveryActionsConsoleS3", "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::*" ] }, { "Sid": "AllowLogDeliveryActionsConsoleFH", "Effect": "Allow", "Action": [ "firehose:ListDeliveryStreams", "firehose:DescribeDeliveryStream" ], "Resource": [ "*" ] } ] }
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 yang dipanggil) memanggil layanan lain (layanan yang dipanggil). Layanan pemanggilan 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:SourceArn
aws:SourceAccount
aws:SourceOrgID
,, dan aws:SourceOrgPaths
global dalam kebijakan sumber daya untuk membatasi izin yang diberikan CloudWatch Log kepada layanan lain ke sumber daya. Gunakan aws:SourceArn
untuk mengaitkan hanya satu sumber daya dengan akses lintas layanan. Gunakan aws:SourceAccount
untuk membiarkan sumber daya apa pun di akun itu dikaitkan dengan penggunaan lintas layanan. Gunakan aws:SourceOrgID
untuk memungkinkan sumber daya apa pun dari akun apa pun dalam suatu organisasi dikaitkan dengan penggunaan lintas layanan. Gunakan aws:SourceOrgPaths
untuk mengaitkan sumber daya apa pun dari akun dalam AWS Organizations jalur dengan penggunaan lintas layanan. Untuk informasi selengkapnya tentang menggunakan dan memahami jalur, lihat Memahami jalur AWS Organizations entitas.
Cara paling efektif untuk melindungi dari masalah wakil yang membingungkan adalah dengan menggunakan kunci konteks kondisi aws:SourceArn
global dengan penuh ARN sumber daya. Jika Anda tidak tahu sumber daya penuh ARN atau jika Anda menentukan beberapa sumber daya, gunakan kunci kondisi konteks aws:SourceArn
global dengan karakter wildcard (*
) untuk bagian yang tidak diketahui dari file. ARN Misalnya, arn:aws:
. servicename
:*:123456789012
:*
Jika aws:SourceArn
nilainya tidak berisi ID akun, seperti bucket Amazon S3ARN, Anda harus menggunakan keduanya aws:SourceAccount
dan aws:SourceArn
untuk membatasi izin.
Untuk melindungi dari masalah wakil yang membingungkan dalam skala besar, gunakan aws:SourceOrgID
atau kunci konteks kondisi aws:SourceOrgPaths
global dengan ID organisasi atau jalur organisasi sumber daya dalam kebijakan berbasis sumber daya Anda. Kebijakan yang menyertakan aws:SourceOrgID
atau aws:SourceOrgPaths
kunci akan secara otomatis menyertakan akun yang benar dan Anda tidak perlu memperbarui kebijakan secara manual saat menambahkan, menghapus, atau memindahkan akun di organisasi Anda.
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 RSS umpan di halaman riwayat Dokumen CloudWatch Log.
Perubahan | Deskripsi | Tanggal |
---|---|---|
AWSServiceRoleForLogDelivery kebijakan peran terkait layanan — Pembaruan ke kebijakan yang sudah ada |
CloudWatch Log mengubah izin dalam IAM kebijakan yang terkait dengan peran AWSServiceRoleForLogDeliveryterkait layanan. Perubahan berikut dibuat:
|
15 Juli 2021 |
CloudWatch Log mulai melacak perubahan |
CloudWatch Log mulai melacak perubahan untuk kebijakan AWS terkelolanya. |
10 Juni 2021 |