Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Operaciones de política de protección de datos en Amazon SNS
Estos son ejemplos de políticas de protección de datos que puede utilizar para auditar y denegar datos confidenciales. Para ver un tutorial completo que incluye un ejemplo de aplicación, consulta la entrada del SNS blog Introducing Message Data Protection for Amazon
Operación Audit (Auditar)
La operación de auditoría toma muestras de los mensajes entrantes por temas y registra los datos confidenciales encontrados en un AWS destino. La frecuencia de muestreo puede ser un número entero comprendido entre 0 y 99. Esta operación requiere uno de los siguientes tipos de destinos de registro:
-
FindingsDestination— El destino del registro cuando el SNS tema de Amazon encuentra datos confidenciales en la carga útil.
-
NoFindingsDestination— El destino del registro cuando el SNS tema de Amazon no encuentra datos confidenciales en la carga útil.
Puedes usar lo siguiente Servicios de AWS en cada uno de los siguientes tipos de destinos de registro:
-
Amazon CloudWatch Logs (opcional):
LogGroup
debe estar en la región del tema y el nombre debe empezar por /aws/vendedlogs/. -
Amazon Data Firehose (opcional):
DeliveryStream
debe estar en la región temática y tener Direct PUT como fuente de transmisión de entrega. Para obtener más información, consulte Origen, destino y nombre en la Guía para desarrolladores de Amazon Data Firehose. -
Amazon S3 (opcional): un nombre de bucket de Amazon S3. Se requieren acciones adicionales para usar un bucket de Amazon S3 con SSE el KMS cifrado activado.
{ "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" } } } } }
Permisos necesarios al especificar los destinos de registro
Al especificar los destinos de registro en la política de protección de datos, debe añadir los siguientes permisos a la IAM política de IAM identidad del responsable que llama a Amazon SNS PutDataProtectionPolicy
API o al CreateTopic
API --data-protection-policy
parámetro.
Destino de auditoría | IAMpermiso |
---|---|
Predeterminado | 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 Se requieren acciones adicionales para usar un bucket de Amazon S3 con SSE el KMS cifrado activado. |
{ "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" ] } ] }
Política de claves obligatoria para su uso con SSE - KMS
Si utiliza un depósito de Amazon S3 como destino de registro, puede proteger los datos del depósito activando el cifrado del lado del servidor con claves gestionadas por Amazon SSE S3 (-S3) o el cifrado del lado del servidor con (-). AWS KMS keys SSE KMS Para obtener más información, consulte Protección de datos mediante cifrado del lado del servidor en la Guía del usuario de Amazon S3.
Si elige SSE -S3, no se requiere ninguna configuración adicional. Amazon S3 se encarga de la clave de cifrado.
Si elige SSE -KMS, debe usar una clave gestionada por el cliente. Debe actualizar la política de clave para la clave administrada por el cliente, de modo que la cuenta de entrega de registros pueda escribir en el bucket de S3. Para obtener más información sobre la política de claves necesaria para su uso con SSE -KMS, consulte el cifrado del lado del servidor de bucket de Amazon S3 en la Guía del usuario de Amazon CloudWatch Logs.
Ejemplo de registro de destino de auditoría
En el siguiente ejemplo, callerPrincipal
se utiliza para identificar la fuente del contenido confidencial y messageID
se utiliza como referencia para comprobar la Publish
API respuesta.
{ "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 } ] } ] }
Métricas de la operación Audit (Auditar)
Cuando una operación de auditoría ha especificado la propiedad FindingsDestination
o la NoFindingsDestination
propiedad, los propietarios del tema también reciben CloudWatch MessagesWithFindings
MessagesWithNoFindings
métricas.
Operación de anonimización
La operación de Desidentificación enmascara o elimina información confidencial de los mensajes publicados o entregados. Esta operación está disponible para los mensajes entrantes y salientes, y requiere uno de los siguientes tipos de configuraciones:
-
MaskConfig— Enmascarar con un carácter compatible de la siguiente tabla. Por ejemplo, ssn:
123-45-6789
se convierte en ssn:###########
.{ "Operation": { "Deidentify": { "MaskConfig": { "MaskWithCharacter": "#" } } }
Carácter de máscara compatible Nombre * Asterisco A-Z, a-z y 0-9 Alfanumérico Espacio ! Signo de exclamación $ Símbolo del dólar % Signo de porcentaje & Ampersand () Paréntesis
+ Signo más , Coma - Guion . Período /\ Barra, barra diagonal invertida
# Signo numérico : Dos puntos ; Punto y coma =, <> Es igual a, menor o mayor que
@ Arroba [] Corchetes ^ Símbolo de intercalación _ Guion bajo ` Acento grave | Barra vertical ~ Símbolo de tilde -
RedactConfig— Redacte eliminando los datos por completo. Por ejemplo, ssn:
123-45-6789
se convierte en ssn:{ "Operation": { "Deidentify": { "RedactConfig": {} } }
En un mensaje entrante, los datos confidenciales se anonimizan tras la operación de auditoría y la persona que SNS:Publish
API llama recibe el siguiente error de parámetro no válido cuando todo el mensaje es confidencial.
Error code: AuthorizationError ...
Operación Deny (Denegar)
La operación de denegación interrumpe la Publish
API solicitud o la entrega del mensaje si éste contiene datos confidenciales. El objeto de la operación Deny (Denegar) está vacío, ya que no requiere ninguna configuración adicional.
"Operation": { "Deny": {} }
En un mensaje entrante, la SNS:Publish
API persona que llama recibe un error de autorización.
Error code: AuthorizationError ...
En un mensaje saliente, el SNS tema de Amazon no entrega el mensaje a la suscripción. Para realizar un seguimiento de las entregas no autorizadas, active el registro de estado de entrega del tema. A continuación, se muestra un ejemplo de un registro de estado de entrega:
{ "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" }