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.
Jenis log | CloudWatch Logs | Amazon S3 | Kinesis Data Firehose |
---|---|---|---|
✓ |
|||
✓ |
|||
✓ | |||
✓ | ✓ | ||
✓ | ✓ | ||
✓ | |||
✓ |
✓ | ✓ | |
✓ |
✓ | ✓ | |
✓ |
✓ | ✓ | |
✓ | |||
✓ |
✓ |
✓ | |
✓ |
|||
✓ |
|||
✓ | |||
AWS Step FunctionsAlur Kerja Ekspres dan Log Alur Kerja Standar |
✓ |
||
✓ |
|||
✓ | ✓ | ||
✓ | ✓ | ✓ |
Bagian berikut menyediakan detail selengkapnya untuk setiap tujuan ini.
Log yang dikirim ke log dikirim ke CloudWatch log
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
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 log 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 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.
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:SourceAccount
global aws:SourceArn
dan 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:
|
15 Juli 2021 |
CloudWatch Log mulai melacak perubahan |
CloudWatch Log mulai melacak perubahan untuk kebijakanAWS terkelola. |
10 Juni 2021 |