Kebijakan topik Amazon SNS untuk CloudTrail - AWS CloudTrail

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

Kebijakan topik Amazon SNS untuk CloudTrail

Untuk mengirim pemberitahuan ke topik SNS, CloudTrail harus memiliki izin yang diperlukan. CloudTrailsecara otomatis melampirkan izin yang diperlukan ke topik saat Anda membuat topik Amazon SNS sebagai bagian dari membuat atau memperbarui jejak di konsol. CloudTrail

penting

Sebagai praktik keamanan terbaik, untuk membatasi akses ke topik SNS Anda, kami sangat menyarankan bahwa setelah Anda membuat atau memperbarui jejak untuk mengirim pemberitahuan SNS, Anda secara manual mengedit kebijakan IAM yang dilampirkan ke topik SNS untuk menambahkan kunci kondisi. Untuk informasi lebih lanjut, lihat Praktik terbaik keamanan untuk kebijakan topik SNS di topik ini.

CloudTrail menambahkan pernyataan berikut ke kebijakan untuk Anda dengan bidang berikut:

  • SID yang diizinkan.

  • Nama utama layanan untuk CloudTrail.

  • Topik SNS, termasuk Wilayah, ID akun, dan nama topik.

Kebijakan berikut memungkinkan CloudTrail untuk mengirim pemberitahuan tentang pengiriman file log dari Wilayah yang didukung. Untuk informasi selengkapnya, lihat CloudTrail Daerah yang didukung. Ini adalah kebijakan default yang dilampirkan ke kebijakan topik SNS baru atau yang sudah ada saat Anda membuat atau memperbarui jejak, dan memilih untuk mengaktifkan pemberitahuan SNS.

Kebijakan topik SNS

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AWSCloudTrailSNSPolicy20131101", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:region:SNSTopicOwnerAccountId:SNSTopicName" } ] }

Untuk menggunakan topik Amazon AWS KMS SNS yang dienkripsi untuk mengirim notifikasi, Anda juga harus mengaktifkan kompatibilitas antara sumber peristiwa (CloudTrail) dan topik terenkripsi dengan menambahkan pernyataan berikut ke kebijakan. AWS KMS key

Kebijakan kunci KMS

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": [ "kms:GenerateDataKey*", "kms:Decrypt" ], "Resource": "*" } ] }

Untuk informasi selengkapnya, lihat Mengaktifkan Kompatibilitas antara Sumber Peristiwa dari AWS Layanan dan Topik Terenkripsi.

Praktik terbaik keamanan untuk kebijakan topik SNS

Secara default, pernyataan kebijakan IAM yang CloudTrail melekat pada topik Amazon SNS Anda memungkinkan CloudTrail kepala layanan untuk mempublikasikan ke topik SNS, yang diidentifikasi oleh ARN. Untuk membantu mencegah penyerang mendapatkan akses ke topik SNS Anda, dan mengirim pemberitahuan atas nama penerima topik, edit kebijakan topik CloudTrail SNS Anda secara manual untuk menambahkan kunci aws:SourceArn kondisi ke pernyataan kebijakan yang dilampirkan oleh. CloudTrail CloudTrail Nilai kunci ini adalah ARN jejak, atau array ARN jejak yang menggunakan topik SNS. Karena mencakup ID jejak tertentu dan ID akun yang memiliki jejak, ini membatasi akses topik SNS hanya ke akun yang memiliki izin untuk mengelola jejak. Sebelum menambahkan kunci kondisi ke kebijakan topik SNS Anda, dapatkan nama topik SNS dari setelan jejak Anda di CloudTrail konsol.

Kunci aws:SourceAccount kondisi juga didukung, tetapi tidak disarankan.

Untuk menambahkan kunci aws:SourceArn kondisi ke kebijakan topik SNS
  1. Buka konsol Amazon SNS di https://console.aws.amazon.com/sns/v3/home.

  2. Di panel navigasi, pilih Pengguna.

  3. Pilih topik SNS yang ditampilkan di pengaturan jejak Anda, lalu pilih Edit.

  4. Perluas Kebijakan akses.

  5. Di editor JSON kebijakan Access, cari blok yang menyerupai contoh berikut.

    { "Sid": "AWSCloudTrailSNSPolicy20150319", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:us-west-2:111122223333:aws-cloudtrail-logs-111122223333-61bbe496" }
  6. Tambahkan blok baru untuk suatu kondisiaws:SourceArn, seperti yang ditunjukkan pada contoh berikut. Nilai aws:SourceArn adalah ARN dari jejak yang Anda kirimi notifikasi ke SNS.

    { "Sid": "AWSCloudTrailSNSPolicy20150319", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:us-west-2:111122223333:aws-cloudtrail-logs-111122223333-61bbe496", "Condition": { "StringEquals": { "aws:SourceArn": "arn:aws:cloudtrail:us-west-2:123456789012:trail/Trail3" } } }
  7. Setelah selesai mengedit kebijakan topik SNS, pilih Simpan perubahan.

Untuk menambahkan kunci aws:SourceAccount kondisi ke kebijakan topik SNS
  1. Buka konsol Amazon SNS di https://console.aws.amazon.com/sns/v3/home.

  2. Di panel navigasi, pilih Pengguna.

  3. Pilih topik SNS yang ditampilkan di pengaturan jejak Anda, lalu pilih Edit.

  4. Perluas Kebijakan akses.

  5. Di editor JSON kebijakan Access, cari blok yang menyerupai contoh berikut.

    { "Sid": "AWSCloudTrailSNSPolicy20150319", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:us-west-2:111122223333:aws-cloudtrail-logs-111122223333-61bbe496" }
  6. Tambahkan blok baru untuk suatu kondisiaws:SourceAccount, seperti yang ditunjukkan pada contoh berikut. Nilai aws:SourceAccount adalah ID akun yang memiliki CloudTrail jejak. Contoh ini membatasi akses ke topik SNS hanya untuk pengguna yang dapat masuk ke AWS akun 123456789012.

    { "Sid": "AWSCloudTrailSNSPolicy20150319", "Effect": "Allow", "Principal": { "Service": "cloudtrail.amazonaws.com" }, "Action": "SNS:Publish", "Resource": "arn:aws:sns:us-west-2:111122223333:aws-cloudtrail-logs-111122223333-61bbe496", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" } } }
  7. Setelah selesai mengedit kebijakan topik SNS, pilih Simpan perubahan.

Menentukan topik yang ada untuk mengirim notifikasi

Anda dapat menambahkan izin untuk topik Amazon SNS secara manual ke kebijakan topik Anda di konsol Amazon SNS, lalu menentukan topik di konsol. CloudTrail

Untuk memperbarui kebijakan topik SNS secara manual
  1. Buka konsol Amazon SNS di https://console.aws.amazon.com/sns/v3/home.

  2. Pilih Topik dan kemudian pilih topik.

  3. Pilih Edit, lalu gulir ke bawah ke kebijakan Access.

  4. Tambahkan pernyataan dari SNS topic policy dengan nilai yang sesuai untuk Wilayah, ID akun, dan nama topik.

  5. Jika topik Anda adalah topik terenkripsi, Anda harus mengizinkan CloudTrail untuk memiliki kms:GenerateDataKey* dan izin. kms:Decrypt Untuk informasi selengkapnya, lihat Encrypted SNS topic KMS key policy.

  6. Pilih Simpan perubahan.

  7. Kembali ke CloudTrail konsol dan tentukan topik untuk jejak.

Memecahkan masalah kebijakan topik SNS

Bagian berikut menjelaskan cara memecahkan masalah kebijakan topik SNS.

CloudTrail tidak mengirim notifikasi untuk Wilayah

Saat Anda membuat topik baru sebagai bagian dari membuat atau memperbarui jejak, CloudTrail lampirkan izin yang diperlukan ke topik Anda. Kebijakan topik menggunakan nama utama layanan"cloudtrail.amazonaws.com", yang memungkinkan CloudTrail untuk mengirim pemberitahuan untuk semua Wilayah.

Jika CloudTrail tidak mengirimkan notifikasi untuk Wilayah, kemungkinan topik Anda memiliki kebijakan lama yang menentukan ID CloudTrail akun untuk setiap Wilayah. Kebijakan ini memberikan CloudTrail izin untuk mengirim notifikasi hanya untuk Wilayah yang ditentukan.

Kebijakan topik berikut memungkinkan CloudTrail untuk mengirim pemberitahuan hanya untuk sembilan Wilayah yang ditentukan:

contoh kebijakan topik dengan ID akun
{ "Version": "2012-10-17", "Statement": [{ "Sid": "AWSCloudTrailSNSPolicy20131101", "Effect": "Allow", "Principal": {"AWS": [ "arn:aws:iam::903692715234:root", "arn:aws:iam::035351147821:root", "arn:aws:iam::859597730677:root", "arn:aws:iam::814480443879:root", "arn:aws:iam::216624486486:root", "arn:aws:iam::086441151436:root", "arn:aws:iam::388731089494:root", "arn:aws:iam::284668455005:root", "arn:aws:iam::113285607260:root" ]}, "Action": "SNS:Publish", "Resource": "aws:arn:sns:us-east-1:123456789012:myTopic" }] }

Kebijakan ini menggunakan izin berdasarkan ID CloudTrail akun individual. Untuk mengirimkan log untuk Wilayah baru, Anda harus memperbarui kebijakan secara manual untuk menyertakan ID CloudTrail akun untuk Wilayah tersebut. Misalnya, karena CloudTrail menambahkan dukungan untuk Wilayah Timur AS (Ohio), Anda harus memperbarui kebijakan untuk menambahkan ID akun ARN untuk Wilayah tersebut:. "arn:aws:iam::475085895292:root"

Sebagai praktik terbaik, perbarui kebijakan untuk menggunakan izin dengan kepala CloudTrail layanan. Untuk melakukan ini, ganti ARN ID akun dengan nama utama layanan:"cloudtrail.amazonaws.com".

Ini memberikan CloudTrail izin untuk mengirim pemberitahuan untuk Wilayah saat ini dan yang baru. Berikut ini adalah versi terbaru dari kebijakan sebelumnya:

contoh kebijakan topik dengan nama utama layanan
{ "Version": "2012-10-17", "Statement": [{ "Sid": "AWSCloudTrailSNSPolicy20131101", "Effect": "Allow", "Principal": {"Service": "cloudtrail.amazonaws.com"}, "Action": "SNS:Publish", "Resource": "arn:aws:sns:us-west-2:123456789012:myTopic" }] }

Verifikasi bahwa kebijakan memiliki nilai yang benar:

  • Di Resource bidang, tentukan nomor akun pemilik topik. Untuk topik yang Anda buat, tentukan nomor akun Anda.

  • Tentukan nilai yang sesuai untuk nama topik Wilayah dan SNS.

CloudTrail tidak mengirimkan pemberitahuan untuk akun anggota di organisasi

Ketika akun anggota dengan jejak AWS Organizations organisasi tidak mengirimkan notifikasi Amazon SNS, mungkin ada masalah dengan konfigurasi kebijakan topik SNS. CloudTrail membuat jejak organisasi di akun anggota meskipun validasi sumber daya gagal, misalnya, topik SNS jejak organisasi tidak menyertakan semua ID akun anggota. Jika kebijakan topik SNS salah, kegagalan otorisasi terjadi.

Untuk memeriksa apakah kebijakan topik SNS jejak mengalami kegagalan otorisasi:

  • Dari CloudTrail konsol, periksa halaman detail jejak. Jika ada kegagalan otorisasi, halaman detail menyertakan peringatan SNS authorization failed dan menunjukkan untuk memperbaiki kebijakan topik SNS.

  • Dari AWS CLI, jalankan get-trail-statusperintah. Jika ada kegagalan otorisasi, output perintah menyertakan LastNotificationError bidang dengan nilai. AuthorizationError

Sumber daya tambahan

Untuk informasi selengkapnya tentang topik SNS dan berlangganannya, lihat Panduan Pengembang Layanan Pemberitahuan Sederhana Amazon.