Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Operasi kebijakan perlindungan data di Amazon SNS
Berikut ini adalah contoh kebijakan perlindungan data yang dapat Anda gunakan untuk mengaudit dan menolak data sensitif. Untuk tutorial lengkap yang menyertakan aplikasi contoh, lihat Memperkenalkan perlindungan data pesan untuk posting SNS blog Amazon
Operasi audit
Operasi Audit mengambil sampel topik pesan masuk, dan mencatat temuan data sensitif di suatu AWS tujuan. Laju sampel dapat berupa bilangan bulat antara 0-99. Operasi ini membutuhkan salah satu dari jenis tujuan logging berikut:
-
FindingsDestination— Tujuan pencatatan saat SNS topik Amazon menemukan data sensitif di payload.
-
NoFindingsDestination— Tujuan pencatatan saat SNS topik Amazon tidak menemukan data sensitif di payload.
Anda dapat menggunakan yang berikut ini Layanan AWS di setiap jenis tujuan log berikut:
-
Amazon CloudWatch Logs (Opsional) -
LogGroup
Harus ada di wilayah topik dan nama harus dimulai dengan /aws/vendedlogs/. -
Amazon Data Firehose (Opsional) —
DeliveryStream
Harus ada di wilayah topik dan memiliki Direct PUT sebagai sumber aliran pengiriman. Untuk detail tambahan, lihat Sumber, Tujuan, dan Nama di Panduan Pengembang Firehose Data Amazon. -
Amazon S3 (Opsional) - Nama bucket Amazon S3. Tindakan tambahan diperlukan untuk menggunakan bucket Amazon S3 dengan KMS enkripsi SSE - diaktifkan.
{ "Operation": { "Audit": { "SampleRate": "99", "FindingsDestination": { "CloudWatchLogs": { "LogGroup": "/aws/vendedlogs/log-group-name" }, "Firehose": { "DeliveryStream": "delivery-stream-name" }, "S3": { "Bucket": "bucket-name" } }, "NoFindingsDestination": { "CloudWatchLogs": { "LogGroup": "/aws/vendedlogs/log-group-name" }, "Firehose": { "DeliveryStream": "delivery-stream-name" }, "S3": { "Bucket": "bucket-name" } } } } }
Izin yang diperlukan saat menentukan tujuan log
Saat menentukan tujuan pencatatan dalam kebijakan perlindungan data, Anda harus menambahkan izin berikut ke kebijakan IAM identitas IAM prinsipal yang memanggil Amazon SNS PutDataProtectionPolicy
API, atau --data-protection-policy
parameter CreateTopic
API dengan.
Tujuan audit | IAMizin |
---|---|
Default | logs:CreateLogDelivery logs:GetLogDelivery logs:UpdateLogDelivery logs:DeleteLogDelivery logs:ListLogDeliveries |
CloudWatchLogs | logs:PutResourcePolicy logs:DescribeResourcePolicies logs:DescribeLogGroups |
Firehose | iam:CreateServiceLinkedRole firehose:TagDeliveryStream |
S3 | s3:PutBucketPolicy s3:GetBucketPolicy Tindakan tambahan diperlukan untuk menggunakan bucket Amazon S3 dengan KMS enkripsi SSE - diaktifkan. |
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "logs:GetLogDelivery", "logs:UpdateLogDelivery", "logs:DeleteLogDelivery", "logs:ListLogDeliveries" ], "Resource": [ "*" ] }, { "Effect": "Allow", "Action": [ "logs:PutResourcePolicy", "logs:DescribeResourcePolicies", "logs:DescribeLogGroups" ], "Resource": [ "arn:aws:logs:region:account-id:SampleLogGroupName:*:*" ] }, { "Effect": "Allow", "Action": [ "iam:CreateServiceLinkedRole", "firehose:TagDeliveryStream" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "s3:PutBucketPolicy", "s3:GetBucketPolicy" ], "Resource": [ "arn:aws:s3:::bucket-name" ] } ] }
Kebijakan kunci yang diperlukan untuk digunakan dengan SSE - KMS
Jika Anda menggunakan bucket Amazon S3 sebagai tujuan log, Anda dapat melindungi data di bucket dengan mengaktifkan Enkripsi Sisi Server dengan Amazon S3-Managed Keys (SSE-S3), atau Enkripsi Sisi Server dengan (-). AWS KMS keys SSE KMS Untuk informasi selengkapnya, lihat Melindungi data menggunakan enkripsi sisi server di Panduan Pengguna Amazon S3.
Jika Anda memilih SSE -S3, tidak diperlukan konfigurasi tambahan. Amazon S3 menangani kunci enkripsi.
Jika Anda memilih SSE -KMS, Anda harus menggunakan kunci yang dikelola pelanggan. Anda harus memperbarui kebijakan kunci untuk kunci terkelola pelanggan Anda sehingga akun pengiriman log dapat menulis ke bucket S3 Anda. Untuk informasi selengkapnya tentang kebijakan kunci yang diperlukan untuk digunakan dengan SSE -KMS, lihat enkripsi sisi server bucket Amazon S3 di Panduan Pengguna Log Amazon. CloudWatch
Contoh log tujuan audit
Dalam contoh berikut, callerPrincipal
digunakan untuk mengidentifikasi sumber konten sensitif, dan messageID
digunakan sebagai referensi untuk memeriksa terhadap Publish
API respon.
{ "messageId": "34d9b400-c6dd-5444-820d-fbeb0f1f54cf", "auditTimestamp": "2022-05-12T2:10:44Z", "callerPrincipal": "arn:aws:iam::123412341234:role/Publisher", "resourceArn": "arn:aws:sns:us-east-1:123412341234:PII-data-topic", "dataIdentifiers": [ { "name": "Name", "count": 1, "detections": [ { "start": 1, "end": 2 } ] }, { "name": "PhoneNumber", "count": 2, "detections": [ { "start": 3, "end": 4 }, { "start": 5, "end": 6 } ] } ] }
Metrik operasi audit
Ketika operasi audit telah menentukan FindingsDestination
atau NoFindingsDestination
properti, pemilik topik juga menerima CloudWatch MessagesWithFindings
dan MessagesWithNoFindings
metrik.
De-identifikasi operasi
Operasi De-identifikasi menutupi atau menyunting data sensitif dari pesan yang dipublikasikan atau dikirim. Operasi ini tersedia untuk pesan masuk dan keluar, dan memerlukan salah satu jenis konfigurasi berikut:
-
MaskConfig— Topeng menggunakan karakter yang didukung dari tabel berikut. Misalnya, ssn:
123-45-6789
menjadi ssn:.###########
{ "Operation": { "Deidentify": { "MaskConfig": { "MaskWithCharacter": "#" } } }
Karakter topeng yang didukung Nama * Tanda bintang A-Z, a-z, dan 0-9 Alfanumerik Spasi ! Tanda seru $ Tanda dolar % Tanda persen & Ampersand () Tanda kurung
+ Tanda plus , Koma - Tanda hubung . Periode /\ Slash, tebasan belakang
# Tanda angka : Usus besar ; Titik koma =, <> Sama dengan kurang atau lebih besar dari
@ Pada tanda [] Kurung ^ Simbol tanda sisipan _ menggarisbawahi ` Backtick | Bilah vertikal ~ Simbol Tilde -
RedactConfig— Menyunting dengan menghapus data seluruhnya. Misalnya, ssn:
123-45-6789
menjadi ssn:.{ "Operation": { "Deidentify": { "RedactConfig": {} } }
Pada pesan masuk, data sensitif tidak diidentifikasi setelah operasi audit, dan SNS:Publish
API pemanggil menerima kesalahan parameter tidak valid berikut ketika seluruh pesan sensitif.
Error code: AuthorizationError ...
Tolak operasi
Operasi Tolak mengganggu Publish
API permintaan atau pengiriman pesan jika pesan berisi data sensitif. Objek operasi Deny kosong, karena tidak memerlukan konfigurasi tambahan.
"Operation": { "Deny": {} }
Pada pesan masuk, SNS:Publish
API penelepon menerima kesalahan otorisasi.
Error code: AuthorizationError ...
Pada pesan keluar, SNS topik Amazon tidak mengirimkan pesan ke langganan. Untuk melacak pengiriman yang tidak sah, aktifkan pencatatan status pengiriman topik. Berikut ini adalah contoh log status pengiriman:
{ "notification": { "messageMD5Sum": "29638742ffb68b32cf56f42a79bcf16b", "messageId": "34d9b400-c6dd-5444-820d-fbeb0f1f54cf", "topicArn": "arn:aws:sns:us-east-1:123412341234:PII-data-topic", "timestamp": "2022-05-12T2:12:44Z" }, "delivery": { "deliveryId": "98236591c-56aa-51ee-a5ed-0c7d43493170", "destination": "arn:aws:sqs:us-east-1:123456789012:NoNameAccess", "providerResponse": "The topic's data protection policy prohibits this message from being delivered to <subscription-arn>", "dwellTimeMs":20, "attempts":1, "statusCode": 403 }, "status": "FAILURE" }