Cortex Code를 위한 데이터 거버넌스 스킬

Cortex Code에는 Snowflake 계정의 데이터를 이해하고, 보호하고, 모니터링하는 데 도움이 되도록 설계된 기본 제공 데이터 거버넌스 스킬이 포함되어 있습니다. 이러한 스킬은 Snowflake 환경에서 직접 작동하고 필요한 사항을 일반 영어로 설명하며, Cortex Code가 필요한 쿼리, 분류 및 분석을 생성하고 실행합니다. 실행할 스킬에 대해 알 필요는 없습니다. Cortex Code가 질문에 답변하는 데 필요한 스킬을 자동으로 선택합니다.

시작하기

  1. :doc:`Cortex Code CLI를 설치하고 계정에 연결 </user-guide/cortex-code/cortex-code-cli>`합니다.

  2. :ref:`액세스 제어 요구 사항을 충족 <label-dg_skills_access_control_requirements>`하는지 확인합니다.

  3. 명령줄에서 질문을 시작합니다. 아래 예제 프롬프트 중 하나를 Cortex Code에서 직접 사용할 수 있습니다. Cortex Code는 질문에 따라 적절한 스킬을 자동으로 선택하므로 특별한 명령이 필요하지 않습니다.

일반 데이터 거버넌스

데이터 거버넌스 스킬은 Snowflake 계정 전체에서 액세스 제어, 감사 추적, 권한, 역할 계층 구조, 규정 준수 모니터링에 대한 질문에 답변할 수 있습니다. Cortex Code는 스킬을 사용하여 효과적인 쿼리 패턴의 임베디드 의미 체계 모델을 통해 Snowflake의 ACCOUNT_USAGE 뷰에 대해 SQL 쿼리를 실행합니다.

Cortex Code는 다음 작업을 수행하는 데 도움이 될 수 있습니다.

  • 누가 어떤 데이터에 언제 액세스했는지 감사 — 사용자 액세스 패턴을 이해하고, 쿼리 기록을 추적하며, 작업 시간 이후의 활동이나 비정상적인 활동을 식별합니다.

  • 권한 및 역할 계층 구조 분석 — 사용자의 최소 권한 액세스를 보장하기 위해 권한 부여, 역할 할당, 권한 구조를 검토합니다.

  • 규정 준수 태세 모니터링 — 계정 전체에서 마스킹 정책, 행 액세스 정책, 집계 정책, 태그 사용을 분석합니다.

  • 오브젝트 종속성 조사 — 데이터베이스, 스키마, 테이블, 뷰가 서로 어떻게 관련되어 있는지 이해합니다.

  • DDL 변경 사항 추적 — 오브젝트를 생성, 변경 또는 삭제한 사용자와 시점을 확인합니다.

프롬프트 예제

"Who has accessed the SALES.NA.CUSTOMERS table in the last 30 days?"
"Show me all users with the ACCOUNTADMIN role"
"What tables were accessed outside of business hours last week?"
"List all grants to the ANALYST_ROLE"
"Which users have run DDL operations on the FINANCE database in the last 7 days?"
"Show me the role hierarchy for my account"
"What masking policies are applied across my account?"
"Which tables have no row access policies attached?"
"Show me all tag references in the ANALYTICS database"

민감한 데이터 분류

민감한 데이터 분류를 위한 데이터 거버넌스 스킬은 개인 식별 정보(PII) 및 Snowflake 테이블의 기타 민감한 데이터를 감지하고 분류할 수 있습니다. Snowflake의 네이티브 SYSTEM$CLASSIFY 함수를 사용하여 테이블을 스캔하고 이메일, 전화번호, 주민등록번호, 주소와 같은 데이터가 포함된 열을 식별합니다. 또한 지속적인 모니터링을 위해 자동화된 분류 프로필을 설정할 수도 있습니다.

Cortex Code는 다음 작업을 수행하는 데 도움이 될 수 있습니다.

  • 테이블에서 PII 검색 — 개별 테이블 또는 전체 스키마를 스캔하여 이메일, 이름, 전화번호, 신용카드 번호, 주민등록번호와 같은 민감한 데이터가 포함된 열을 찾습니다.

  • 기존 분류 결과 분석DATA_CLASSIFICATION_LATEST 뷰를 쿼리하여 PII가 이미 감지되었는지, 어떤 테이블에 가장 민감한 열이 있는지, 민감한 데이터가 있는 카테고리가 무엇인지 확인합니다.

  • 자동 분류 설정 — 데이터베이스에서 새로운 민감한 데이터를 지속적으로 모니터링하고 원하는 경우 열에 자동으로 태그를 추가하는 분류 프로필을 생성합니다.

  • 사용자 지정 분류기 생성 — Snowflake의 기본 제공 카테고리에서 다루지 않는 도메인별 민감한 데이터(직원 IDs, 내부 코드, 사용자 지정 유형)에 대한 정규식 기반 분류기를 정의합니다.

  • 분류 정확도 테스트 및 검증 — 대표적인 테이블에 대해 분류기를 실행하여 감지 정확도를 확인한 후 프로덕션에 배포합니다.

프롬프트 예제

"Scan SALES.NA.ORDERS for PII"
"Does the CUSTOMERS table contain any sensitive data?"
"What PII exists across my ANALYTICS database?"
"Show me all columns classified as EMAIL or PHONE in my account"
"Which tables have the most sensitive columns?"
"Create a classification profile for the PROD_DB database"
"Set up auto-classification with auto-tagging enabled"
"Create a custom classifier for employee IDs that match the pattern EMP-XXXXX"
"Show me classification results for the NA.FINANCE schema"
"Which tables need re-classification (older than 90 days)?"

데이터 보호 정책

데이터 보호 정책에 대한 데이터 거버넌스 스킬은 Snowflake 마스킹 정책, 행 액세스 정책, 프로젝션 정책을 생성, 감사, 관리하는 데 도움이 됩니다. 새 정책을 빌드하고 기존 정책을 감사하기 위한 모범 사례, 입증된 패턴(예: 특성 기반 액세스 제어), 안내 워크플로를 제공합니다. PCI-DSS, HIPAA, GDPR, CCPA, SOX 및 FERPA에 대한 규정 준수 참조 자료도 포함되어 있습니다.

Cortex Code는 다음 작업을 수행하는 데 도움이 될 수 있습니다.

  • 마스킹 정책 생성IS_ROLE_IN_SESSION() 및 메모이제이션 가능 함수 같은 모범 사례를 사용하여 쿼리하는 사용자의 역할에 따라 민감한 데이터를 동적으로 수정하는 열 수준 마스킹 정책을 빌드합니다.

  • 행 액세스 정책 생성 — 역할 구성원 자격, 특성 또는 조회 테이블을 기반으로 사용자가 볼 수 있는 행을 제한합니다.

  • 프로젝션 정책 생성 — 열이 쿼리 결과에 표시될 수 있는지 여부를 제어합니다.

  • 기존 정책 감사 — 계정의 모든 정책을 인벤토리화하고, 보안 모범 사례의 검사 목록과 비교하여 정책을 평가하고, 안티 패턴을 식별합니다(예: IS_ROLE_IN_SESSION 대신 CURRENT_ROLE 함수 사용).

  • 분산된 정책 통합 — 테이블별 정책에서 거버넌스 데이터베이스에 중앙 집중화된 재사용 가능한 일반 정책으로 마이그레이션합니다.

  • 규제 요구 사항 충족 — 특정 규정 준수 프레임워크(의료의 경우 HIPAA, 결제 데이터의 경우 PCI-DSS, EU 개인 데이터의 경우 GDPR)에 맞춘 정책 템플릿과 지침을 확인합니다.

프롬프트 예제

"Create a masking policy for the EMAIL column in the SALES.NA.CUSTOMERS table"
"Help me set up row access policies for the FINANCE schema"
"Audit all masking policies in my account"
"Are there any anti-patterns in my existing data policies?"
"Create a HIPAA-compliant masking policy for PHI columns"
"Show me the best practice for role-based masking"
"I need a projection policy to prevent the SSN column from appearing in query results"
"Help me consolidate my scattered masking policies into reusable ones"
"What's the recommended pattern for Attribute-Based Access Control (ABAC)?"
"Generate a policy health report for my account"

데이터 품질

데이터 품질을 위한 데이터 거버넌스 스킬은 데이터 메트릭 함수(DMFs)를 사용하여 Snowflake 스키마 전체에서 데이터 품질을 모니터링하고 분석합니다. 상태 채점, 실패한 메트릭에 대한 근본 원인 분석, 회귀 감지, 추세 분석, SLA 경고, 마이그레이션 유효성 검사를 위한 테이블 비교, 데이터 세트 인기도 분석을 제공합니다.

Cortex Code는 다음 작업을 수행하는 데 도움이 될 수 있습니다.

  • 스키마 상태 확인 — 스키마에 대한 전체 데이터 품질 점수를 확인하여 통과한 메트릭과 실패한 메트릭 수, 모니터링되는 테이블을 보여줍니다.

  • 품질 실패 조사 — 실패한 메트릭을 심층 분석하여 문제가 있는 테이블과 열 및 문제가 무엇인지 파악하고 수정 권장 사항을 얻을 수 있습니다.

  • 품질 회귀 감지 — 현재 품질을 이전 측정값과 비교하여 품질이 향상되거나 저하되었는지 확인하고 새로운 오류를 식별합니다.

  • 품질 추세 추적 — 시계열 품질 점수를 확인하여 시간이 지남에 따라 품질이 개선되는지, 안정적인지 아니면 감소하고 있는지 파악합니다.

  • SLA 경고 설정 — 데이터 품질이 임계값 미만으로 떨어질 때 이를 알리는 자동화된 Snowflake ALERT 오브젝트를 생성합니다.

  • 테이블 비교 — 데이터 마이그레이션을 검증하고, 개발 데이터와 프로덕션 데이터를 조정하거나 두 테이블 버전(추가, 제거, 수정된 행, 스키마 차이) 간의 행 수준 차이를 찾습니다.

  • 데이터 세트 인기도 분석 — 가장 많이 사용되는 테이블과 가장 적게 사용되는 테이블을 식별하고, 사용되지 않거나 부실한 데이터를 찾고, 누가 어떤 데이터 세트를 사용하고 있는지 파악합니다.

프롬프트 예제

"What is the data quality score for ANALYTICS.REPORTING?"
"Why is the SALES.CUSTOMERS.ORDERS table failing quality checks?"
"Has data quality improved or gotten worse in the DB.FINANCE schema this month?"
"Show me quality trends for PROD_DB.SALES over the last 30 days"
"Set up an alert if data quality in ANALYTICS.CORE drops below 90%"
"Compare STAGING.ORDERS_V1 with STAGING.ORDERS_V2"
"Find the differences between dev and prod versions of the SALES.ORDERS.CUSTOMERS table"
"Which tables in my account are the most popular?"
"Are there any unused tables in the SANDBOX database?"
"Show me the root cause of quality failures in SALES.ORDERS"

계보

계보에 대한 데이터 거버넌스 스킬은 업스트림(데이터의 출처) 및 다운스트림(이 데이터에 종속된 항목) 모두에 걸쳐 Snowflake 계정에서 데이터 종속성을 추적합니다. 테이블 수준 및 열 수준 계보, 위험 채점을 통한 영향 분석, 변경 감지를 통한 근본 원인 분석, 신뢰 채점을 통한 데이터 검색을 지원합니다.

Cortex Code는 다음 작업을 수행하는 데 도움이 될 수 있습니다.

  • 변경 사항의 영향 평가 — 테이블을 수정하기 전에 테이블에 종속된 모든 다운스트림 오브젝트를 위험도(CRITICAL, MODERATE ,LOW)에 따라 순위를 지정하여 사용 빈도 및 영향을 받는 사용자 수와 함께 확인합니다.

  • 업스트림을 추적하여 데이터 문제 디버깅 — 보고서에 잘못된 숫자가 표시되면 변환 레이어를 통해 데이터를 다시 추적하여 최근 스키마 및 데이터 변경 사항을 포함해 문제가 발생한 위치를 식별합니다.

  • 신뢰할 수 있는 데이터 세트 검색 및 확인 — 스키마 계층(프로덕션, 스테이징, 원시, 샌드박스), 사용 패턴 및 데이터 최신성을 기반으로 하는 신뢰 점수를 사용하여 주어진 분석에 사용할 최상의 테이블을 찾습니다.

  • 열 수준 종속성 추적 — 특정 열을 사용하는 다운스트림 열을 이해하거나 변환 레이어를 통해 열을 다시 원래 소스로 추적합니다.

  • 계보의 최근 변경 사항 감지 — 데이터 품질 문제와 상관 관계를 파악하기 위해 계보 경로 전반에 걸쳐 스키마 변경, 데이터 수정 및 DDL 작업을 식별합니다.

프롬프트 예제

"What will break if I change RAW_DB.SALES.ORDERS?"
"What depends on the SALES.SCH1.CUSTOMERS table?"
"Where does ANALYTICS_DB.REPORTING.REVENUE come from?"
"Why is the REVENUE_SUMMARY table showing wrong numbers?"
"Which table should I use for customer revenue analysis?"
"Is STAGING_DB.TRANSFORM.ORDERS_ENRICHED trustworthy?"
"What uses the AMOUNT column in SALES.ORDERS?"
"Where does the TOTAL_SALES column in the REVENUE report come from?"
"Show me the full lineage for SUMMIT.DEMO.SHIPMENTS"
"Has the DISCOUNT_PCT column in ORDERS changed recently?"

액세스 제어 요구 사항

Cortex Code에서 데이터 거버넌스 스킬을 성공적으로 호출하려면 다음이 있어야 합니다.

  • Cortex Code에 필요한 권한 및 역할.

  • 관심 있는 스키마, 테이블, 뷰에 대한 액세스 권한.

    • 민감한 데이터 분류 질문의 경우 테이블이나 뷰에 대한 OWNERSHIP 또는 USAGE 권한이 필요합니다.

    • 데이터 보호 정책의 경우 테이블이 포함된 스키마에 대한 CREATE MASKING POLICY 또는CREATE ROW ACCESS POLICY 권한이 필요합니다.

  • ACCOUNT_USAGE 스키마의 뷰에 대한 액세스 권한. 기본적으로, ACCOUNTADMIN 시스템 역할에는 ACCOUNT_USAGE 스키마의 뷰에 액세스할 수 있는 권한이 있습니다. 다른 사용자에게 이러한 뷰에 액세스할 수 있는 권한을 부여하려면 다음 중 하나를 수행하면 됩니다.

    • SNOWFLAKE 데이터베이스에 대한 IMPORTED PRIVILEGES 권한을 사용자 역할에 부여합니다. 이는 사용자가 모든 ACCOUNT_USAGE 뷰뿐만 아니라 ORGANIZATION_USAGE 스키마의 뷰에 대한 액세스 권한도 부여할 수 있는 광범위한 권한 부여입니다.

    • 뷰에 액세스하는 데 필요한 데이터베이스 역할을 부여합니다. 모든 거버넌스 관련 항목에 Cortex Code를 사용하려면 사용자에게 OBJECT_VIEWER, USAGE_VIEWER, GOVERNANCE_VIEWER, SECURITY_VIEWER 데이터베이스 역할이 모두 필요합니다. 사용자가 데이터 거버넌스의 특정 측면에 대해 알아보지 못하도록 제한하려면 이러한 역할의 하위 세트를 부여합니다. 각 역할이 액세스할 수 있는 뷰 목록은 ACCOUNT_USAGE 스키마 섹션을 참조하세요.

최상의 결과를 위한 팁

  • 오브젝트 이름을 구체적으로 사용해야 함 — 가장 정확한 결과를 얻으려면 :code:`DATABASE.SCHEMA.TABLE`과 같은 정규화된 이름을 사용합니다.

  • 광범위하게 시작한 다음 자세히 살펴보기 — 상태 확인 또는 개요로 시작한 다음, 후속 질문을 통해 특정 문제를 조사합니다.