기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon의 데이터 보호 정책 작업 SNS
다음은 중요한 데이터를 감사 및 거부하는 데 사용할 수 있는 데이터 보호 정책의 예입니다. 예제 애플리케이션이 포함된 전체 자습서는 Amazon 블로그 게시물에 메시지 데이터 보호 소개SNS
감사 작업
감사 작업은 주제 인바운드 메시지를 샘플링하고 민감한 데이터 결과를 AWS 대상에 기록합니다. 샘플 레이트는 0~99 사이의 정수일 수 있습니다. 이 작업에는 다음 유형의 로깅 대상 중 하나가 필요합니다.
-
FindingsDestination - Amazon SNS 주제가 페이로드에서 민감한 데이터를 찾을 때의 로깅 대상입니다.
-
NoFindingsDestination - Amazon SNS 주제가 페이로드에서 민감한 데이터를 찾지 못하는 경우의 로깅 대상입니다.
다음 각 로그 대상 유형 AWS 서비스 에서 다음을 사용할 수 있습니다.
-
Amazon CloudWatch Logs(선택 사항) - 는 주제 리전에
LogGroup
있어야 하며 이름은 /aws/vendedlogs/로 시작해야 합니다. -
Amazon Data Firehose(선택 사항) - 는 주제 리전에 있어야 하며 전송 스트림의 소스로 DirectPUT가 있어야
DeliveryStream
합니다. 자세한 내용은 Amazon Data Firehose 개발자 안내서의 소스, 대상 및 이름을 참조하세요. -
Amazon S3(선택 사항) - Amazon S3 버킷 이름입니다. Amazon S3 버킷을 SSE암호화가 활성화된 와KMS 함께 사용하려면 추가 작업이 필요합니다.
{ "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" } } } } }
로그 대상 지정 시 필요한 권한
데이터 보호 정책에서 로깅 대상을 지정할 때는 Amazon 를 호출하는 IAM 보안 주체의 IAM 자격 증명 정책 API또는 --data-protection-policy
파라미터CreateTopic
API가 있는 SNS PutDataProtectionPolicy
에 다음 권한을 추가해야 합니다.
감사 대상 | IAM 권한 |
---|---|
기본값 | 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 |
{ "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" ] } ] }
SSE-와 함께 사용하는 데 필요한 키 정책KMS
Amazon S3 버킷을 로그 대상으로 사용하는 경우 Amazon S3-Managed 키(-SSE-S3)를 사용한 서버 측 암호화 또는 AWS KMS keys (-)를 사용한 서버 측 암호화를 활성화하여 버킷의 데이터를 보호할 수 있습니다SSEKMS. 자세한 내용은 Amazon S3 사용 설명서의 서버 측 암호화를 사용하여 데이터 보호를 참조하세요.
SSE-S3를 선택하면 추가 구성이 필요하지 않습니다. Amazon S3는 암호화 키를 처리합니다.
SSE-를 선택하는 경우 고객 관리형 키를 사용해야 KMS합니다. 로그 전달 계정이 S3 버킷에 쓸 수 있도록 고객 관리형 키에 대한 키 정책을 업데이트해야 합니다. SSE-와 함께 사용하는 데 필요한 키 정책에 대한 자세한 내용은 Amazon Logs 사용 설명서의 Amazon S3 버킷 서버 측 암호화를 KMS참조하세요. CloudWatch
감사 대상 로그 예시
다음 예제에서는 callerPrincipal
가 민감한 콘텐츠의 소스를 식별하는 데 사용되며 messageID
가 Publish
API 응답에 대해 확인하는 참조로 사용됩니다.
{ "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 } ] } ] }
감사 작업 지표
감사 작업에서 FindingsDestination
또는 NoFindingsDestination
속성을 지정하면 주제 소유자는 MessagesWithFindings
및 MessagesWithNoFindings
지표도 수신 CloudWatch합니다.
비식별 작업
비식별화 작업은 게시되거나 배달된 메시지에서 민감한 데이터를 마스킹하거나 수정합니다. 이 작업은 인바운드 메시지와 아웃바운드 메시지에 모두 사용할 수 있으며 다음 유형의 구성 중 하나가 필요합니다.
-
MaskConfig - 다음 표에서 지원되는 문자를 사용하여 마스킹합니다. 예를 들어, ssn:
123-45-6789
는 ssn:###########
이 됩니다.{ "Operation": { "Deidentify": { "MaskConfig": { "MaskWithCharacter": "#" } } }
지원되는 마스킹 문자 명칭 * 별표 A~Z, a~z, 0~9 영숫자 공간 ! 느낌표 $ 달러 기호 % 퍼센트 기호 & 앰퍼샌드 () 괄호
+ 더하기 기호 , 쉼표 - 하이픈 . 기간 /\ 슬래시, 백 슬래시
# 숫자 기호 : 콜론 ; 세미콜론 =, <> 같음, 보다 작음, 보다 큼
@ at 기호 [] 대괄호 ^ 캐럿 _ 밑줄 ` 백틱 | 수직 막대 ~ 틸데 -
RedactConfig - 데이터를 완전히 제거하여 수정합니다. 예를 들어, ssn:
123-45-6789
는 ssn:{ "Operation": { "Deidentify": { "RedactConfig": {} } }
인바운드 메시지에서는 감사 작업 후 민감한 데이터가 식별되지 않고 전체 메시지가 민감한 경우 SNS:Publish
API 발신자는 다음과 같은 잘못된 파라미터 오류를 수신합니다.
Error code: AuthorizationError ...
거부 작업
메시지에 민감한 데이터가 포함된 경우 거부 작업은 Publish
API 요청 또는 메시지 전송을 중단합니다. Deny(거부) 작업 개체는 추가 구성이 필요하지 않으므로 비어 있습니다.
"Operation": { "Deny": {} }
인바운드 메시지에서 SNS:Publish
API 발신자는 권한 부여 오류를 수신합니다.
Error code: AuthorizationError ...
아웃바운드 메시지에서 Amazon SNS 주제는 구독에 메시지를 전달하지 않습니다. 승인되지 않은 배달을 추적하려면 주제의 전송 상태 로깅을 사용하도록 설정하세요. 다음은 전송 상태 로그의 예입니다.
{ "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" }