

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
<a name="sns-message-data-protection-operations"></a>

**importante**  
La protección de datos de mensajes de Amazon SNS dejará de estar disponible para los nuevos clientes a partir del 30 de abril de 2026. Para obtener más información y orientación sobre las alternativas, consulte Cambio en la [disponibilidad de la protección de datos de mensajes de Amazon SNS](https://docs.aws.amazon.com/sns/latest/dg/sns-message-data-protection-availability-change.html).

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](https://aws.amazon.com/blogs/compute/introducing-message-data-protection-for-amazon-sns/) (Introducción a la protección de datos de mensajes para Amazon SNS).

## Operación Audit (Auditar)
<a name="statement-operation-json-properties-audit"></a>

La operación **de auditoría** toma muestras de los mensajes entrantes relacionados con el tema 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.

1. **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 destinos de registro:
+ **Amazon CloudWatch Logs** (opcional): `LogGroup` debe estar en la región del tema y el nombre debe empezar por **/aws/vendedlogs/**.
+ ** **(opcional): el `DeliveryStream` debe estar en la región del tema y tener **Direct PUT** como origen del flujo de entrega. Para obtener más información, consulte [Source, Destination, and Name](https://docs.aws.amazon.com/firehose/latest/dev/create-name.html) 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 utilizar el bucket de Amazon S3 con el cifrado SSE-KMS activado](#flow-logs-s3-cmk-policy).

```
{
  "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
<a name="required-permissions-log-operations"></a>

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 utilizar el bucket de Amazon S3 con el cifrado SSE-KMS activado](#flow-logs-s3-cmk-policy).   | 

------
#### [ 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 clave requerida para el uso con SSE-KMS
<a name="flow-logs-s3-cmk-policy"></a>

Si utiliza un bucket de Amazon S3 como destino de registro, puede proteger los datos de su bucket habilitando el cifrado del lado del servidor con claves gestionadas por Amazon S3 (SSE-S3) o el cifrado del lado del servidor con (SSE-KMS). AWS KMS keys Para obtener más información, consulte [Protección de datos mediante cifrado del lado del servidor](https://docs.aws.amazon.com/AmazonS3/latest/userguide/serv-side-encryption.html) en la *Guía del usuario de Amazon S3*.

Si elija SSE-S3, no se requiere ninguna configuración adicional. Amazon S3 se encarga de la clave de cifrado.

Si elija SSE-KMS, debe utilizar una clave administrada 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](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AWS-logs-and-resource-policy.html#AWS-logs-SSE-KMS-S3) de *Amazon CloudWatch * Logs.

### Ejemplo de registro de destino de auditoría
<a name="data-protection-policy-audit-destination-log"></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)
<a name="data-protection-policy-audit-metrics"></a>

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` las `MessagesWithNoFindings` métricas.

![\[Ejemplo de una auditoría que muestra datos durante un período de tiempo específico.\]](http://docs.aws.amazon.com/es_es/sns/latest/dg/images/audit-operations-metrics.png)


## Operación de anonimización
<a name="statement-operation-json-properties-deidentify"></a>

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": "#"
            }
      }
  }
  ```    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/sns/latest/dg/sns-message-data-protection-operations.html)
+ **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)
<a name="statement-operation-json-properties-deny"></a>

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](sns-topic-attributes.md) 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"
}
```