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:
-
FindingsDestination— La destinazione di registrazione quando l'argomento Amazon SNS trova dati sensibili nel payload.
-
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:
-
Amazon CloudWatch Logs (opzionale):
LogGroup
deve essere nell'area tematica e il nome deve iniziare con /aws/vendedlogs/. -
Amazon Data Firehose (opzionale):
DeliveryStream
deve trovarsi nell'area tematica e avere Direct PUT come fonte del flusso di distribuzione. Per ulteriori dettagli, consulta Source, Destination and Name nella Amazon Data Firehose Developer Guide. -
Amazon S3 (facoltativo): il nome di un bucket Amazon S3. L’utilizzo del bucket Amazon S3 con la crittografia SSE-KMS abilitata richiede azioni aggiuntive.
{ "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.

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