민감한 데이터 위치에 대한 JSON 스키마 - Amazon Macie

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

민감한 데이터 위치에 대한 JSON 스키마

Amazon Macie는 Amazon Simple Storage Service(S3) 객체에서 민감한 데이터를 찾은 위치에 대한 정보를 저장하는 데 표준화된 JSON 구조를 사용합니다. 구조는 민감한 데이터 조사 결과와 민감한 데이터 검색 결과에 사용됩니다. 민감한 데이터 조사 결과의 경우 구조는 조사 결과에 대한 JSON 스키마의 일부입니다. 전체 JSON 스키마에서 발견된 내용을 검토하려면 Amazon Macie API 참조조사 결과를 참조하세요. 민감한 데이터 조사 결과에 대한 자세한 내용은 민감한 데이터 검색 결과 저장 및 유지을(를) 참조하세요.

민감한 데이터 위치에 대한 JSON 스키마 개요

Amazon Macie가 영향을 받는 S3 객체에서 발견한 민감한 데이터의 위치를 보고하기 위해 민감한 데이터 조사 결과 및 민감한 데이터 검색 결과에 대한 JSON 스키마에는 customDataIdentifiers 객체 1개와 sensitiveData 객체 1개가 포함됩니다. customDataIdentifiers 객체는 Macie가 사용자 지정 데이터 식별자를 사용하여 탐지한 데이터에 대한 세부 정보를 제공합니다. sensitiveData 객체는 Macie가 관리형 데이터 식별자를 사용하여 탐지한 데이터에 대한 세부 정보를 제공합니다.

customDataIdentifierssensitiveData 객체에는 하나 이상의 detections 배열이 포함되어 있습니다.

  • customDataIdentifiers 객체에서 detections 배열은 데이터를 탐지하고 조사 결과를 생성한 사용자 지정 데이터 식별자를 나타냅니다. 각 사용자 지정 데이터 식별자에 대해 배열은 식별자가 탐지한 데이터의 발생 횟수도 나타냅니다. 식별자가 탐지한 데이터의 위치를 나타낼 수도 있습니다.

  • sensitiveData 객체에서 detections 배열은 Macie가 관리 데이터 식별자를 사용하여 탐지한 민감한 데이터의 유형을 나타냅니다. 각 유형의 민감한 데이터에 대해 배열은 데이터 발생 횟수를 나타내며 데이터의 위치를 나타낼 수도 있습니다.

민감한 데이터 조사 결과의 경우 detections 배열에 1~15개의 occurrences 객체가 포함될 수 있습니다. 각 occurrences 객체는 Macie가 특정 유형의 민감한 데이터를 개별적으로 감지한 위치를 지정합니다.

예를 들어, 다음 detections 배열은 Macie가 CSV 파일에서 찾은 민감한 데이터 (미국 사회보장번호) 가 세 번 나오는 위치를 나타냅니다.

"sensitiveData": [ { "category": "PERSONAL_INFORMATION", "detections": [ { "count": 30, "occurrences": { "cells": [ { "cellReference": null, "column": 1, "columnName": "SSN", "row": 2 }, { "cellReference": null, "column": 1, "columnName": "SSN", "row": 3 }, { "cellReference": null, "column": 1, "columnName": "SSN", "row": 4 } ] }, "type": "USA_SOCIAL_SECURITY_NUMBER" }

detections 배열에 있는 occurrences 객체의 위치와 개수는 Macie가 자동화된 중요 데이터 검색 분석 주기 또는 중요한 데이터 검색 작업 실행 중에 탐지한 중요한 데이터의 범주, 유형 및 발생 횟수에 따라 달라집니다. Macie는 각 분석 주기 또는 작업 실행에 대해 깊이 우선 검색 알고리즘을 사용하여 Macie가 S3 객체에서 감지한 1~15개의 민감한 데이터에 대한 위치 데이터로 결과적인 조사 결과를 채웁니다. 이러한 상황은 영향을 받는 S3 버킷과 객체에 포함될 수 있는 민감한 데이터의 범주 및 유형을 나타냅니다.

occurrences 객체에는 영향을 받는 S3 객체의 파일 유형 또는 스토리지 형식에 따라 다음과 같은 구조가 포함될 수 있습니다.

  • cells 배열 – 이 배열은 Microsoft Excel 통합 문서, CSV 파일 및 TSV 파일에 적용됩니다. 이 배열의 객체는 Macie가 민감한 데이터의 발생을 감지한 셀 또는 필드를 지정합니다.

  • lineRanges 배열 – 이 배열은 이메일 메시지 (EML) 파일과 CSV, JSON, JSON Lines 및 TSV 파일을 제외한 바이너리가 아닌 텍스트 파일 (예: HTML, TXT, XML 파일) 에 적용됩니다. 이 배열의 객체는 Macie가 민감한 데이터의 발생을 감지한 줄 또는 여러 줄의 범위를 지정하고 지정된 줄 또는 한 줄에서의 데이터 위치를 지정합니다.

    배열의 객체가 다른 유형의 lineRanges 배열에서 지원하는 파일 유형이나 스토리지 형식으로 민감한 데이터 탐지 위치를 지정하는 경우도 있습니다. 이러한 경우는 파일 내 주석과 같이 비정형 파일의 비정형 섹션에서의 탐지, Macie가 일반 텍스트로 분석하는 잘못된 형식의 파일에서의 탐지, Macie가 민감한 데이터를 감지한 하나 이상의 열 이름이 있는 CSV 또는 TSV 파일 등입니다.

  • offsetRanges 배열 – 이 배열은 나중에 사용하기 위해 예약되어 있습니다. 이 배열이 있는 경우 해당 배열의 값은 null입니다.

  • pages 배열 – 이 배열은 Adobe Portable Document Format (PDF) 파일에 적용됩니다. 이 배열의 객체는 Macie가 민감한 데이터의 발생을 감지한 페이지를 지정합니다.

  • records 배열 – 이 배열은 Apache Avro 객체 컨테이너, Apache Parquet 파일, JSON 파일 및 JSON Lines 파일에 적용됩니다. Avro 객체 컨테이너 및 Parquet 파일의 경우 이 배열의 객체는 Macie가 민감한 데이터의 발생을 감지한 레코드의 필드 경로와 레코드 색인을 지정합니다. JSON 및 JSON Lines 파일의 경우 이 배열의 객체는 Macie가 민감한 데이터의 발생을 감지한 필드 또는 배열의 경로를 지정합니다. JSON Lines 파일의 경우 데이터가 포함된 라인의 인덱스도 지정합니다.

이러한 배열의 콘텐츠는 영향을 받는 S3 객체의 파일 유형이나 스토리지 형식 및 콘텐츠에 따라 달라집니다.

민감한 데이터 위치에 대한 JSON 스키마 세부 정보 및 예제

Amazon Macie는 특정 유형의 파일 및 콘텐츠에서 민감한 데이터를 탐지한 위치를 나타내는 데 사용하는 JSON 구조의 콘텐츠를 조정합니다. 다음 주제에서는 이러한 구조를 설명하고 이에 대한 예제를 제공합니다.

민감한 데이터 조사 결과에 포함될 수 있는 JSON 구조의 전체 목록은 Amazon Macie API 참조조사 결과를 참조하세요.

셀 배열

적용 대상: Microsoft Excel 통합 문서, CSV 파일 및 TSV 파일

cells 배열에서 Cell 객체는 Macie가 민감한 데이터의 발생을 감지한 셀 또는 필드를 지정합니다. 다음 표에는 Cell 객체에 있는 각 필드의 용도가 설명되어 있습니다.

필드 유형 설명
cellReference 문자열 발생을 포함하는 셀의 위치 (절대 셀 참조). 이 필드는 Excel 통합 문서에만 적용됩니다. CSV 및 TSV 파일의 경우 이 값은 null입니다.
column Integer 발생을 포함하는 열의 열 번호입니다. Excel 통합 문서의 경우 이 값은 열 식별자의 영문자 (예: 열 A의 1, 열 B의 2 등) 와 상호 연관됩니다.
columnName 문자열 발생을 포함하는 열의 이름입니다 (사용 가능한 경우).
row Integer 발생을 포함하는 행의 행 번호입니다.

다음 예제는 Macie가 CSV 파일에서 감지한 민감한 데이터의 발생 위치를 지정하는 Cell 객체의 구조를 보여줍니다.

"cells": [ { "cellReference": null, "column": 3, "columnName": "SSN", "row": 5 } ]

위 예제에서 조사 결과는 Macie가 파일의 세 번째 열(이름: SSN)의 다섯 번째 행에 있는 필드에서 민감한 데이터를 탐지했음을 나타냅니다.

다음 예제는 Macie가 Excel 통합 문서에서 감지한 민감한 데이터의 발생 위치를 지정하는 Cell 객체의 구조를 보여줍니다.

"cells": [ { "cellReference": "Sheet2!C5", "column": 3, "columnName": "SSN", "row": 5 } ]

위 예제에서 조사 결과는 Macie가 통합 문서의 Sheet2라는 워크시트에서 민감한 데이터를 발견했음을 나타냅니다. 이 워크시트에서 Macie는 세 번째 열의 다섯 번째 행에 있는 셀(C열, 이름: SSN)에서 민감한 데이터를 발견했습니다.

LineRanges 배열

적용 대상: 이메일 메시지(EML) 파일 및 CSV, JSON, JSON Lines 및 TSV 파일을 제외한 바이너리가 아닌 텍스트 파일(예: HTML, TXT 및 XML 파일)

lineRanges 배열에서 Range 객체는 Macie가 민감한 데이터의 발생을 감지한 줄 또는 여러 줄의 범위를 지정하고 지정된 줄 또는 줄에서의 데이터 위치를 지정합니다.

occurrences 객체의 다른 유형의 배열에서 지원하는 파일 유형의 경우 이 객체는 비어 있는 경우가 많습니다. 예외는 다음과 같습니다.

  • 기타 정형 파일의 비정형 섹션에 있는 데이터(예: 파일 내 댓글).

  • Macie가 일반 텍스트로 분석하는 잘못된 형식의 파일에 있는 데이터.

  • Macie가 민감한 데이터를 탐지한 열 이름이 하나 이상 있는 CSV 또는 TSV 파일.

다음 표에서는 lineRanges 배열의 Range 객체에 있는 각 필드의 용도를 설명합니다.

필드 유형 설명
end Integer 파일의 시작 부분부터 발생 끝 부분까지의 행 수입니다.
start Integer 파일의 시작 부분부터 발생 시작 부분까지의 행 수입니다.
startColumn Integer 스페이스를 포함하며 1부터 시작하여 해당 항목(start)이 포함된 첫 번째 행의 시작 부분부터 발생 시작 부분까지의 문자 수입니다.

다음 예제는 Macie가 TXT 파일의 한 행에서 감지한 중요한 데이터의 발생 위치를 지정하는 Range 객체의 구조를 보여줍니다.

"lineRanges": [ { "end": 1, "start": 1, "startColumn": 119 } ]

위 예제의 조사 결과는 Macie가 파일의 첫 번째 행에서 민감한 데이터(우편 주소)가 완전히 발생한 것을 탐지했음을 나타냅니다. 첫 번째 문자는 해당 행의 시작 부분부터 119자(스페이스 포함)입니다.

다음 예제는 TXT 파일에서 여러 행에 걸쳐 나타나는 민감한 데이터의 위치를 지정하는 Range 객체의 구조를 보여줍니다.

"lineRanges": [ { "end": 54, "start": 51, "startColumn": 1 } ]

위 예제의 조사 결과는 Macie가 파일의 51~54행에 걸쳐 민감한 데이터(우편 주소)의 발생을 탐지했음을 나타냅니다. 해당 항목의 첫 번째 문자는 파일 51행의 첫 번째 문자입니다.

페이지 배열

적용 대상: Adobe Portable Document Format (PDF) 파일

pages 배열에서 Page 객체는 Macie가 민감한 데이터의 발생을 감지한 페이지를 지정합니다. 객체는 pageNumber 필드를 포함하고 있습니다. pageNumber 필드에는 해당 항목이 포함된 페이지의 페이지 번호를 지정하는 정수가 저장됩니다.

다음 예제는 Macie가 PDF 파일에서 탐지한 민감한 데이터의 발생 위치를 지정하는 Page 개체의 구조를 보여줍니다.

"pages": [ { "pageNumber": 10 } ]

위 예제의 조사 결과는 파일 10페이지에 해당 발생이 포함되어 있음을 나타냅니다.

레코드 배열

적용 대상: Apache Avro 객체 컨테이너, Apache Parquet 파일, JSON 파일 및 JSON Lines 파일

Avro 객체 컨테이너 또는 Parquet 파일의 경우 records 배열의 Record 객체는 Macie가 민감한 데이터의 발생을 감지한 레코드의 필드 경로와 레코드 색인을 지정합니다. JSON 및 JSON Lines 파일의 경우 Record 객체는 Macie가 민감한 데이터의 발생을 감지한 필드 또는 배열의 경로를 지정합니다. JSON Lines 파일의 경우 발생이 포함된 행의 인덱스도 지정합니다.

다음 표에는 Record 객체에 있는 각 필드의 용도가 설명되어 있습니다.

필드 유형 설명
jsonPath 문자열

해당 발생까지의 경로 (JSONPath 표현식)

Avro 객체 컨테이너 또는 Parquet 파일의 경우 이 경로는 해당 발생이 포함된 레코드(recordIndex)의 필드 경로입니다. JSON 또는 JSON Lines 파일의 경우 이 경로는 해당 발생이 포함된 필드 또는 배열의 경로입니다. 데이터가 배열의 값인 경우 경로에는 해당 발생이 포함된 값도 표시됩니다.

Macie가 경로에 있는 요소 이름에서 민감한 데이터를 감지하면 Macie는 해당 jsonPath 필드를 Record 객체에서 생략합니다. 경로 요소 이름이 240자를 초과하는 경우 Macie는 이름의 시작 부분에서 문자를 제거하여 이름을 잘라냅니다. 결과적인 전체 경로가 250자를 초과하는 경우 Macie는 경로의 첫 번째 요소부터 시작하여 경로에 250자 이하가 될 때까지 경로를 잘라냅니다.

recordIndex Integer Avro 객체 컨테이너 또는 Parquet 파일의 경우 발생이 포함된 레코드의 레코드 인덱스 (0부터 시작). JSON Lines 파일의 경우, 발생이 포함된 행의 행 인덱스 (0부터 시작) JSON 파일의 경우 이 값은 항상 0입니다.

다음 예제는 Macie가 Parquet 파일에서 탐지한 민감한 데이터의 발생 위치를 지정하는 Record 객체의 구조를 보여줍니다.

"records": [ { "jsonPath": "$['abcdefghijklmnopqrstuvwxyz']", "recordIndex": 7663 } ]

위의 예에서 조사 결과는 Macie가 인덱스 7663의 레코드 (레코드 번호 7664) 에서 민감한 데이터를 탐지했음을 나타냅니다. 이 레코드에서 Macie는 이름이 abcdefghijklmnopqrstuvwxyz인 필드에서 민감한 데이터를 발견했습니다. 레코드에 있는 필드의 전체 JSON 경로는 $.abcdefghijklmnopqrstuvwxyz입니다. 필드는 루트 (외부 수준) 객체의 직계 하위 항목입니다.

다음 예제는 Macie가 Parquet 파일에서 감지한 민감한 데이터 발생에 대한 Record 객체 구조도 보여줍니다. 하지만 이 예제에서는 이름이 문자 제한을 초과했기 때문에 Macie가 해당 발생이 포함된 필드 이름을 잘라냈습니다.

"records": [ { "jsonPath": "$['...uvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz']", "recordIndex": 7663 } ]

위 예제에서 필드는 루트 (외부 수준) 객체의 직계 하위 항목입니다.

다음 예제에서도 Macie가 Parquet 파일에서 감지한 민감한 데이터의 경우 해당 항목이 포함된 필드의 전체 경로를 잘라냈습니다. 전체 경로가 문자 제한을 초과했습니다.

"records": [ { "jsonPath": "$..usssn2.usssn3.usssn4.usssn5.usssn6.usssn7.usssn8.usssn9.usssn10.usssn11.usssn12.usssn13.usssn14.usssn15.usssn16.usssn17.usssn18.usssn19.usssn20.usssn21.usssn22.usssn23.usssn24.usssn25.usssn26.usssn27.usssn28.usssn29['abcdefghijklmnopqrstuvwxyz']", "recordIndex": 2335 } ]

위의 예에서 조사 결과는 Macie가 인덱스 2335의 레코드 (레코드 번호 2336) 에서 민감한 데이터를 탐지했음을 나타냅니다. 이 레코드에서 Macie는 이름이 abcdefghijklmnopqrstuvwxyz인 필드에서 민감한 데이터를 발견했습니다. 레코드에 있는 필드의 전체 JSON 경로는 다음과 같습니다.

$['1234567890']usssn1.usssn2.usssn3.usssn4.usssn5.usssn6.usssn7.usssn8.usssn9.usssn10.usssn11.usssn12.usssn13.usssn14.usssn15.usssn16.usssn17.usssn18.usssn19.usssn20.usssn21.usssn22.usssn23.usssn24.usssn25.usssn26.usssn27.usssn28.usssn29['abcdefghijklmnopqrstuvwxyz']

다음 예제는 Macie가 JSON 파일에서 탐지한 민감한 데이터의 발생 위치를 지정하는 Record 개체의 구조를 보여줍니다. 이 예제에서 이 발생은 배열의 특정 값입니다.

"records": [ { "jsonPath": "$.access.key[2]", "recordIndex": 0 } ]

위 예제에서 조사 결과는 Macie가 이름이 key인 배열의 두 번째 값에서 민감한 데이터를 탐지했음을 나타냅니다. 배열은 이름이 access인 객체의 하위 배열입니다.

다음 예제는 Macie가 JSON Lines 파일에서 탐지한 민감한 데이터의 발생 위치를 지정하는 Record 개체의 구조를 보여줍니다.

"records": [ { "jsonPath": "$.access.key", "recordIndex": 3 } ]

위 예제의 결과는 Macie가 파일의 세 번째 값(행)에서 민감한 데이터를 탐지했음을 나타냅니다. 이 줄에서는 이름이 key인 필드에서 발생하는데, 이 필드는 이름이 access인 객체의 하위 필드입니다.