View a markdown version of this page

Operaciones de la política de protección de datos de Amazon SNS - Amazon Simple Notification Service

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 la política de protección de datos de Amazon SNS

importante

La protección de datos de mensajes de Amazon SNS ya no está disponible para los nuevos clientes. Para obtener más información y orientación sobre las alternativas, consulte el cambio de disponibilidad de la protección de datos de los mensajes de 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 una aplicación de ejemplo, consulte la publicación del blog Introducing message data protection for Amazon SNS (Introducción a la protección de datos de mensajes para Amazon SNS).

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:

  1. FindingsDestination— El destino del registro cuando el tema de Amazon SNS encuentra datos confidenciales en la carga útil.

  2. NoFindingsDestination— El destino del registro cuando el tema de Amazon SNS no encuentra datos confidenciales en la carga útil.

Puede usar lo siguiente Servicios de AWS en cada uno de los siguientes tipos de destino de registro:

{ "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 política de identidad de IAM de la entidad principal de IAM que llama a la API PutDataProtectionPolicy de Amazon SNS o la API CreateTopic con el parámetro --data-protection-policy.

Destino de auditoría Permiso de IAM
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 el bucket de Amazon S3 con el SSE-KMS cifrado activado.

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

Política de claves obligatoria para su uso con SSE-KMS

Si utiliza un bucket de Amazon S3 como destino de registro, puede proteger los datos de su bucket habilitando el Server-Side cifrado con Amazon S3-Managed Keys (SSE-S3) o el Server-Side cifrado 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 lo desea SSE-S3, no se requiere ninguna configuración adicional. Amazon S3 se encarga de la clave de cifrado.

Si lo desea 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 requerida para su uso SSE-KMS, consulte el cifrado del lado del servidor de los buzones 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 usa para identificar el origen del contenido confidencial y utilizar messageID como referencia para compararla con la respuesta de la 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 } ] } ] }

Métricas de la operación Audit (Auditar)

Cuando en una operación de auditoría se especifica la propiedad FindingsDestination o la NoFindingsDestination propiedad, los propietarios del tema también reciben CloudWatch MessagesWithFindings una MessagesWithNoFindings métrica.

Ejemplo de una auditoría que muestra datos durante un período de tiempo específico.

De-identify operación

La De-identify operación oculta o elimina los datos confidenciales 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— Enmascare con un carácter compatible de la tabla siguiente. Por ejemplo, ssn: 123-45-6789 se convierte en ssn: ###########.

    { "Operation": { "Deidentify": { "MaskConfig": { "MaskWithCharacter": "#" } } }
    Carácter de máscara compatible Name
    * Asterisco
    A-Z, a-z y 0-9 Alfanumérico
    Space
    ! Signo de exclamación
    $ Símbolo del dólar
    % Signo de porcentaje
    & Ampersand
    ()

    Paréntesis

    + Signo más
    , Coma
    - Guion
    . Periodo
    /\

    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, la información confidencial se anonimiza después de la operación de auditoría y quien llama a la API de SNS:Publish 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 Deny (Denegar) interrumpe la solicitud de la API Publish o la entrega del mensaje si este 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, el intermediario de la API SNS:Publish recibe un error de autorización.

Error code: AuthorizationError ...

En un mensaje saliente, el tema de Amazon SNS 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" }