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-groupmempengaruhi 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-arnopsi 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)
-
Buka konsol Layanan Pemberitahuan Sederhana Amazon di https://console.aws.amazon.com/sns/
. -
Di panel navigasi, pilih Pengguna.
-
Pilih topik Anda dan pilih Edit.
-
Perluas bagian Kebijakan akses.
-
Di editor JSON, tambahkan pernyataan kebijakan sebelumnya.
-
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 \ --regionregion
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 ^ --regionregion
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 \ --regionregion
Untuk Windows:
aws sns get-topic-attributes ^ --topic-arn arn:aws:sns:region:account-id:topic-name^ --query 'Attributes.Policy' ^ --output text ^ --regionregion
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)
-
Masuk ke Konsol Manajemen AWS dan buka ElastiCache konsol di https://console.aws.amazon.com/elasticache/
. -
Di Klaster, pilih klaster yang ingin Anda tambahkan atau ubah ARN topik Amazon SNS-nya.
-
Pilih Ubah.
-
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.
-
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-idmy-cluster\ --notification-topic-arnarn:aws:sns:us-west-2:123456789xxx:ElastiCacheNotifications
Untuk Windows:
aws elasticache modify-cache-cluster ^ --cache-cluster-idmy-cluster^ --notification-topic-arnarn: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
-
Masuk ke Konsol Manajemen AWS dan buka ElastiCache konsol di https://console.aws.amazon.com/elasticache/
. -
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.
-
Pilih kotak di sebelah kiri klaster yang ingin diubah notifikasinya.
-
Pilih Ubah.
-
Di Ubah Klaster di bagian Topik untuk Notifikasi SNS, pilih Nonaktifkan Notifikasi.
-
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-idmy-cluster\ --notification-topic-statusinactive
Untuk Windows:
aws elasticache modify-cache-cluster ^ --cache-cluster-idmy-cluster^ --notification-topic-statusinactive
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:SourceAccountkondisi untuk mencegah serangan wakil yang membingungkan lintas akun.Gunakan prinsip
elasticache.amazonaws.com.rproxy.govskope.uslayanan 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:
Memicu ElastiCache peristiwa, seperti perubahan konfigurasi pada klaster Anda.
Periksa titik akhir langganan Amazon SNS Anda (email, fungsi Lambda, atau antrean SQS) untuk pesan notifikasi.
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:SourceAccountnilainya 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:SetTopicAttributesizin untuk mengubah kebijakan akses topik.