As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Operações de política de proteção de dados
Veja a seguir as políticas de proteção de dados que você pode usar para auditar e negar dados sigilosos. Para ver um tutorial completo que inclui uma aplicação de exemplo, consulte a publicação do blog Introducing message data protection for Amazon SNS
Operação de auditoria
A operação Audit (Auditoria) examina uma amostra das mensagens de entrada do tópico e registra as descobertas de dados sigilosos em um destino da AWS. A taxa de amostragem pode ser um número inteiro entre 0 e 99. Essa operação requer um dos seguintes tipos de destino de registro em log:
-
FindingsDestination— O destino do registro quando o tópico do Amazon SNS encontra dados confidenciais na carga útil.
-
NoFindingsDestination— O destino do registro quando o tópico do Amazon SNS não encontra dados confidenciais na carga útil.
É possível usar os seguintes Serviços da AWS em cada um destes tipos de destino de log:
-
Amazon CloudWatch Logs (opcional) — Eles
LogGroup
devem estar na região do tópico e o nome deve começar com /aws/vendedlogs/. -
Amazon Data Firehose (opcional) —
DeliveryStream
Deve estar na região do tópico e ter o Direct PUT como fonte do fluxo de entrega. Para obter detalhes adicionais, consulte Origem, destino e nome no Guia do desenvolvedor do Amazon Data Firehose. -
Amazon S3 (Opcional): um nome de bucket do Amazon S3. Ações extras são necessárias para usar o bucket do Amazon S3 com a criptografia SSE-KMS ativada.
{ "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" } } } } }
Permissões necessárias ao especificar destinos de log
Ao especificar destinos de registro em log na política de proteção de dados, você deve adicionar as seguintes permissões à política de identidade do IAM da entidade principal do IAM que está chamando o Amazon SNS: API PutDataProtectionPolicy
ou CreateTopic
com o parâmetro --data-protection-policy
.
Destino de auditoria | Permissão do IAM |
---|---|
Padrão | 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 Ações extras são necessárias para usar o bucket do Amazon S3 com a criptografia SSE-KMS ativada. |
{ "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 chaves obrigatórias para uso com SSE-KMS
Se você usa um bucket do Amazon S3 como destino de log, é possível proteger os dados no bucket habilitando a criptografia do lado do servidor com chaves gerenciadas pelo Amazon S3 (SSE-S3) ou a criptografia do lado do servidor com chaves do AWS KMS keys (SSE-KMS). Para obter mais informações, consulte Proteger dados usando criptografia do lado do servidor no Manual do usuário do Amazon S3.
Se você escolher SSE-S3, nenhuma configuração adicional será necessária. O Amazon S3 lida com a chave de criptografia.
Se você escolher o SSE-KMS, deverá usar uma chave gerenciada pelo cliente. Você deve atualizar a política de chaves para a chave gerenciada pelo cliente para que a conta de entrega de logs possa gravar no bucket do S3. Para obter mais informações sobre a política de chaves necessária para uso com o SSE-KMS, consulte a criptografia do lado do servidor do bucket Amazon S3 no Guia do usuário do Amazon Logs. CloudWatch
Exemplo de log de destino de auditoria
No exemplo a seguir, callerPrincipal
é usado para identificar a origem do conteúdo sigiloso e messageID
como referência para comparar com a resposta da 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 operação de auditoria
Quando uma operação de auditoria especifica a FindingsDestination
ou a NoFindingsDestination
propriedade, os proprietários do tópico também recebem CloudWatch MessagesWithFindings
MessagesWithNoFindings
métricas.
![Exemplo de auditoria exibindo dados durante um período especificado.](images/audit-operations-metrics.png)
Operação de desidentificação
A operação Remoção de identificação mascara ou elimina dados sigilosos das mensagens publicadas ou entregues. Essa operação está disponível para mensagens de entrada e saída e requer um dos seguintes tipos de configuração:
-
MaskConfig— Máscara usando um caractere compatível da tabela a seguir. Por exemplo, ssn:
123-45-6789
se torna ssn:###########
.{ "Operation": { "Deidentify": { "MaskConfig": { "MaskWithCharacter": "#" } } }
Caractere de máscara compatível Nome * Asterisco A–Z, a–z e 0–9 Alfanumérico Espaço ! Ponto de exclamação $ Sinal de dólar % Sinal de porcentagem & E comercial () Parênteses
+ Sinal de adição , Vírgula - Hífen . Período /\ Barra, barra invertida
# Sinal numérico : Dois pontos ; Ponto e vírgula =, <> Igual, menor que ou maior que
@ Arroba [] Colchetes ^ Circunflexo _ Sublinhado ` Acento grave | Barra vertical ~ Til -
RedactConfig— Redija removendo totalmente os dados. Por exemplo, ssn:
123-45-6789
se torna ssn:{ "Operation": { "Deidentify": { "RedactConfig": {} } }
Em uma mensagem de entrada, os dados confidenciais são desidentificados após a operação de auditoria, e o chamador da API SNS:Publish
recebe o erro de parâmetro inválido a seguir quando toda a mensagem é confidencial.
Error code: AuthorizationError ...
Operação de negação
A operação Deny (Negação) interromperá a solicitação da API Publish
ou a entrega da mensagem se a mensagem contiver dados sigilosos. O objeto da operação Deny (Negação) está em branco, pois não requer configuração adicional.
"Operation": { "Deny": {} }
Em uma mensagem de entrada, o chamador da API SNS:Publish
recebe um erro de autorização.
Error code: AuthorizationError ...
Em uma mensagem de saída, o tópico do Amazon SNS não entrega a mensagem para a assinatura. Para monitorar entregas não autorizadas, habilite o registro em log do status de entrega do tópico. Veja a seguir um exemplo de log de status 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" }