Operazioni relative alla politica di protezione dei dati in Amazon SNS - Amazon Simple Notification Service

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Operazioni relative alla politica di protezione dei dati in Amazon SNS

Di seguito sono riportati alcuni esempi di policy di protezione dei dati che puoi utilizzare per controllare e rifiutare i dati sensibili. Per un tutorial completo che include un'applicazione di esempio, consulta il post di blog relativo alla presentazione della protezione dei dati dei messaggi per Amazon SNS.

Operazione di verifica

L'operazione di audit campiona i messaggi in entrata tematici e registra i dati sensibili rilevati in una destinazione. AWS La frequenza di campionamento può essere un numero intero compreso tra 0 e 99. Questa operazione richiede uno dei seguenti tipi di destinazione della registrazione:

  1. FindingsDestination— La destinazione di registrazione quando l'argomento Amazon SNS trova dati sensibili nel payload.

  2. NoFindingsDestination— La destinazione di registrazione quando l'argomento Amazon SNS non trova dati sensibili nel payload.

Puoi utilizzare quanto segue Servizi AWS in ciascuno dei seguenti tipi di destinazione di log:

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

Autorizzazioni richieste per specificare le destinazioni della registrazione

Quando specifichi le destinazioni di registrazione nella policy di protezione dei dati, devi aggiungere le seguenti autorizzazioni alla policy di identità IAM del principale IAM che chiama l'API PutDataProtectionPolicy di Amazon SNS o l'API CreateTopic con il parametro --data-protection-policy.

Destinazione della verifica Autorizzazione IAM
Predefinita

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

L’utilizzo del bucket Amazon S3 con la crittografia SSE-KMS abilitata richiede azioni aggiuntive.

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

Policy di chiave richiesta per l'uso con SSE-KMS

Se utilizzi un bucket Amazon S3 come destinazione di log, puoi proteggere i dati nel bucket abilitando la crittografia lato server con chiavi gestite da Amazon S3 (SSE-S3) o la crittografia lato server con (SSE-KMS). AWS KMS keys Per ulteriori informazioni, consulta Protezione dei dati con la crittografia lato server nella Guida per l'utente di Amazon S3.

Se si sceglie SSE-S3, non è richiesta alcuna configurazione aggiuntiva. Amazon S3 gestisce la chiave di crittografia.

Se si sceglie SSE-KMS, è necessario utilizzare una chiave gestita dal cliente. Devi aggiornare la policy delle chiavi per la chiave gestita dal cliente in modo che l'account di consegna del log possa scrivere nel bucket S3. Per ulteriori informazioni sulla politica delle chiavi richiesta per l'uso con SSE-KMS, consulta la crittografia lato server con bucket Amazon S3 nella Amazon Logs User Guide. CloudWatch

Esempi di registro della destinazione della verifica

Nell'esempio seguente, callerPrincipal viene utilizzato per identificare l'origine del contenuto sensibile e messageID viene utilizzato come un riferimento per eseguire il controllo in base alla risposta dell'API Publish.

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

Parametri dell'operazione di verifica

Quando un'operazione di controllo ha specificato la proprietà FindingsDestination o la NoFindingsDestination proprietà, i proprietari dell'argomento ricevono anche CloudWatch MessagesWithFindings le MessagesWithNoFindings metriche.

Esempi di una verifica che mostra i dati in un periodo di tempo specificato.

Operazione di deidentificazione

L'operazione Anonimizza maschera o oscura i dati sensibili dai messaggi pubblicati o consegnati. Questa operazione è disponibile per i messaggi in entrata e richiede uno dei seguenti tipi di configurazione:

  • MaskConfig— Maschera utilizzando un carattere supportato dalla tabella seguente. Ad esempio, ssn: 123-45-6789 diventa ssn: ###########.

    { "Operation": { "Deidentify": { "MaskConfig": { "MaskWithCharacter": "#" } } }
    Carattere di mascheramento supportato Nome
    * Asterisco
    A-Z, a-z e 0-9 Carattere alfanumerico
    Spazio
    ! Punto esclamativo
    $ Simbolo del dollaro
    % Segno percentuale
    & E commerciale
    ()

    Parentesi

    + Segno più
    , Virgola
    - Trattino
    . Periodo
    /\

    Barra, barra rovesciata

    # Segno numerico
    : Due punti
    ; Punto e virgola
    =, <>

    Uguale a, minore di o maggiore di

    @ Chiocciola
    [] Parentesi
    ^ Simbolo dell'accento circonflesso
    _ Carattere di sottolineatura
    ` Accento grave
    | Barra verticale
    ~ Simbolo della tilde
  • RedactConfig— Redigi rimuovendo completamente i dati. Ad esempio, ssn: 123-45-6789 diventa ssn: .

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

In un messaggio in entrata, i dati sensibili vengono deidentificati dopo l'operazione di verifica e il chiamante dell'API SNS:Publish riceve il seguente errore di parametro non valido quando l'intero messaggio è sensibile.

Error code: AuthorizationError ...

Operazione di rifiuto

L'operazione Deny (Rifiuto) interrompe l'esecuzione della richiesta API Publish o la consegna del messaggio se il messaggio contiene dati sensibili. L'oggetto dell'operazione Deny (Rifiuto) è vuoto in quanto non richiede una configurazione aggiuntiva.

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

In un messaggio in entrata, il chiamante dell'API SNS:Publish riceve un errore di autorizzazione.

Error code: AuthorizationError ...

In un messaggio in uscita, l'argomento Amazon SNS non consegna il messaggio alla sottoscrizione. Per tenere traccia di operazioni di consegna non autorizzate, abilita l'opzione Delivery status logging (Registrazione dello stato della consegna) dell'argomento. Nell'esempio seguente viene mostrato un esempio di registro dello stato della consegna:

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