

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
<a name="sns-message-data-protection-operations"></a>

**penting**  
Perlindungan data pesan Amazon SNS tidak lagi tersedia untuk pelanggan baru. Untuk informasi selengkapnya dan panduan tentang alternatif, lihat [perubahan ketersediaan perlindungan data pesan Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-message-data-protection-availability-change.html).

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 blog Amazon SNS](https://aws.amazon.com/blogs/compute/introducing-message-data-protection-for-amazon-sns/).

## Operasi audit
<a name="statement-operation-json-properties-audit"></a>

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:

1. **FindingsDestination**— Tujuan pencatatan saat topik Amazon SNS menemukan data sensitif di payload.

1. **NoFindingsDestination**— Tujuan pencatatan saat topik Amazon SNS 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/**.
+ ****(Opsional) — `DeliveryStream` Harus berada di wilayah topik dan memiliki **PUT Langsung** sebagai sumber aliran pengiriman. Untuk detail tambahan, lihat [Sumber, Tujuan, dan Nama](https://docs.aws.amazon.com/firehose/latest/dev/create-name.html) di Panduan *Pengembang Firehose Data Amazon*.
+ **Amazon S3** (Opsional) - Nama bucket Amazon S3. [Tindakan tambahan diperlukan untuk menggunakan bucket Amazon S3 dengan enkripsi SSE-KMS](#flow-logs-s3-cmk-policy) 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
<a name="required-permissions-log-operations"></a>

Saat menentukan tujuan pencatatan dalam kebijakan perlindungan data, Anda harus menambahkan izin berikut ke kebijakan identitas IAM dari prinsipal IAM yang memanggil Amazon SNS `PutDataProtectionPolicy` API, atau API dengan parameter. `CreateTopic` `--data-protection-policy`


| Tujuan audit | Izin IAM | 
| --- | --- | 
| Default | logs:CreateLogDelivery<br />logs:GetLogDelivery<br />logs:UpdateLogDelivery<br />logs:DeleteLogDelivery<br />logs:ListLogDeliveries | 
| CloudWatchLogs | logs:PutResourcePolicy<br />logs:DescribeResourcePolicies<br />logs:DescribeLogGroups | 
| Firehose | iam:CreateServiceLinkedRole<br />firehose:TagDeliveryStream | 
| S3 | s3:PutBucketPolicy<br />s3:GetBucketPolicy<br />[Tindakan tambahan diperlukan untuk menggunakan bucket Amazon S3 dengan enkripsi SSE-KMS](#flow-logs-s3-cmk-policy) diaktifkan.  | 

------
#### [ JSON ]

****  

```
{
    "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:us-west-1:123456789012: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
<a name="flow-logs-s3-cmk-policy"></a>

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 (SSE-KMS). AWS KMS keys Untuk informasi selengkapnya, lihat [Melindungi data menggunakan enkripsi sisi server](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html) 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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-SSE-KMS-S3) Amazon. CloudWatch *

### Contoh log tujuan audit
<a name="data-protection-policy-audit-destination-log"></a>

Dalam contoh berikut, `callerPrincipal` digunakan untuk mengidentifikasi sumber konten sensitif, dan `messageID` digunakan sebagai referensi untuk memeriksa terhadap respons `Publish` API.

```
{
  "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
<a name="data-protection-policy-audit-metrics"></a>

Ketika operasi audit telah menentukan `FindingsDestination` atau `NoFindingsDestination` properti, pemilik topik juga menerima CloudWatch `MessagesWithFindings` dan `MessagesWithNoFindings` metrik.

![Contoh audit yang menampilkan data selama periode waktu tertentu.](http://docs.aws.amazon.com/id_id/sns/latest/dg/images/audit-operations-metrics.png)


## De-identifikasi operasi
<a name="statement-operation-json-properties-deidentify"></a>

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": "#"
            }
      }
  }
  ```    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/id_id/sns/latest/dg/sns-message-data-protection-operations.html)
+ **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 pemanggil `SNS:Publish` API menerima kesalahan parameter tidak valid berikut ketika seluruh pesan sensitif.

`Error code: AuthorizationError ...`

## Tolak operasi
<a name="statement-operation-json-properties-deny"></a>

Operasi **Deny** akan mengganggu permintaan `Publish` API atau pengiriman pesan jika pesan berisi data sensitif. Objek operasi Deny kosong, karena tidak memerlukan konfigurasi tambahan.

```
"Operation": {
    "Deny": {}
}
```

Pada pesan masuk, pemanggil `SNS:Publish` API menerima kesalahan otorisasi.

`Error code: AuthorizationError ...`

Pada pesan keluar, topik Amazon SNS tidak mengirimkan pesan ke langganan. Untuk melacak pengiriman yang tidak sah, aktifkan pencatatan [status pengiriman](sns-topic-attributes.md) 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"
}
```