View a markdown version of this page

Mengelola ElastiCache notifikasi Amazon SNS - Amazon ElastiCache

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

Mengelola ElastiCache notifikasi Amazon SNS

Anda dapat mengonfigurasi ElastiCache untuk mengirim notifikasi untuk peristiwa kluster penting menggunakan Amazon Simple Notification Service (Amazon SNS). Dalam contoh ini, Anda akan mengonfigurasi klaster dengan Amazon Resource Name (ARN) dari topik Amazon SNS untuk menerima notifikasi.

catatan
  • Topik ini mengasumsikan bahwa Anda telah mendaftar ke Amazon SNS dan telah mengatur serta berlangganan topik Amazon SNS. Untuk informasi selengkapnya tentang cara melakukannya, lihat Panduan Developer Amazon Simple Notification Service.

  • Secara default, API modify-replication-group mempengaruhi semua grup di Wilayah dan bukan hanya grup yang ditentukan saat ini. Jika Anda ingin mengonfigurasi satu grup tertentu di Wilayah secara berbeda dari grup lain, Anda dapat menggunakan --notification-topic-arn opsi untuk membuat topik terpisah untuk grup tersebut.

Persyaratan kebijakan akses topik SNS

Saat Anda mengonfigurasi topik Amazon SNS untuk ElastiCache notifikasi, kebijakan akses topik harus menggunakan kunci aws:SourceOwner kondisi, bukan. aws:SourceAccount Topik Amazon SNS yang baru dibuat secara default aws:SourceAccount dalam kebijakan aksesnya, yang ElastiCache tidak mendukung pemberitahuan acara.

Jika topik Amazon SNS Anda digunakanaws:SourceAccount, ElastiCache tidak dapat mempublikasikan pemberitahuan ke topik dan secara otomatis menetapkan status topik menjadi tidak aktif. Failover Global Datastore dan operasi cluster lainnya dapat memicu kesalahan ini.

Untuk memastikan ElastiCache notifikasi berfungsi dengan benar, verifikasi kebijakan akses topik Amazon SNS Anda mencakup pernyataan berikut:

{ "Statement": [ { "Sid": "AllowElastiCachePublish", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:region:account-id:topic-name", "Condition": { "StringEquals": { "AWS:SourceOwner": "account-id" } } } ] }

Jika ElastiCache menunjukkan status topik Amazon SNS Anda sebagai tidak aktif setelah failover atau operasi klaster lainnya, periksa kebijakan akses topik dan ganti dengan. aws:SourceAccount aws:SourceOwner Kemudian aktifkan kembali notifikasi di cluster dengan operasi ModifyReplicationGroup API atau konsol.

Untuk informasi selengkapnya tentang kunci kondisi ini, lihat aws: SourceAccount vs aws: SourceOwner di Panduan Pengembang Amazon SNS.

Prasyarat

Sebelum Anda mengonfigurasi notifikasi Amazon SNS ElastiCache, verifikasi persyaratan berikut:

  • Topik Amazon SNS harus berada di AWS Wilayah yang sama dengan cluster Anda ElastiCache.

  • Topik Amazon SNS harus dimiliki oleh AWS akun yang sama dengan cluster Anda ElastiCache.

  • Topik Amazon SNS tidak boleh dienkripsi dengan kunci yang dikelola pelanggan. AWS KMS ElastiCache tidak mendukung pemberitahuan penerbitan ke topik Amazon SNS yang dienkripsi dengan kunci yang dikelola pelanggan. AWS KMS

  • Anda harus memiliki izin untuk mengubah kebijakan akses topik Amazon SNS sns:SetTopicAttributes (atau yang setara).

Memberikan ElastiCache izin untuk mempublikasikan ke topik Amazon SNS Anda

Untuk menerima pemberitahuan acara, Anda harus memberikan ElastiCache izin untuk mempublikasikan pesan ke topik Amazon SNS Anda. Anda melakukan ini dengan menambahkan kebijakan berbasis sumber daya ke topik Amazon SNS yang memungkinkan kepala layanan untuk mempublikasikan pesan. elasticache.amazonaws.com

Kebijakan berikut memberikan izin ElastiCache yang diperlukan:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowElastiCachePublish", "Effect": "Allow", "Principal": { "Service": "elasticache.amazonaws.com" }, "Action": "sns:Publish", "Resource": "arn:aws:sns:region:account-id:topic-name", "Condition": { "StringEquals": { "aws:SourceAccount": "account-id" } } } ] }

Tabel berikut menjelaskan komponen kebijakan.

Komponen Nilai Deskripsi
Principal elasticache.amazonaws.com Prinsipal ElastiCache layanan
Tindakan sns:Publish Izin minimum yang diperlukan
Sumber daya Topik ARN ARN topik Amazon SNS spesifik Anda
Kondisi: aws:SourceAccount ID AWS akun Anda Membatasi akses ke permintaan yang berasal dari akun spesifik Anda AWS

Memberikan izin (Konsol)

Untuk memberikan ElastiCache izin untuk mempublikasikan ke topik Amazon SNS Anda (Konsol)
  1. Buka konsol Layanan Pemberitahuan Sederhana Amazon di https://console.aws.amazon.com/sns/.

  2. Di panel navigasi, pilih Pengguna.

  3. Pilih topik Anda dan pilih Edit.

  4. Perluas bagian Kebijakan akses.

  5. Di editor JSON, tambahkan pernyataan kebijakan sebelumnya.

  6. Pilih Simpan perubahan.

Memberikan izin (AWS CLI)

Simpan kebijakan akses ke file bernamasns-policy.json, lalu jalankan perintah berikut:

Untuk Linux, macOS, atau Unix:

aws sns set-topic-attributes \ --topic-arn arn:aws:sns:region:account-id:topic-name \ --attribute-name Policy \ --attribute-value file://sns-policy.json \ --region region

Untuk Windows:

aws sns set-topic-attributes ^ --topic-arn arn:aws:sns:region:account-id:topic-name ^ --attribute-name Policy ^ --attribute-value file://sns-policy.json ^ --region region

Untuk memverifikasi kebijakan diterapkan dengan benar, jalankan perintah berikut:

Untuk Linux, macOS, atau Unix:

aws sns get-topic-attributes \ --topic-arn arn:aws:sns:region:account-id:topic-name \ --query 'Attributes.Policy' \ --output text \ --region region

Untuk Windows:

aws sns get-topic-attributes ^ --topic-arn arn:aws:sns:region:account-id:topic-name ^ --query 'Attributes.Policy' ^ --output text ^ --region region

Menambahkan topik Amazon SNS

Bagian berikut menunjukkan cara menambahkan topik Amazon SNS menggunakan Konsol, AWS Konsol AWS CLI, atau API. ElastiCache

Menambahkan topik Amazon SNS (Konsol)

Prosedur berikut menunjukkan cara menambahkan topik Amazon SNS untuk klaster. Saat menggunakan Valkey atau Redis OSS untuk menambahkan topik Amazon SNS untuk grup replikasi di langkah 2, alih-alih memilih cluster, pilih grup replikasi. Kemudian ikuti langkah-langkah yang tersisa yang sama.

catatan

Proses ini juga dapat digunakan untuk mengubah topik Amazon SNS.

Untuk menambahkan atau mengubah topik Amazon SNS untuk klaster (Konsol)
  1. Masuk ke Konsol Manajemen AWS dan buka ElastiCache konsol di https://console.aws.amazon.com/elasticache/.

  2. Di Klaster, pilih klaster yang ingin Anda tambahkan atau ubah ARN topik Amazon SNS-nya.

  3. Pilih Ubah.

  4. Di Ubah Klaster di bagian Topik untuk Notifikasi SNS, pilih topik SNS yang ingin Anda tambahkan, atau pilih Input ARN manual dan ketik ARN topik Amazon SNS.

  5. Pilih Ubah.

Menambahkan topik Amazon SNS (AWS CLI)

Untuk menambah atau memodifikasi topik Amazon SNS untuk klaster, gunakan perintah. AWS CLI modify-cache-cluster

Contoh kode berikut menambahkan ARN topik Amazon SNS ke my-cluster.

Untuk Linux, macOS, atau Unix:

aws elasticache modify-cache-cluster \ --cache-cluster-id my-cluster \ --notification-topic-arn arn:aws:sns:us-west-2:123456789xxx:ElastiCacheNotifications

Untuk Windows:

aws elasticache modify-cache-cluster ^ --cache-cluster-id my-cluster ^ --notification-topic-arn arn:aws:sns:us-west-2:123456789xx:ElastiCacheNotifications

Untuk informasi selengkapnya, lihat modify-cache-cluster.

Menambahkan topik Amazon SNS (API) ElastiCache

Untuk menambah atau mengubah topik Amazon SNS untuk klaster, panggil tindakan ModifyCacheCluster dengan parameter berikut:

  • CacheClusterId=my-cluster

  • TopicArn=arn%3Aaws%3Asns%3Aus-west-2%3A565419523791%3AElastiCacheNotifications

contoh
https://elasticache.amazon.com/ ?Action=ModifyCacheCluster &ApplyImmediately=false &CacheClusterId=my-cluster &NotificationTopicArn=arn%3Aaws%3Asns%3Aus-west-2%3A565419523791%3AElastiCacheNotifications &Version=2014-12-01 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20141201T220302Z &X-Amz-Algorithm=&AWS;4-HMAC-SHA256 &X-Amz-Date=20141201T220302Z &X-Amz-SignedHeaders=Host &X-Amz-Expires=20141201T220302Z &X-Amz-Credential=<credential> &X-Amz-Signature=<signature>

Untuk informasi selengkapnya, lihat ModifyCacheCluster.

Mengaktifkan dan menonaktifkan notifikasi Amazon SNS

Anda dapat mengaktifkan atau menonaktifkan notifikasi untuk klaster. Prosedur berikut menunjukkan cara menonaktifkan notifikasi Amazon SNS.

Mengaktifkan dan menonaktifkan notifikasi Amazon SNS (Konsol)

Untuk menonaktifkan notifikasi Amazon SNS menggunakan Konsol Manajemen AWS
  1. Masuk ke Konsol Manajemen AWS dan buka ElastiCache konsol di https://console.aws.amazon.com/elasticache/.

  2. Untuk melihat daftar klaster Anda yang menjalankan Memcached, pada panel navigasi, pilih Memcached.

    Untuk melihat daftar cluster Anda yang menjalankan Valkey atau Redis OSS, di panel navigasi pilih Valkey atau Redis OSS.

  3. Pilih kotak di sebelah kiri klaster yang ingin diubah notifikasinya.

  4. Pilih Ubah.

  5. Di Ubah Klaster di bagian Topik untuk Notifikasi SNS, pilih Nonaktifkan Notifikasi.

  6. Pilih Ubah.

Mengaktifkan dan menonaktifkan notifikasi Amazon SNS (AWS CLI)

Untuk menonaktifkan notifikasi Amazon SNS, gunakan perintah modify-cache-cluster dengan parameter berikut:

Untuk Linux, macOS, atau Unix:

aws elasticache modify-cache-cluster \ --cache-cluster-id my-cluster \ --notification-topic-status inactive

Untuk Windows:

aws elasticache modify-cache-cluster ^ --cache-cluster-id my-cluster ^ --notification-topic-status inactive
catatan

Ketika cluster milik grup replikasi, Anda harus menggunakan modify-replication-group perintah CLI untuk mengaktifkan atau menonaktifkan pemberitahuan SNS.

Mengaktifkan dan menonaktifkan notifikasi Amazon SNS (API) ElastiCache

Untuk menonaktifkan notifikasi Amazon SNS, panggil tindakan ModifyCacheCluster dengan parameter berikut:

  • CacheClusterId=my-cluster

  • NotificationTopicStatus=inactive

Panggilan ini menghasilkan output seperti yang berikut ini:

contoh
https://elasticache.us-west-2.amazonaws.com/ ?Action=ModifyCacheCluster &ApplyImmediately=false &CacheClusterId=my-cluster &NotificationTopicStatus=inactive &Version=2014-12-01 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20141201T220302Z &X-Amz-Algorithm=&AWS;4-HMAC-SHA256 &X-Amz-Date=20141201T220302Z &X-Amz-SignedHeaders=Host &X-Amz-Expires=20141201T220302Z &X-Amz-Credential=<credential> &X-Amz-Signature=<signature>

Praktik terbaik keamanan untuk kebijakan topik Amazon SNS

Untuk membantu mengamankan kebijakan topik Amazon SNS Anda, ikuti praktik terbaik berikut:

  • Selalu sertakan kunci aws:SourceAccount kondisi untuk mencegah serangan wakil yang membingungkan lintas akun.

  • Gunakan prinsip elasticache.amazonaws.com layanan daripada ID AWS akun individual.

  • Jangan pernah menggunakan "Principal": {"AWS": "*"} tanpa tombol kondisi tambahan.

  • Berikan hanya izin minimum yang diperlukan (sns:Publishhanya).

  • Audit kebijakan akses topik Amazon SNS Anda secara teratur.

Memverifikasi bahwa notifikasi berfungsi

Setelah mengonfigurasi kebijakan topik Amazon SNS dan menambahkan topik ke klaster ElastiCache Anda, verifikasi bahwa notifikasi berfungsi:

  1. Memicu ElastiCache peristiwa, seperti perubahan konfigurasi pada klaster Anda.

  2. Periksa titik akhir langganan Amazon SNS Anda (email, fungsi Lambda, atau antrean SQS) untuk pesan notifikasi.

  3. Di konsol Amazon SNS, verifikasi bahwa status langganan ditampilkan Dikonfirmasi.

Memecahkan masalah notifikasi Amazon SNS

Jika Anda tidak menerima notifikasi Amazon SNS dari ElastiCache, periksa hal berikut:

Ketidakcocokan wilayah

Verifikasi bahwa topik Amazon SNS berada di AWS Wilayah yang sama dengan cluster AndaElastiCache .

Kepemilikan akun

Verifikasi bahwa topik Amazon SNS dimiliki oleh AWS akun yang sama dengan cluster Anda ElastiCache .

ID akun salah dalam kondisi

Periksa apakah aws:SourceAccount nilainya adalah ID AWS akun 12 digit persis Anda.

Enkripsi KMS

Verifikasi bahwa topik Amazon SNS tidak dienkripsi dengan kunci yang dikelola pelanggan. AWS KMS ElastiCache tidak mendukung penerbitan ke topik dengan AWS KMS enkripsi terkelola pelanggan.

Topik ARN ketidakcocokan

Konfirmasikan bahwa ARN topik Amazon SNS dalam kebijakan sama persis dengan ARN dari topik yang dilampirkan ke klaster Anda. ElastiCache

Langganan yang belum dikonfirmasi

Verifikasi bahwa langganan Amazon SNS Anda dalam status Dikonfirmasi.

Izin tidak cukup

Konfirmasikan bahwa Anda memiliki sns:SetTopicAttributes izin untuk mengubah kebijakan akses topik.