검사 결과를 Dataplex 범용 카탈로그에 관점으로 전송

이 문서에서는 BigQuery 테이블에서 민감한 데이터를 검사하고 검사 결과를 Dataplex Universal Catalog로 전송하는 방법을 설명합니다. 이 작업은 BigQuery 테이블과 연결된 Dataplex Universal Catalog 항목측면을 자동으로 추가합니다.

이 문서에서는 조직 및 프로젝트에서 특정 측면 값을 갖는 데이터를 찾는 데 사용할 수 있는 쿼리 예시도 제공합니다.

이 기능은 Dataplex Universal Catalog의 메타데이터를 Sensitive Data Protection 검사 작업의 민감한 정보 분류로 보강하려는 경우에 유용합니다.

생성된 측면에는 다음 세부정보가 포함됩니다.

  • 검사 작업의 이름
  • 표에서 감지된 정보 유형 (infoTypes)

Dataplex Universal Catalog 정보

Dataplex 범용 카탈로그는 Google Cloud 리소스의 통합 인벤토리를 제공합니다.

Dataplex Universal Catalog를 사용하면 관점을 사용하여 데이터에 비즈니스 및 기술 메타데이터를 추가하여 리소스에 관한 컨텍스트와 지식을 파악할 수 있습니다. 그런 다음 조직 전체에서 데이터를 검색하고 탐색할 수 있으며 데이터 애셋에 대한 데이터 거버넌스를 사용 설정할 수 있습니다. 자세한 내용은 관점을 참고하세요.

작동 방식

검사 작업 결과를 기반으로 Dataplex 범용 카탈로그 측면을 자동으로 만들려면 다음 개략적인 워크플로를 따르세요.

  1. BigQuery 테이블을 검사하는 검사 작업을 만들거나 수정합니다. 자세한 내용은 BigQuery 테이블 검사하기를 참고하세요.

  2. 작업 추가 단계에서 Dataplex Universal Catalog에 게시를 사용 설정합니다.

민감한 정보 보호는 BigQuery 테이블과 연결된 Dataplex 범용 카탈로그 항목Sensitive Data Protection job result 측면을 추가하거나 업데이트합니다. 그런 다음 Dataplex Universal Catalog에서 특정 관점 값을 가진 조직 또는 프로젝트의 모든 데이터를 검색할 수 있습니다. 쿼리 예시는 이 문서의 검색 쿼리 예시를 참고하세요.

결과 Dataplex 범용 카탈로그 측면은 BigQuery 테이블과 동일한 프로젝트 및 리전에 저장됩니다.

관점 필드

Sensitive Data Protection job result 측면에는 다음 필드가 있습니다.

작업 이름
검사 작업의 전체 리소스 이름입니다(예: projects/example-project/locations/us/dlpJobs/i-8992079400000000000).
InfoType 개수
검사 작업에서 검색한 infoType 이름(검사 구성에 지정됨)과 각 infoType의 발견 항목 수입니다. 발견 항목이 없는 infoType의 개수는 0입니다.
종료 시간
검사 작업이 종료된 날짜와 시간입니다.
전체 스캔 여부
검사 작업에서 테이블의 모든 행을 스캔했는지 여부입니다. 예를 들어 검사 작업에서 샘플링이 사용 설정된 경우 이 필드의 값은 False입니다.
발견 항목 있음
검사 작업에서 스캔한 infoType이 감지되었는지 여부입니다.

Dataplex API 사용 설정

측면을 추가하려는 데이터가 포함된 각 프로젝트에서 Dataplex API를 사용 설정해야 합니다. 이 섹션에서는 단일 프로젝트 또는 조직이나 폴더의 모든 프로젝트에서 Dataplex API를 사용 설정하는 방법을 설명합니다.

단일 프로젝트에서 Dataplex API 사용 설정

  1. Dataplex API를 사용 설정할 프로젝트를 선택합니다.

    프로젝트 선택기로 이동

  2. Enable the Dataplex API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

조직 또는 폴더의 모든 프로젝트에서 Dataplex API 사용 설정

이 섹션에서는 조직 또는 폴더의 모든 프로젝트를 검색하고 각 프로젝트에서 Dataplex API를 사용 설정하는 스크립트를 제공합니다.

조직 또는 폴더의 모든 프로젝트에서 Dataplex API를 사용 설정하는 데 필요한 권한을 얻으려면 관리자에게 다음 IAM 역할을 부여해 달라고 요청하세요.

역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

이러한 사전 정의된 역할에는 조직 또는 폴더의 모든 프로젝트에서 Dataplex API를 사용 설정하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

필수 권한

조직 또는 폴더의 모든 프로젝트에서 Dataplex API를 사용 설정하려면 다음 권한이 필요합니다.

  • 조직 또는 폴더의 모든 프로젝트를 검색하려면 다음을 충족해야 합니다. cloudasset.assets.searchAllResources 조직 또는 폴더에 대한 권한
  • Dataplex API를 사용 설정하려면 Dataplex API를 사용 설정할 각 프로젝트에서 serviceusage.services.use를 실행합니다.

커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

조직 또는 폴더의 모든 프로젝트에서 Dataplex API를 사용 설정하려면 다음 단계를 따르세요.

  1. In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

  2. 다음 스크립트를 실행합니다.

    #!/bin/bash
    
    RESOURCE_ID="RESOURCE_ID"
    
    gcloud asset search-all-resources \
        --scope="RESOURCE_TYPE/$RESOURCE_ID" \
        --asset-types="cloudresourcemanager.googleapis.com/Project" \
        --format="value(name)" |
        while read project_name; do
          project_id=$(echo "$project_name" | sed 's|.*/||')
          gcloud services enable "dataplex.googleapis.com" --project="$project_id"
        done
    

    다음을 바꿉니다.

    • RESOURCE_ID: 프로젝트가 포함된 리소스의 조직 번호 또는 폴더 번호
    • RESOURCE_TYPE: 프로젝트가 포함된 리소스의 유형(organizations 또는 folders)
  3. 측면 보기 권한 및 역할

    BigQuery 테이블과 연결된 측면을 검색하는 데 필요한 권한을 얻으려면 관리자에게 테이블에 대한 다음 IAM 역할을 부여해 달라고 요청하세요.

    역할 부여에 대한 자세한 내용은 프로젝트, 폴더, 조직에 대한 액세스 관리를 참조하세요.

    이러한 사전 정의된 역할에는 BigQuery 테이블과 연결된 측면을 검색하는 데 필요한 권한이 포함되어 있습니다. 필요한 정확한 권한을 보려면 필수 권한 섹션을 펼치세요.

    필수 권한

    BigQuery 테이블과 연결된 측면을 검색하려면 다음 권한이 필요합니다.

    • Dataplex Universal Catalog 항목을 확인합니다.
      • dataplex.entries.list
      • dataplex.entries.get
    • BigQuery 데이터 세트 및 테이블 보기:
      • bigquery.datasets.get
      • bigquery.tables.get

    커스텀 역할이나 다른 사전 정의된 역할을 사용하여 이 권한을 부여받을 수도 있습니다.

    Dataplex Universal Catalog를 사용하는 데 필요한 권한에 관한 자세한 내용은 Dataplex Universal Catalog IAM 권한을 참고하세요.

    Sensitive Data Protection 검사 작업 구성 및 실행

    Google Cloud 콘솔 또는 DLP API를 사용하여 민감한 정보 보호 검사 작업을 구성하고 실행할 수 있습니다.

    콘솔

    1. Google Cloud 콘솔에서 작업 또는 작업 트리거 만들기 페이지로 이동합니다.

      작업 또는 작업 트리거 만들기로 이동

    2. 프로젝트를 선택합니다.
    3. 필수 검사 작업 세부정보와 검사할 BigQuery 테이블의 세부정보를 입력합니다. 자세한 내용은 BigQuery 테이블 검사를 참고하세요. Sensitive Data Protection에서 검사할 수 있는 정보 유형의 전체 목록은 InfoType 감지기 참조를 확인하세요.
    4. 작업 추가의 경우 Dataplex Universal Catalog에 게시를 사용 설정합니다.
    5. 만들기를 클릭합니다. 작업이 즉시 실행됩니다.

    REST

    다음 예에서는 BigQuery 테이블을 검사하고 결과를 Dataplex Universal Catalog로 전송하는 projects.locations.dlpJobs.create 요청을 전송합니다.

    요청 데이터를 사용하기 전에 다음을 바꿉니다.

    • PROJECT_ID: Google Cloud 프로젝트 ID입니다. 프로젝트 ID는 영숫자 문자열입니다.
    • LOCATION: 요청을 처리할 리전 또는 멀티 리전입니다(예: europe-west1 또는 us). 사용 가능한 위치는 Sensitive Data Protection 위치를 참고하세요.
    • BIGQUERY_DATASET_NAME: 검사할 테이블이 포함된 BigQuery 데이터 세트의 이름
    • BIGQUERY_TABLE_NAME: 검사할 BigQuery 테이블의 이름

    HTTP 메서드 및 URL:

    POST https://dlp.googleapis.com/v2/projects/PROJECT_ID/locations/LOCATION/dlpJobs

    JSON 요청 본문:

    {
                  "inspectJob":
                  {
                    "storageConfig":
                    {
                      "bigQueryOptions":
                      {
                        "tableReference":
                        {
                          "projectId": "PROJECT_ID",
                          "datasetId": "BIGQUERY_DATASET_NAME",
                          "tableId": "BIGQUERY_TABLE_NAME"
                        }
                      }
                    },
                    "inspectConfig":
                    {
                      "infoTypes":
                      [
                        {
                          "name": "EMAIL_ADDRESS"
                        },
                        {
                          "name": "PERSON_NAME"
                        },
                        {
                          "name": "US_SOCIAL_SECURITY_NUMBER"
                        },
                        {
                          "name": "PHONE_NUMBER"
                        }
                      ],
                      "includeQuote": true,
                      "minLikelihood": "UNLIKELY",
                      "limits":
                      {
                        "maxFindingsPerRequest": 100
                      }
                    },
                    "actions":
                    [
                      {
                        "publishFindingsToDataplexCatalog": {}
                      }
                    ]
                  }
                }
    

    요청을 보내려면 다음 옵션 중 하나를 펼칩니다.

    다음과 비슷한 JSON 응답이 표시됩니다.

    {
      "name": "projects/PROJECT_ID/locations/LOCATION/dlpJobs/JOB_ID",
      "type": "INSPECT_JOB",
      "state": "PENDING",
      "inspectDetails": {
        "requestedOptions": {
          "snapshotInspectTemplate": {},
          "jobConfig": {
            "storageConfig": {
              "bigQueryOptions": {
                "tableReference": {
                  "projectId": "PROJECT_ID",
                  "datasetId": "BIGQUERY_DATASET_NAME",
                  "tableId": "BIGQUERY_TABLE_NAME"
                }
              }
            },
            "inspectConfig": {
              "infoTypes": [
                {
                  "name": "EMAIL_ADDRESS"
                },
                {
                  "name": "PERSON_NAME"
                },
                {
                  "name": "US_SOCIAL_SECURITY_NUMBER"
                },
                {
                  "name": "PHONE_NUMBER"
                }
              ],
              "minLikelihood": "UNLIKELY",
              "limits": {
                "maxFindingsPerRequest": 100
              },
              "includeQuote": true
            },
            "actions": [
              {
                "publishFindingsToDataplexCatalog": {}
              }
            ]
          }
        },
        "result": {}
      },
      "createTime": "2025-09-09T00:29:55.951374Z",
      "lastModified": "2025-09-09T00:29:58.022967Z"
    }
    

    DLP API를 사용하여 검사 작업 결과를 가져오는 방법에 대한 자세한 내용은 작업 가져오기를 참고하세요.

    검색어 예

    이 섹션에서는 Dataplex Universal Catalog에서 특정 관점 값을 사용하여 조직 또는 프로젝트의 데이터를 찾는 데 사용할 수 있는 검색어의 예를 제공합니다.

    액세스 권한이 있는 데이터만 찾을 수 있습니다. 데이터 액세스는 IAM 권한을 통해 제어됩니다. 자세한 내용은 이 문서의 관점 보기 권한 및 역할을 참고하세요.

    Dataplex Universal Catalog 검색 페이지의 검색 필드에 이러한 예시 쿼리를 입력할 수 있습니다.

    검색 페이지로 이동

    쿼리를 구성하는 방법에 관한 자세한 내용은 Dataplex Universal Catalog 검색 구문을 참고하세요.

    Sensitive Data Protection 작업 결과 측면이 있는 모든 테이블의 항목 찾기

    aspect:sensitive-data-protection-job-result
    

    검사된 테이블 중 발견 항목이 있는 항목 찾기

    aspect:sensitive-data-protection-job-result.hasFindings=True
    

    검사한 테이블 중 발견 항목이 없는 항목 찾기

    aspect:sensitive-data-protection-job-result.hasFindings=False
    

    완전히 검사된 테이블의 항목 찾기

    다음 쿼리는 민감한 정보 보호가 행별로 검사한 테이블의 항목을 반환합니다.

    aspect:sensitive-data-protection-job-result.isFullScan=True
    

    완전히 검사되지 않은 테이블의 항목 찾기

    다음 쿼리는 민감한 정보 보호가 샘플링을 통해 검사한 테이블의 항목을 반환합니다.

    aspect:sensitive-data-protection-job-result.isFullScan=False