Memberikan notifikasi kepada pengguna tentang perubahan alarm - Amazon CloudWatch

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

Memberikan notifikasi kepada pengguna tentang perubahan alarm

Bagian ini menjelaskan bagaimana Anda dapat menggunakan Pemberitahuan AWS Pengguna atau Layanan Pemberitahuan Sederhana Amazon agar pengguna diberi tahu tentang perubahan alarm.

Menyiapkan Pemberitahuan AWS Pengguna

Anda dapat menggunakan Pemberitahuan AWS Pengguna untuk mengatur saluran pengiriman agar mendapat pemberitahuan tentang perubahan status CloudWatch alarm dan peristiwa perubahan konfigurasi. Anda akan menerima sebuah notifikasi saat ada sebuah peristiwa yang cocok dengan sebuah aturan yang Anda tentukan. Anda dapat menerima notifikasi untuk peristiwa-peristiwa melalui beberapa saluran, termasuk email, notifikasi obrolan AWS Chatbot, atau notifikasi push AWS Console Mobile Application. Anda juga dapat melihat notifikasi di Pusat Notifikasi Konsol. Notifikasi Pengguna mendukung agregasi, hal ini akan dapat mengurangi jumlah notifikasi yang Anda terima selama peristiwa-peristiwa tertentu.

Konfigurasi notifikasi yang Anda buat dengan Pemberitahuan AWS Pengguna tidak dihitung terhadap batas jumlah tindakan yang dapat Anda konfigurasikan per status alarm target. Karena Pemberitahuan AWS Pengguna cocok dengan peristiwa yang dipancarkan ke Amazon EventBridge, pemberitahuan akan mengirimkan notifikasi untuk semua alarm di akun Anda dan Wilayah yang dipilih, kecuali jika Anda menentukan filter lanjutan untuk mengizinkan atau menolak daftar alarm atau pola tertentu.

Contoh filter lanjutan berikut cocok dengan perubahan status alarm dari OK menjadi ALARM pada alarm bernama ServerCpuTooHigh.

{ "detail": { "alarmName": ["ServerCpuTooHigh"], "previousState": { "value": ["OK"] }, "state": { "value": ["ALARM"] } } }

Anda dapat menggunakan salah satu properti yang diterbitkan oleh alarm dalam EventBridge acara untuk membuat filter. Untuk informasi selengkapnya, lihat Acara alarm dan EventBridge.

Menyiapkan notifikasi Amazon SNS

Anda dapat menggunakan Amazon Simple Notification Service untuk mengirim pesan application-to-application (A2A) dan pesan application-to-person (A2P), termasuk pesan teks seluler (SMS) dan pesan email. Untuk informasi selengkapnya, silakan lihat destinasi peristiwa Amazon SNS.

Untuk setiap status yang dapat diambil alarm, Anda dapat mengonfigurasi alarm tersebut untuk mengirim pesan ke sebuah topik SNS. Setiap topik Amazon SNS yang Anda konfigurasi untuk sebuah status pada alarm tertentu akan terhitung dalam batasan jumlah tindakan yang dapat Anda konfigurasi untuk alarm dan status tersebut. Anda dapat mengirim pesan ke topik Amazon SNS yang sama dari alarm apa pun yang ada di akun Anda, dan menggunakan topik Amazon SNS yang sama untuk konsumen aplikasi (A2A) dan perorangan (A2P). Karena konfigurasi ini diatur pada tingkat alarm, hanya alarm yang telah Anda konfigurasikan saja yang akan mengirim pesan ke topik Amazon SNS yang Anda pilih.

Pertama, Anda harus membuat sebuah topik, lalu berlangganan padanya. Anda dapat secara opsional menerbitkan sebuah pesan uji ke topik tersebut. Sebagai contoh, silakan lihat Menyiapkan topik Amazon SNS menggunakan AWS Management Console. Atau untuk informasi selengkapnya, silakan lihat Memulai Amazon SNS.

Atau, jika Anda berencana untuk menggunakan AWS Management Console untuk membuat CloudWatch alarm Anda, Anda dapat melewati prosedur ini karena Anda dapat membuat topik saat Anda membuat alarm.

Saat Anda membuat CloudWatch alarm, Anda dapat menambahkan tindakan untuk status target apa pun yang dimasukkan alarm. Tambahkan sebuah notifikasi Amazon SNS untuk status yang notifikasinya ingin Anda dapatkan, dan kemudian pilih topik Amazon SNS yang Anda buat di langkah sebelumnya untuk mengirim notifikasi melalui email saat alarm berada dalam status yang dipilih.

catatan

Saat Anda membuat topik Amazon SNS, Anda memilih untuk menjadikannya topik standar atau topik FIFO. CloudWatch menjamin publikasi semua pemberitahuan alarm untuk kedua jenis topik. Namun, bahkan jika Anda menggunakan topik FIFO, dalam kasus yang jarang terjadi CloudWatch mengirimkan pemberitahuan ke topik yang rusak. Jika Anda menggunakan sebuah topik FIFO, maka alarm menyetel ID grup pesan dari notifikasi alarm menjadi hash ARN alarm tersebut.

Mencegah masalah keamanan wakil yang membingungkan

Masalah "confused deputy" adalah masalah keamanan saat entitas yang tidak memiliki izin untuk melakukan suatu tindakan dapat memaksa entitas yang memilik hak akses lebih tinggi 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 principal layanan yang telah diberi akses ke sumber daya di akun Anda.

Sebaiknya gunakan kunci konteks kondisi aws:SourceArnaws:SourceAccountaws:SourceOrgID,, dan aws:SourceOrgPathsglobal dalam kebijakan sumber daya untuk membatasi izin yang diberikan Amazon SNS 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 aws: SourceOrgPaths di Panduan Pengguna IAM.

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

Jika aws:SourceArn nilainya tidak berisi ID akun, seperti ARN bucket Amazon S3, 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.

Nilai aws:SourceArn harus ARN alarm yang mengirim notifikasi.

Contoh berikut menunjukkan bagaimana Anda dapat menggunakan kunci konteks kondisi aws:SourceAccount global aws:SourceArn dan CloudWatch untuk mencegah masalah wakil yang membingungkan.

{ "Statement": [{ "Effect": "Allow", "Principal": { "Service": "cloudwatch.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:us-east-2:444455556666:MyTopic", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:cloudwatch:us-east-2:111122223333:alarm:*" }, "StringEquals": { "aws:SourceAccount": "111122223333" } } }] }

Jika sebuah ARN alarm menyertakan karakter non-ASCII, maka Anda hanya bisa menggunakan kunci kondisi global aws:SourceAccount untuk membatasi izin.

Menyiapkan topik Amazon SNS menggunakan AWS Management Console

Pertama, Anda harus membuat sebuah topik, lalu berlangganan padanya. Anda dapat secara opsional menerbitkan sebuah pesan uji ke topik tersebut.

Cara membuat sebuah topik SNS
  1. Buka konsol Amazon SNS di https://console.aws.amazon.com/sns/ v3/home.

  2. Pada dasbor Amazon SNS, pada Tindakan umum, silakan pilih Buat Topik.

  3. Pada kotak dialog Buat topik baru, untuk Nama topik, masukkan nama untuk topik (misalnya, my-topic).

  4. Pilih Buat topik.

  5. Salin ARN Topik untuk tugas berikutnya (misalnya, arn:aws:sns:us-east-1:111122223333:my-topic).

Cara berlangganan ke sebuah topik SNS
  1. Buka konsol Amazon SNS di https://console.aws.amazon.com/sns/ v3/home.

  2. Pada panel navigasi, silakan pilih Berlangganan, Buat berlangganan.

  3. Pada kotak dialog Buat berlangganan, untuk ARN Topik, Anda harus menempelkan ARN topik yang sudah dibuat pada tugas sebelumnya.

  4. Untuk Protokol, pilih Email.

  5. Untuk Titik Akhir, Anda harus memasukkan alamat email yang dapat Anda gunakan untuk menerima notifikasi, dan kemudian pilih Buat berlangganan.

  6. Dari aplikasi email Anda, buka pesan dari AWS Pemberitahuan dan konfirmasikan langganan Anda.

    Browser web Anda menampilkan respons konfirmasi dari Amazon SNS.

Cara menerbitkan sebuah pesan uji ke sebuah topik SNS
  1. Buka konsol Amazon SNS di https://console.aws.amazon.com/sns/ v3/home.

  2. Pada panel navigasi, silakan pilih Pengguna.

  3. Pada halaman Topik, silakan pilih topik dan pilih Terbitkan ke topik.

  4. Pada halaman Terbitkan pesan, untuk Subjek, masukkan baris subjek untuk pesan Anda, dan untuk Pesan, masukkan pesan singkat.

  5. Pilih Terbitkan Pesan.

  6. Periksa email Anda untuk mengonfirmasi bahwa Anda telah menerima pesan tersebut.

Menyiapkan topik SNS menggunakan AWS CLI

Pertama, Anda perlu membuat topik SNS, dan kemudian Anda harus menerbitkan sebuah pesan secara langsung ke topik tersebut untuk menguji apakah Anda telah mengonfigurasinya dengan benar atau tidak.

Cara menyiapkan sebuah topik SNS
  1. Anda harus membuat topik dengan menggunakan perintah create-topic sebagai berikut.

    aws sns create-topic --name my-topic

    Amazon SNS kemudian akan merespon dengan sebuah ARN topik dengan format berikut:

    { "TopicArn": "arn:aws:sns:us-east-1:111122223333:my-topic" }
  2. Buat alamat email Anda berlangganan ke topik dengan menggunakan perintah subscribe. Jika permintaan berlangganan berhasil, maka Anda akan menerima sebuah pesan email konfirmasi.

    aws sns subscribe --topic-arn arn:aws:sns:us-east-1:111122223333:my-topic --protocol email --notification-endpoint my-email-address

    Amazon SNS mengembalikan hal berikut:

    { "SubscriptionArn": "pending confirmation" }
  3. Dari aplikasi email Anda, buka pesan dari AWS Pemberitahuan dan konfirmasikan langganan Anda.

    Browser web Anda akan menampilkan respons konfirmasi dari Amazon Simple Notification Service.

  4. Periksa langganan menggunakan list-subscriptions-by-topicperintah.

    aws sns list-subscriptions-by-topic --topic-arn arn:aws:sns:us-east-1:111122223333:my-topic

    Amazon SNS akan merespons dengan hal-hal berikut:

    { "Subscriptions": [ { "Owner": "111122223333", "Endpoint": "me@mycompany.com", "Protocol": "email", "TopicArn": "arn:aws:sns:us-east-1:111122223333:my-topic", "SubscriptionArn": "arn:aws:sns:us-east-1:111122223333:my-topic:64886986-bf10-48fb-a2f1-dab033aa67a3" } ] }
  5. (Opsional) Terbitkan sebuah pesan uji ke topik tersebut dengan menggunakan perintah publish.

    aws sns publish --message "Verification" --topic arn:aws:sns:us-east-1:111122223333:my-topic

    Amazon SNS akan memberikan respons seperti berikut:

    { "MessageId": "42f189a0-3094-5cf6-8fd7-c2dde61a4d7d" }
  6. Periksa email Anda untuk mengonfirmasi bahwa Anda telah menerima pesan tersebut.

Skema notifikasi Amazon SNS saat alarm berubah status

Bagian ini mencantumkan skema notifikasi yang dikirim ke topik Amazon SNS saat alarm mengubah statusnya.

Skema saat alarm metrik berubah status

{ "AlarmName": "string", "AlarmDescription": "string", "AWSAccountId": "string", "AlarmConfigurationUpdatedTimestamp": "string", "NewStateValue": "string", "NewStateReason": "string", "StateChangeTime": "string", "Region": "string", "AlarmArn": "string", "OldStateValue": "string", "OKActions": ["string"], "AlarmActions": ["string"], "InsufficientDataActions": ["string"], "Trigger": { "MetricName": "string", "Namespace": "string", "StatisticType": "string", "Statistic": "string", "Unit": "string or null", "Dimensions": [ { "value": "string", "name": "string" } ], "Period": "integer", "EvaluationPeriods": "integer", "DatapointsToAlarm": "integer", "ComparisonOperator": "string", "Threshold": "number", "TreatMissingData": "string", "EvaluateLowSampleCountPercentile": "string or null" } }

Skema saat alarm komposit berubah status

{ "AlarmName": "string", "AlarmDescription": "string", "AWSAccountId": "string", "NewStateValue": "string", "NewStateReason": "string", "StateChangeTime": "string", "Region": "string", "AlarmArn": "string", "OKActions": [String], "AlarmActions": [String], "InsufficientDataActions": [String], "OldStateValue": "string", "AlarmRule": "string", "TriggeringChildren": [String] }