Operationen der Datenschutzrichtlinien - Amazon Simple Notification Service

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Operationen der Datenschutzrichtlinien

Im Folgenden finden Sie Beispiele für Datenschutzrichtlinien, mit denen Sie sensible Daten überprüfen und verweigern können. Ein vollständiges Tutorial, das eine Beispielanwendung enthält, finden Sie im Blogbeitrag Introducing message data protection for Amazon SNS (Einführung in den Nachrichtendatenschutz für Amazon SNS).

Audit-Operation

Die Audit-Operation führt ein Sampling der eingehenden Nachrichten des Themas aus und protokolliert die gefundenen sensiblen Daten in einem AWS-Ziel. Die Samplerate kann eine ganze Zahl zwischen 0 und 99 sein. Für diese Operation ist eine der folgenden Arten von Protokollierungszielen erforderlich:

  1. FindingsDestination – Das Protokollierungsziel, wenn das Amazon SNS-Thema sensible Daten in der Nutzlast findet.

  2. NoFindingsDestination – Das Protokollierungsziel, wenn das Amazon SNS-Thema keine sensiblen Daten in der Nutzlast findet.

Sie können die folgenden AWS-Services in jeder der folgenden Arten von Protokollierungszielen verwenden:

{ "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" } } } } }

Erforderliche Berechtigungen bei der Angabe von Protokollierungszielen

Wenn Sie in der Datenschutzrichtlinie Ziele für die Protokollierung angeben, müssen Sie der IAM-Identitätsrichtlinie des IAM-Prinzipals, der in Amazon SNS die PutDataProtectionPolicy-API oder die CreateTopic-API mit dem --data-protection-policy-Parameter aufruft, die folgenden Berechtigungen hinzufügen.

Audit-Ziel IAM-Berechtigung
Standard

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

Für die Verwendung des Amazon-S3-Buckets mit aktivierter SSE-KMS-Verschlüsselung sind zusätzliche Aktionen erforderlich.

{ "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" ] } ] }

Erforderliche Schlüsselrichtlinie zur Verwendung mit SSE-KMS

Durch Verwendung eines Amazon-S3-Buckets als Protokollziel können Sie die Daten in Ihrem Bucket schützen, indem Sie entweder die serverseitige Verschlüsselung mit von Amazon S3 verwalteten Schlüsseln (SSE-S3) oder die serverseitige Verschlüsselung mit AWS KMS keys (SSE-KMS) aktivieren. Weitere Informationen finden Sie unter Schützen von Daten mithilfe serverseitiger Verschlüsselung im Amazon S3-Entwicklerhandbuch.

Wenn Sie SSE-S3 wählen, ist keine zusätzliche Konfiguration erforderlich. Amazon S3 verarbeitet den Verschlüsselungsschlüssel.

Wenn Sie sich für SSE-KMS entscheiden, müssen Sie einen vom Kunden verwalteten Schlüssel verwenden. Sie müssen die Schlüsselrichtlinie für Ihren vom Kunden verwalteten Schlüssel aktualisieren, damit das Protokollzustellungskonto in Ihren S3-Bucket schreiben kann. Weitere Informationen zur erforderlichen Schlüsselrichtlinie für die Verwendung mit SSE-KMS finden Sie unter Serverseitige Verschlüsselung des Amazon S3-Buckets im Amazon- CloudWatch Logs-Benutzerhandbuch.

Beispiel für ein Audit-Zielprotokoll

Im folgenden Beispiel wird callerPrincipal verwendet, um die Quelle des sensiblen Inhalts zu identifizieren, und messageID als Referenz zur Überprüfung der Publish-API-Antwort.

{ "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 } ] } ] }

Metriken für die Audit-Operation

Wenn ein Audit-Vorgang die NoFindingsDestination Eigenschaft FindingsDestination oder angegeben hat, erhalten CloudWatch die Themenbesitzer auch - MessagesWithFindings und -MessagesWithNoFindingsMetriken.

Beispiel für ein Audit, bei dem Daten über einen bestimmten Zeitraum angezeigt werden.

Vorgang anonymisieren

Der Vorgang der Anonymisierung maskiert oder redigiert sensible Daten aus veröffentlichten oder übermittelten Nachrichten. Dieser Vorgang ist nur für eingehende und ausgehende Nachrichten verfügbar und erfordert einen der folgenden Konfigurationstypen:

  • MaskConfig – Maskieren Sie mit einem unterstützten Zeichen aus der folgenden Tabelle. Beispielsweise wird die SSN: 123-45-6789 zur SSN: ###########.

    { "Operation": { "Deidentify": { "MaskConfig": { "MaskWithCharacter": "#" } } }
    Unterstütztes Maskierungszeichen Name
    * Sternchen
    A–Z, a–z und 0–9 Alphanumerisch
    Leerzeichen
    ! Ausrufezeichen
    $ Dollarzeichen
    % Prozentzeichen
    & Kaufmännisches Und-Zeichen
    ()

    Klammer

    + Pluszeichen
    , Komma
    - Bindestrich
    . Intervall
    /\

    Schrägstrich, umgekehrter Schrägstrich

    # Doppelkreuz
    : Doppelpunkt
    ; Semikolon
    =, <>

    Gleich. kleiner oder größer als

    @ At-Zeichen
    [] Klammern
    ^ Caret-Symbol
    _ Unterstrich
    ` Backtick
    | Senkrechter Balken
    ~ Tilde-Zeichen
  • RedactConfig – Redigieren Sie, indem Sie die Daten vollständig entfernen. Beispielsweise wird SSN: 123-45-6789 zur SSN: .

    { "Operation": { "Deidentify": { "RedactConfig": {} } }

Bei einer eingehenden Nachricht werden die sensiblen Daten nach dem Prüfvorgang anonymisiert, und der SNS:Publish-API-Aufrufer erhält den folgenden „Ungültiger Parameter“-Fehler, wenn die gesamte Nachricht vertraulich ist.

Error code: AuthorizationError ...

Deny-Operation

Die Deny-Operation unterbricht entweder die Publish-API-Anfrage oder die Zustellung der Nachricht, wenn die Nachricht sensible Daten enthält. Das Deny-Operationsobjekt ist leer, da es keine zusätzliche Konfiguration erfordert.

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

Bei einer eingehenden Nachricht erhält der SNS:Publish-API-Aufrufer einen Autorisierungsfehler.

Error code: AuthorizationError ...

Bei einer ausgehenden Nachricht stellt das Amazon-SNS-Thema die Nachricht nicht dem Abonnement zu. Wenn Sie nicht autorisierte Zustellungen verfolgen möchten, aktivieren Sie die Protokollierung des Zustellungsstatus für das Thema. Im Folgenden finden Sie ein Beispiel für ein Zustellungsstatusprotokoll:

{ "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" }