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 Notificatinos AWS Pengguna cocok dengan peristiwa yang dipancarkan ke EventBridge Amazon, ia mengirimkan pemberitahuan 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 ke ALARM alarm bernamaServerCpuTooHigh.

{ "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 SNS notifikasi Amazon

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, lihat tujuan SNS acara Amazon.

Untuk setiap keadaan yang dapat diambil alarm, Anda dapat mengonfigurasi alarm untuk mengirim pesan ke suatu SNS topik. Setiap SNS topik Amazon yang Anda konfigurasikan untuk status pada alarm tertentu dihitung terhadap batas jumlah tindakan yang dapat Anda konfigurasikan untuk alarm dan status tersebut. Anda dapat mengirim pesan ke SNS topik Amazon yang sama dari alarm apa pun di akun Anda, dan menggunakan SNS topik Amazon yang sama untuk konsumen aplikasi (A2A) dan orang (A2P). Karena konfigurasi ini dilakukan pada tingkat alarm, hanya alarm yang telah Anda konfigurasikan mengirim pesan ke SNS topik Amazon yang dipilih.

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 SNS topik Amazon menggunakan AWS Management Console. Atau untuk informasi selengkapnya, 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 SNS pemberitahuan Amazon untuk status yang ingin Anda beri tahu, dan pilih SNS topik Amazon yang Anda buat di langkah sebelumnya untuk mengirim pemberitahuan email saat alarm memasuki status yang dipilih.

catatan

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

Mencegah masalah keamanan wakil yang membingungkan

Masalah deputi yang bingung adalah masalah keamanan di mana entitas yang tidak memiliki izin untuk melakukan tindakan dapat memaksa entitas yang lebih istimewa untuk melakukan tindakan. 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:SourceArnaws:SourceAccountaws:SourceOrgID,, dan aws:SourceOrgPathsglobal dalam kebijakan sumber daya untuk membatasi izin yang SNS diberikan Amazon 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.

Nilai aws:SourceArn harus berupa alarm ARN 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 alarm ARN menyertakan ASCII non-karakter apa pun, gunakan hanya kunci kondisi aws:SourceAccount global untuk membatasi izin.

Menyiapkan SNS topik Amazon menggunakan AWS Management Console

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

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

  2. Di SNS dasbor Amazon, di bawah Tindakan umum, 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 Topik ARN untuk tugas berikutnya (misalnya, arn:aws:sns:us-east- 1:111122223333:my-topic).

Untuk berlangganan suatu SNS topik
  1. Buka SNS konsol Amazon di https://console.aws.amazon.com/sns/v3/home.

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

  3. Di kotak dialog Buat langganan, untuk Topik ARN, tempel topik ARN yang Anda buat di 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 AmazonSNS.

Untuk memublikasikan pesan pengujian ke suatu SNS topik
  1. Buka SNS konsol Amazon 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 SNS topik menggunakan AWS CLI

Pertama, Anda membuat SNS topik, dan kemudian Anda mempublikasikan pesan langsung ke topik untuk menguji bahwa Anda telah mengonfigurasinya dengan benar.

Untuk mengatur SNS topik
  1. Anda harus membuat topik dengan menggunakan perintah create-topic sebagai berikut.

    aws sns create-topic --name my-topic

    Amazon SNS mengembalikan topik ARN 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 yang berikut ini:

    { "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 mengembalikan yang berikut ini:

    { "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 mengembalikan yang berikut ini.

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

Skema SNS pemberitahuan Amazon saat alarm berubah status

Bagian ini mencantumkan skema notifikasi yang dikirim ke SNS topik Amazon 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] }