쿼리가 들어올 때 어떻게 해야 효과적으로 저장할 수 있나요

성남상공회의소가 지난 10월 서울·성남·수원·용인 등 수도권 12개 대학에 다니는 대학생에게 설문한 결과, 취업하고 싶은 기업 1위에 네이버가 뽑혔다고 합니다. 네이버는 국내 1위 포털 업체죠. 설문에 참여한 대학생들은 높은 인지도와 좋은 복리후생 조건, 고액 급여, 그리고 일하기 좋은 근로 환경 등을 네이버 취업 희망의 이유로 꼽았다고 합니다.

쿼리가 들어올 때 어떻게 해야 효과적으로 저장할 수 있나요

아래는 네이버 면접장에서 듣게 될지도 모르는 질문 41가지 입니다. 전∙현직 임직원이 직접 기업에 관한 평가를 작성하는 국내 기업평가 정보 서비스 잡플래닛의 도움을 받아 네이버가 면접장에서 구직자에게 어떤 질문을 했는지 모아봤습니다. 디자인과 IT, 개발, 경영 등 직군별로 나눠봤더니 질문의 형식이 조금씩 다르다는 것도 알 수 있었습니다. 특히, IT를 비롯한 개발자 직군에 지원한 구직자들은 이른바 '손코딩' 등 실무적인 내용에 관한 질문도 많이 받았습니다. 다음 질문에 만족스러운 답변을 하실 수 있으신가요? 구직을 준비 중이시라면, 연습 삼아 답변을 준비해 보는 것은 어떨까요?

디자인 직군 지원자

1. 팀원 중 의견이 안 맞는 직원이 있다면 어떻게 대처할 것인가요?

2. 현재 네이버에서 개발 중인 이 서비스를 어떻게 디자인할 건가요?

3. 다른 디자이너와 당신의 차별점은 무엇인가요?

4. 좋아하는 브랜드가 있나요? 브랜드란 무엇인가요?

5. 네이버에 와서 가장 얻고 싶은 것은 무엇인가요?

6. 당신이 생각하는 디자인이란 무엇인가요?

7. 함께 면접을 본 학교 동기를 기억하시나요? 그 동기와 당신의 장단점을 하나씩 말해보세요.

8. 네이버 앱 중 제일 마음에 안 드는 앱은 무엇인가요?

9. 최근 나온 새로운 앱 중 가장 관심을 갖고 있는 앱은 무엇인가요?

10. 다시 대학생이 된다면 무엇을 하고 싶으신가요?

11. 네이버에 와서 가장 얻고 싶은 것은 무엇인가요?

12. 작년에는 다른 직군에 지원해 서류에서 탈락한 경험이 있는데, 왜 그때는 그 직군에 지원하고 올해는 이 직군에 지원했나요?

13. 최근 디자인 트렌드는 무엇인가요?

14. 현재 당신의 포트폴리오에서 고칠 점이 무엇인지 설명해 주세요.

경영/기획/컨설팅/인사/총무 직군 지원자

15. 인턴 시절 근무하던 모 기업에서 어떤 프로젝트를 진행했고, 어떤 성과를 냈나요? 우리말로 말씀해 주신 다음 영어로 말해주세요.

16. 네이버에서 만들고 싶은 서비스는 무엇인가요?

17. 네이버와 경쟁 상대인 ‘다음(현 카카오)’에 대해 무엇이 잘못된 점인지 지적해 설명해 주세요.

18. 인사 그룹의 일원으로서 갖춰야 할 것은 무엇이라고 생각하나요?

19. 현재 다른 회사에서 인턴을 하고 있는데, 만약 이번 채용에 떨어지면 어떻게 하실 건가요?

IT/인터넷 개발 직군 지원자

20. 당신의 꿈은 무엇인가요? 정말 솔직한 자신의 꿈을 말해주세요.

21. 이전 프로젝트에서 어떤 갈등이 있었고, 그 문제를 어떻게 해결했나요? 구체적인 사례를 들어 설명해 주세요.

22. 쿼리가 들어올 때, 어떻게 해야 효과적으로 저장할 수 있나요?

23. 이 직무를 위해 당신이 정말 이것만은 열심히 했다고 생각하는 것이 있나요? 무엇인가요?

24. 이전 직장에서 업무로 어떤 평가를 받았나요?

25. 당신의 성장 과정과 특정 기업 사이에서 연관된 부분을 발견하고, 해당 기업을 소개해보세요.

26. 기획으로 내려온 내용이 마음에 들지 않는다면, 개발자 입장에서 당신은 이를 어떻게 처리할 것인가요?

27. 지금까지 당신은 성공적인 사례만을 들어 본인을 소개했는데, 당신이 실패한 사례에 관해 얘기해 주세요. 그 경험으로 당신은 무엇을 배웠나요?

28. 자주 보는 네이버 웹툰은 무엇인가요?

29. 최근에 읽은 책은 무엇인가요?

30. 네이버 서비스 중 가장 개선하고 싶은 것은 무엇인가요?

31. 지구의 질량을 더하기만 써서 계산해 보세요.

32. ‘C언어’의 프로세스 공간에 관해 설명해 보세요.

33. 1부터 100까지 더하는 프로그램을 칠판에 작성해보세요.

34. 모바일 환경이 네이버 서비스에 어떤 영향을 미칠 것으로 예상하나요?

35. 회사가 어려우면 이직할 마음이 있나요? 이전 회사에서도 그러한 이유로 네이버에 지원하신 것 아닌가요?

36. 갑자기 준비한 PT 자료가 날아갔다거나, 데이터가 날아가는 등 위기 상황이 발생하면 어떻게 대처하실 건가요?

37. OSI 7계층이 무엇인지 설명해 보세요.

38. 소팅 알고리즘을 슈도 코드로 구현하되, 변수를 사용하지 않고 해보세요.

39. 가장 어려웠던 개발 경험은 무엇인가요?

40. 스택과 링크드리스트와 리스트의 차이점을 설명해 보세요.

41. 64비트와 32비트의 차이점은 무엇인가요?

© Bloter&Media Inc. All rights reserved.

데이터 보안 및 거버넌스 개요

데이터 거버넌스란?

이 문서에서는 데이터 거버넌스의 개념과 BigQuery 리소스 보안을 위해 필요한 컨트롤에 대해 살펴봅니다.

소개

데이터 거버넌스는 수집에서 사용, 폐기에 이르는 수명 주기 동안 데이터를 관리하는 데 사용되는 원칙적인 접근법입니다. 데이터 거버넌스 프로그램은 데이터 활동을 둘러싼 정책, 절차, 책임, 제어를 명확하게 설명합니다. 이 프로그램은 조직의 데이터 무결성과 보안 요구사항을 충족하는 방식으로 정보 수집, 유지 관리, 사용, 배포를 보장합니다. 또한 직원이 데이터를 검색하고 최대한 활용하는 역량을 강화합니다.

모든 조직에서는 데이터가 수집될 때부터 유용한 정보를 얻는 데 사용될 수 있을 때까지 데이터 관리 및 거버넌스를 가장 중요하게 고려해야 합니다.

다음 세 가지 주요 구성요소를 중심으로 데이터 거버넌스 사례를 구축하는 것이 좋습니다.

  • 사람들이 데이터 정책을 정의하고 동의하고 시행할 수 있게 해주는 프레임워크
  • 온프레미스 시스템, 클라우드 스토리지, 데이터 웨어하우스 플랫폼에서 모든 데이터 애셋 제어, 감독, 관리에 필요한 효과적인 프로세스
  • 데이터 정책 준수를 감독하고 관리하는 데 적합한 도구 및 기술

다음 섹션에서는 Gartner 데이터 레이크 참조 아키텍처를 통한 데이터 거버넌스에 기반을 둔 데이터 거버넌스 프레임워크와 이를 구현하는 데 사용되는 도구 및 기술을 설명합니다. 거버넌스로 충족되는 비즈니스 요구사항과 데이터 거버넌스 운용과 관련된 프로세스에 대한 설명은 클라우드 데이터 거버넌스 원칙 및 권장사항 백서를 참조하세요.

데이터 액세스 관리

기존에는 회사에서 경계 보안을 사용하여 내부 리소스를 보호했습니다. 달걀 껍질 보안 또는 성과 성벽 보안이라고도 하는 경계 보안은 위협요소가 경계 외부에만 있으며 경계 벽 내부에 있는 모든 것을 신뢰할 수 있다고 가정합니다. 하지만 공격자가 내부 네트워크에 액세스할 수 있게 되면 다른 시스템으로 이동하여 귀중한 데이터 애셋을 거의 아무런 제약 없이 탐색할 수 있기 때문에 회사에 비용이 많이 드는 결과를 초래하면서 이 가정은 잘못되었다는 것이 입증되었습니다.

공격자는 취약점, 직원이 설치한 멀웨어, 소셜 엔지니어링, 기타 수단을 통해 내부 네트워크에 액세스할 수 있습니다. 그러나 경계 보안 모델에 허점을 만드는 악의적인 외부 에이전트만이 유일한 위협요소는 아닙니다. 내부 네트워크의 애셋이 올바르게 보호되지 않는다면 신뢰할 수 있는 직원도 고의로 또는 무의식적으로 데이터를 수정, 삭제 또는 유출할 수 있습니다.

마지막으로 기업 네트워크의 진화로 인해 주변 보안이 점점 복잡해지고 있습니다. 예를 들어 다음과 같은 상황에서는 경계를 적용하기가 어렵습니다.

  • 직원이 클라이언트 사이트, 공항 또는 가정과 같은 신뢰할 수 없는 네트워크에서 원격으로 작업해야 하는 경우
  • 공급업체, 파트너 및 계약업체가 데이터 리소스에 직접 액세스해야 하는 경우
  • 회사 시스템 중 일부가 클라우드에 있는 경우

기존 온프레미스 엔터프라이즈 데이터 웨어하우스에서 마이그레이션하는 경우 사용자가 쿼리에 액세스하거나 데이터를 볼 수 있도록 하는 현재의 접근법은 심층적이지 않거나, 복잡하고 유지 관리 비용이 많이 들거나 둘 다 해당될 수 있습니다. BigQuery와 같은 클라우드 데이터 웨어하우스로 이전하면 심층적인 보안이 제공되며, 보안 프레임워크가 관리형 서비스 솔루션에 포함되어 있으므로 유지보수 비용이 적게 듭니다.

이 문서의 나머지 부분에서는 Google Cloud 및 BigQuery에서 데이터 액세스 관리를 수행하는 방법을 소개하고 자세히 설명합니다. 목표는 엔터프라이즈 데이터 웨어하우스를 마이그레이션할 때 이 보안 프레임워크로 얻을 수 있는 이점에 대한 개요를 제공하는 것입니다. 다른 클라우드에서 마이그레이션하거나 BigQuery 리소스를 처음부터 새로 빌드하는 경우에도 동일한 원칙이 적용됩니다.

리소스 관리

Google Cloud에서 워크로드를 설정하려면 Google Cloud에서 모든 리소스를 제어하는 구조와 각 제품의 특정 지침을 준수해야 합니다.

Google Cloud의 모든 리소스는 계층 구조로 구성됩니다. 최하위 수준에는 BigQuery 데이터 세트, Cloud Storage 버킷, Compute Engine 가상 머신과 같은 기본 구성요소가 있습니다. 이러한 하위 수준 리소스는 프로젝트라는 논리 컨테이너로 그룹화됩니다. 프로젝트는 모든 Google Cloud 서비스 사용, 청구 관리, 프로젝트 리소스에 대한 역할과 권한 할당의 기반을 형성합니다. 그리고 프로젝트는 회사 내 다른 부서나 팀에 해당하는 폴더로 그룹화됩니다. 계층 구조의 최상위에는 해당 계층 구조가 속하는 회사를 나타내고 여러 폴더를 포함하는 조직 노드가 있습니다. 자세한 내용은 리소스 계층 구조 문서를 참조하세요.

Google Cloud 관점에서 BigQuery 데이터 세트는 리소스 계층 구조의 최하위 수준에 있습니다. BigQuery 관점에서 자세히 보면 데이터 세트는 테이블과 뷰에 대한 액세스를 구성 및 제어하는 데 사용되는 최상위 컨테이너입니다. 원칙적으로 기존의 온라인 트랜잭션 처리(OLTP) 및 온라인 분석 처리(OLAP) 환경의 데이터베이스 또는 네임스페이스와 유사합니다. 생성 시 데이터 세트의 위치를 선택합니다. 쿼리는 같은 위치의 데이터 세트만 참조할 수 있습니다. 따라서 데이터 세트를 처음 만들고 쿼리를 설계할 때 위치를 고려하는 것이 중요합니다.

보안 프레임워크

Google의 BeyondCorp 이니셔티브는 제로 트러스트 보안에 기반을 둔 보안 프레임워크를 구축합니다. 이 프레임워크에서 동적 액세스 제어 원칙은 리소스에 액세스하려는 사용자 또는 기기가 다음 요구사항을 충족해야 한다고 정의합니다.

  1. 사용자 인증 정보를 사용하여 인증해야 합니다.
  2. 해당 리소스에 액세스할 수 있는 권한이 있어야 합니다.
  3. 암호화를 사용하여 통신해야 합니다.

이러한 요구사항은 예를 들어 회사 인트라넷 내부, 공용 Wi-Fi, 기내 등 사용자나 기기 네트워크 위치에 관계없이 충족되어야 합니다.

이 문서의 후속 섹션에서는 BeyondCorp에 제시된 원칙을 포함하여 데이터 애셋에 대한 액세스 관리의 개념과 권장사항을 살펴봅니다. 이 기사에서는 또한 유출 방지 대책으로 경계 보안 오버레이를 구현하는 방법도 설명합니다.

인증이란 BigQuery와 상호작용하는 클라이언트를 확인하고 ID를 인증하는 프로세스를 말합니다. 승인이란 인증된 ID가 BigQuery 및 데이터 세트와 상호작용하는 데 필요한 권한을 확인하는 프로세스를 말합니다. 즉, 인증은 누구인지를 확인하고 승인은 무엇을 할 수 있는지를 확인합니다.

ID

Google Cloud에서 Cloud ID는 기본 제공 ID 공급업체입니다. 온프레미스 데이터 웨어하우스에서 마이그레이션할 때는 Microsoft Active Directory와 같은 기존 ID 공급업체를 Cloud ID와 페더레이션하는 것이 좋습니다. 그러면 기존 ID 공급업체를 계속 사용하여 다음 태스크를 처리할 수 있습니다.

  • 사용자와 그룹 프로비저닝 및 관리
  • 싱글 사인온(SSO) 설정
  • 다단계 인증 구성

BigQuery 사용자에는 인간은 물론 BigQuery 클라이언트 라이브러리 또는 REST API를 사용하여 통신하는 애플리케이션도 포함됩니다. 이러한 애플리케이션은 인간이 아닌 사용자를 나타내기 위해 고안된 특별한 유형의 Google ID인 서비스 계정을 사용하여 자신을 식별해야 합니다.

Cloud ID는 Identity and Access Management(IAM)라는 상위 제품의 앞부분입니다.

사용자가 인증된 후에도 BigQuery 및 해당 데이터 세트와 상호작용하는 데 필요한 권한이 사용자에게 있는지 확인해야 합니다.

액세스 관리

IAM은 인증 외에도 BigQuery 및 해당 데이터 세트에 대한 특정 권한이 있는 중앙 집중식 ID 승인 제어 기능을 제공합니다. IAM은 조직 전체에서 BigQuery의 보안 정책을 관리하고 프로젝트 수준의 액세스 이상으로 세분화된 수준에서 BigQuery 리소스에 대한 액세스 권한을 부여할 수 있습니다.

IAM에서는 권한에 따라 리소스에 허용되는 작업이 결정되지만 이러한 권한을 Google ID(사용자, 서비스 계정, Google 그룹스, Google Workspace 또는 Cloud ID 도메인)에 직접 할당할 수 없습니다. 그 대신 권한의 모음인 역할을 Google ID에 할당하고 JSON 또는 YAML 파일로 선언된 정책을 사용하여 다음과 같은 Google Cloud 리소스 수준에서 이러한 바인딩을 적용할 수 있습니다.

  • 조직
  • 폴더
  • 프로젝트
  • 리소스 수준(BigQuery 데이터 세트)

BigQuery 역할은 상기 모든 리소스 수준에서 바인딩될 수 있습니다. 예를 들면 다음과 같습니다.

  • 프로젝트 수준에서 사용자에게 할당할 수 있는 역할은 admin, metadataViewer, jobUser입니다.
  • BigQuery 데이터 세트 리소스 수준에서 사용자(또는 뷰)에게 할당할 수 있는 역할은 dataEditor, dataOwner, dataViewer입니다.
테이블 및 뷰의 IAM

BigQuery를 사용하면 데이터 세트의 리소스에 대해 전체 액세스 권한을 제공하지 않고 테이블 및 뷰와 같은 데이터 세트 내의 특정 리소스 유형에 대해 개별적으로 역할을 할당할 수 있습니다. 테이블 수준 권한은 테이블 또는 뷰에 액세스할 수 있는 사용자, 그룹, 서비스 계정을 결정합니다.

테이블 및 뷰 액세스 제어에 대한 자세한 내용은 테이블 액세스 제어 소개를 참조하세요.

루틴 또는 모델과 같은 개별 리소스에는 역할을 적용할 수 없습니다.

또는 기본 테이블에 액세스 권한을 부여하지 않고 승인 뷰를 사용하여 쿼리 결과에 대해 액세스 권한을 특정 사용자에게 부여할 수 있습니다. 승인된 뷰를 사용하여 테이블, 열, 행 또는 셀과 같은 하위 리소스 수준에서 액세스를 제한합니다. 열 수준 보안과 행 수준 보안 모두 데이터 분류 형식이며 승인된 뷰에 권장되지만 요구사항과 환경에 따라 사용하기에 가장 적합한 메서드를 결정합니다.

엔드포인트 IAM

IAM을 사용하면 ID를 기반으로 인증 및 승인을 관리할 수 있습니다. 또한 BigQuery와 같은 공개 엔드포인트가 있는 서비스 주변에 보안 경계를 만들 수 있습니다. 이러한 액세스 제어 방법에 대한 자세한 내용은 네트워크 보안 섹션을 참조하세요.

구현 방법

마이그레이션을 위해 온프레미스 애플리케이션을 BigQuery에 연결해야 하는 경우가 종종 있습니다. 이 액세스가 필요한 경우의 예는 다음과 같습니다.

  • BigQuery에 데이터를 로드하는 온프레미스 데이터 파이프라인
  • BigQuery에서 데이터를 쿼리하거나 추출하는 온프레미스 보고, 분석 또는 기타 비즈니스 애플리케이션

BigQuery에서 데이터에 액세스하려면 애플리케이션이 API 요청과 함께 사용자 인증 정보를 가져오고 전송해야 합니다. 단기 또는 장기 사용자 인증 정보를 사용하여 온프레미스 애플리케이션 또는 다른 퍼블릭 클라우드에서 BigQuery API와 상호작용할 수 있습니다.

BigQuery 클라이언트는 서비스 계정 또는 사용자 인증 정보를 사용하여 인증되어야 합니다. 클라이언트가 인증되면 액세스 토큰 또는 키가 BigQuery API에 전달되어야 합니다. 그런 다음 이러한 사용자 인증 정보가 적절한 승인을 받았는지 확인하여 클라이언트에 BigQuery와의 모든 상호작용에 필요한 IAM 권한이 있는지 확인합니다.

단기 사용자 인증 정보

단기 사용자 인증 정보는 만들 때 지정한 짧은 시간(OAuth 2.0 및 OpenID의 경우 최대 수명 1시간, JWT의 경우 최대 수명 12시간)이 지나면 자동으로 만료됩니다. 서비스 계정 키를 관리하고 싶지 않거나 Google Cloud 서비스에 만료 기한이 지정된 권한을 부여하려면 단기 사용자 인증 정보를 사용하세요.

단기로 요청할 수 있는 사용자 인증 정보 유형은 다음과 같습니다.

  • OAuth 2.0 액세스 토큰
  • OpenID Connect ID 토큰
  • 자체 서명 JSON 웹 토큰(JWT)
  • 자체 서명 바이너리 객체(blob)

단기 사용자 인증 정보는 온프레미스 서비스가 Google Cloud ID 없이도 BigQuery와 통신할 수 있게 해줍니다. Google Cloud ID는 단기 사용자 인증 정보를 가져와야 하지만 토큰을 사용 중인 애플리케이션이나 서비스에는 Google Cloud ID가 필요 없습니다.

장기 사용자 인증 정보

장기 사용자 인증 정보(예: 서비스 계정 비공개 키 또는 OAuth 2.0 액세스 토큰과 갱신 토큰)는 삭제되거나 취소되기 전까지 BigQuery에 대한 액세스를 허용합니다. 서비스 계정 비공개 키는 생성된 후 계속 유지되므로 새로고칠 필요가 없습니다. OAuth 2.0 액세스 토큰은 만료 기한이 있지만 함께 제공되는 갱신 토큰으로 오래 사용할 수 있습니다. 이 갱신 토큰을 사용하면 갱신 토큰이 활성 상태인 경우에 한해 재인증을 요구하지 않고도 새 액세스 토큰을 요청할 수 있습니다. 이 프로세스는 Google의 OAuth 2.0 플레이그라운드에 설명되어 있습니다.

장기 사용자 인증 정보는 늘어난 수명을 고려해서 원격 클라이언트 머신이나 워커 노드에서 주의해서 관리해야 합니다. 권한이 있는 사용자만 액세스할 수 있는 안전한 위치에 보관하는 것이 좋습니다. 사용자 인증 정보를 코드 저장소에 저장하지 마세요. 코드에 액세스할 수 있는 모든 사람이 키에도 액세스할 수 있으며 데이터에도 액세스할 수 있습니다. 사용자 인증 정보 유출 시 서비스 경계를 사용하여 이러한 원치 않는 외부 액세스 위험을 완화할 수 있습니다.

장기 사용자 인증 정보 저장 시 권장되는 전략은 다음과 같습니다.

  • 키 관리 서비스(KMS)가 지원되거나 지원되지 않는 Cloud Storage 사용
  • 안전한 온프레미스 스토리지 사용
  • 타사 보안 비밀 관리 솔루션

서비스 계정 비공개 키는 개별 서비스 계정에 속하는 암호화 서명된 JWT입니다. 서명된 JWT는 Bearer 토큰으로 직접 사용되므로 Google 승인 서버에 대한 네트워크 요청이 필요하지 않습니다. 키가 유출되면 자동으로 만료되지 않거나 액세스 권한이 취소됩니다. 따라서 정기적으로 키를 순환하는 것이 보안 권장사항입니다. 이 프로세스를 위해서는 새 키를 생성하고 승인된 모든 사용자와 서비스가 새 키에 대한 액세스 권한을 가지고 있는지 확인하고 이전 키를 삭제해야 합니다. 키 순환을 사용하면 유출이 감지되지 않더라도 손상된 키의 BigQuery에 대한 액세스 권한이 자동으로 취소됩니다.

비익명 BigQuery 요청

비공개 서비스 계정 키와 갱신 토큰은 모두 서비스 계정을 사용한 인증을 지원합니다. 여러 사용자와 애플리케이션이 동일한 서비스 계정에 액세스할 수 있어서 사용자 또는 애플리케이션을 식별할 수 없기 때문에 이러한 요청은 익명입니다. 그러나 많은 기업 고객은 BigQuery와 같은 Google Cloud 리소스에 대한 액세스 권한이 요청을 시작한 개별 사용자에게 연결되어 있어야 한다고 요구합니다. 이 경우 OAuth 2.0 3-legged(3LO) 흐름을 사용하여 서비스 계정이 아닌 최종 사용자를 대신하여 인증할 수 있습니다.

2-legged 흐름에서 애플리케이션은 서비스 계정의 사용자 인증 정보를 직접 저장하고 해당 서비스 계정을 대신하여 BigQuery API를 호출합니다. 하지만 3-legged 흐름에서 리소스 소유자는 사용자 인증 정보를 직접 공유하지 않고 BigQuery 리소스에 대한 액세스 권한을 클라이언트에 부여합니다. 사용자 대신 요청이 전송되고 사용자 동의가 필요한 경우도 있습니다. 사용자가 인증되면 승인 코드를 액세스 토큰 및 갱신 토큰으로 교환할 수 있습니다.

네트워크 보안

Virtual Private Cloud 네트워크는 물리적 네트워크와 유사하지만 Google Cloud에 가상화되어 있습니다. 네트워크 수준에서 방화벽 규칙을 정의하여 가상 머신 인스턴스에서 들어오고 나가는 트래픽을 제어할 수 있습니다. 그러나 BigQuery 또는 Cloud Storage와 같은 API 기반 서비스에 대한 방화벽 규칙은 정의할 수 없습니다. 이러한 유형의 서비스에는 Google Virtual Private Cloud(VPC) 서비스 제어를 사용하여 트래픽을 제한할 수 있습니다.

VPC는 BigQuery 또는 Cloud Storage와 같은 공개 엔드포인트가 있는 Google API 기반 서비스 주변에 서비스 경계를 정의합니다. 서비스 경계는 경계 내부의 리소스와 경계 외부의 리소스 간 데이터 이그레스 및 인그레스를 제한하여 데이터 무단 반출 위험을 완화합니다. 이러한 제어를 올바르게 구현하면 권한이 없는 네트워크가 데이터 및 서비스에 액세스할 수 없으며 권한이 없는 Google Cloud 프로젝트에 데이터를 복사할 수 없습니다. 경계 내에서는 여전히 자유롭게 통신이 이루어질 수 있지만 경계 외부와의 통신은 제한됩니다.

VPC 서비스 제어를 IAM 액세스 제어와 함께 사용하는 것이 좋습니다. IAM이 세분화된 ID 기반 액세스 제어를 제공하는 경우 VPC 서비스 제어는 보다 광범위한 컨텍스트 기반 경계 보안을 지원합니다.

컨텍스트 인식 액세스 제어

공개 인터넷의 API 요청은 경계의 액세스 수준에 따라 서비스 경계 내 리소스에 대한 액세스가 허용되거나 거부됩니다. 요청은 IP 범위 및 사용자/서비스 계정 ID와 같은 클라이언트 컨텍스트에 따라 분류됩니다. 예를 들어 BigQuery API 요청이 유효한 사용자 인증 정보이지만 신뢰할 수 없는 네트워크에서 온 경우 다음 다이어그램과 같이 VPC 네트워크 및 서비스 경계에 대한 액세스가 거부될 수 있습니다.

쿼리가 들어올 때 어떻게 해야 효과적으로 저장할 수 있나요

서비스 경계

VPC 서비스 경계는 Google Cloud 조직 수준에서 구성되므로 보안 정책을 중앙 집중식으로 관리할 수 있습니다. 그런 다음 해당 조직 및 서비스(예: BigQuery API) 내의 여러 프로젝트를 각 경계에 할당할 수 있습니다. 동일한 서비스 경계에 있는 프로젝트 및 데이터는 이러한 모든 동작이 경계 내에서 유지되는 한 유연하게 데이터를 처리, 변환, 복사할 수 있습니다. 다음 다이어그램은 서비스 경계를 사용하는 방법을 보여줍니다.

쿼리가 들어올 때 어떻게 해야 효과적으로 저장할 수 있나요

다른 서비스 경계의 Google Cloud 리소스가 통신해야 하는 경우(예: 한 프로젝트 및 서비스 경계의 BigQuery와 다른 프로젝트 및 서비스 경계의 Compute Engine) 조직 수준에서 경계 브리지를 만들 수 있습니다. 경계 브리지를 사용하면 여러 서비스 경계에서 Google Cloud 리소스 간의 통신이 가능합니다. Google Cloud 프로젝트는 하나의 서비스 경계에만 속할 수 있지만 여러 경계 브리지의 일부가 될 수 있습니다.

하이브리드 환경의 데이터 액세스

하이브리드 온프레미스 및 클라우드 환경의 경우 온프레미스 네트워크용 비공개 Google 액세스를 구성하여 서비스 경계 및 온프레미스 환경 간 비공개 통신을 허용할 수 있습니다. 따라서 온프레미스 환경에서 BigQuery 데이터 세트에 액세스할 수 있습니다. 이러한 요청은 Google Cloud와의 비공개 연결(예: 경로 기반 VPN 또는 Cloud Interconnect 연결)을 통해 전송되어야 합니다. 요청은 비공개 인터넷을 통과하지 않습니다.

이 구성은 온프레미스 네트워크에서 Google Cloud 서비스에 저장된 데이터로 서비스 경계를 확장하여 민감한 정보가 비공개로 유지되도록 합니다. 이러한 비공개 통신 구성은 restricted.googleapis.com의 API에만 사용할 수 있습니다. 다음 다이어그램은 이 구성의 예시를 보여줍니다.

쿼리가 들어올 때 어떻게 해야 효과적으로 저장할 수 있나요

암호화

Google Cloud 및 BigQuery에서 데이터가 저장되고 전송되는 방식을 온프레미스 엔터프라이즈 데이터 웨어하우스와 비교하여 살펴볼 때는 보안 프레임워크를 재검토하는 것이 유용합니다.

BeyondCorp의 동적 액세스 제어 원칙에는 모든 액세스가 암호화되어야 한다고 나와 있습니다. 따라서 데이터 보호 방법으로 암호화를 도입하여 예상 밖의 데이터 노출 상황에서도 저장 데이터 또는 전송 중인 데이터를 읽을 수 없게 해야 합니다. 그러면 데이터 보호를 위한 방어막이 한층 강화됩니다.

저장 데이터 암호화

Google Cloud는 고객이 아무런 조치를 취하지 않아도 기본으로 저장된 데이터를 암호화합니다. 고급 암호화 표준(AES)은 미국 국립 표준 기술 연구소(National Institute of Standard and Technology)의 권고에 따라 저장 데이터를 암호화하는 데 사용됩니다.

BigQuery 데이터 세트의 데이터는 디스크에 기록되기 전에 여러 청크로 분할됩니다. 각 청크는 고유한 데이터 암호화 키(DEK)로 암호화됩니다. 여러 키를 사용하면 예상치 못한 DEK 손상 영향이 해당 데이터 청크로 제한됩니다. 그리고 이러한 키는 자체적으로 고유한 키 암호화 키(KEK)를 사용하여 암호화됩니다. 암호화된 DEK는 연결된 데이터 근처에 저장되지만 KEK는 Cloud Key Management Service(KMS)에 중앙 집중식으로 저장됩니다. 이러한 계층 구조적 키 관리 방법을 봉투 암호화라고 합니다. 자세한 내용은 저장 데이터 암호화의 키 관리 섹션을 참조하세요.

다음 다이어그램은 저장 데이터 암호화의 작동 방식을 보여줍니다.

쿼리가 들어올 때 어떻게 해야 효과적으로 저장할 수 있나요

기본적으로 모든 키는 Google에서 관리합니다. 그러나 키를 직접 관리하도록 선택할 수 있습니다. 이 기법을 고객 관리 암호화 키(CMEK)라고 합니다. 이 기법을 사용하면 Cloud KMS를 사용하여 대칭 암호화 키를 생성, 순환, 자동 순환, 폐기할 수 있습니다. BigQuery와 함께 CMEK를 사용하는 방법에 대한 자세한 내용은 Cloud KMS 키로 데이터 보호를 참조하세요.

전송 중인 데이터 암호화

데이터가 Google이나 Google의 대리인이 통제하지 않는 물리적 경계 외부로 이동할 때 Google Cloud는 모든 전송 중 데이터를 암호화하고 인증합니다. 이러한 경계 내에서 전송 중 데이터는 일반적으로 인증되지만 반드시 암호화될 필요는 없습니다.

전송 중 암호화는 연결이 설정 및 인증된 후 다음과 같이 잠재적 공격으로부터 데이터를 보호합니다.

  • 제3자가 일반적으로 제공하는 네트워크 하위 계층을 신뢰할 필요성을 없앱니다.
  • 통신에서 가로채기 시도가 발생하면 공격자의 데이터 액세스를 차단합니다.

전송 중 암호화는 대략적으로 다음과 같이 작동합니다. 데이터가 전송되기 전에 암호화된 후 엔드포인트가 인증되고, 데이터가 목적지에 도달하면 복호화되고 확인됩니다. 하지만 사용되는 보안 방법은 보호하는 연결 유형에 따라 다릅니다. 이 섹션에서는 암호화를 사용하여 BigQuery에서 들어오거나 나가는 연결을 보호하는 방법을 중점적으로 설명합니다.

BigQuery는 Google Cloud 서비스이므로 사용자 또는 애플리케이션이 요청을 보내면 요청이 Google 프런트엔드(GFE)라는 전 세계에 분산된 시스템에 먼저 도달합니다. GFE는 들어오는 HTTP(S), TCP, TLS 프록시 트래픽을 종료하고 DDoS 공격 대책을 제공하며 트래픽을 모든 서비스로 라우팅하고 부하를 분산시킵니다.

Google Cloud 서비스에서 들어오고 나가는 트래픽에 추가 보안 조치를 적용해야 하는지 고려해야 합니다. 이러한 조치는 업스트림 및 다운스트림 프로세스를 마이그레이션할 때 관련이 있습니다. 예를 들어 Google Cloud에서 호스팅되는 커스텀 애플리케이션에 대한 사용자 또는 애플리케이션 간 요청은 여러 가지 방법으로 라우팅될 수 있습니다. 일반적으로 Cloud Load Balancing을 사용 중인 경우 트래픽이 GFE를 통과하므로 이 경로는 이전 카테고리에 속합니다. Cloud VPN을 사용 중인 경우 연결이 IPsec으로 보호됩니다. 반면에 외부 IP 주소, 네트워크 부하 분산기 IP 주소 또는 Cloud Dedicated Interconnect를 통해 VM에 직접 연결하는 경우에는 기본적으로 연결이 암호화되지 않습니다. 따라서 TLS와 같은 보안 프로토콜을 사용할 것을 적극 권장합니다.

Google Cloud가 각 연결 흐름에서 전송 중인 데이터 암호화를 처리하는 방법에 대한 자세한 내용은 Google Cloud의 전송 중인 데이터 암호화를 참조하세요.

암호 삭제

기본적으로 Google에서 제공하는 암호화 외에 테이블의 특정 열을 데이터 마스킹하거나 암호 삭제가 필요한 경우와 같이 필요한 경우 애플리케이션에서 자체 암호화를 적용할 수 있습니다.

암호화 삭제 또는 암호화 파쇄는 데이터를 암호화하는 데 사용된 키를 삭제하여 데이터를 복구할 수 없게 렌더링하는 프로세스입니다. 데이터를 더 이상 복호화할 수 없으므로 데이터가 효과적으로 삭제됩니다.

암호화된 전체 데이터가 아닌 키만 삭제되므로 이 삭제 방법은 빠르고 영구적이며 다음과 같은 경우에 일반적으로 사용됩니다.

  • 암호화된 데이터가 키보다 훨씬 큰 경우(예: 암호화된 디스크, 전화, 데이터베이스 레코드)
  • 암호화된 데이터를 삭제하는 데 너무 많은 비용이 들거나 해당 작업이 복잡하거나 실현 불가능한 경우(예: 여러 저장소를 통해 확산된 데이터 또는 수정 불가능한 스토리지)

BigQuery는 키 생성, AEAD 암호화 개념을 사용한 쿼리 내 데이터 암호화 및 복호화 기능을 제공합니다.

데이터 검색

모든 규모의 조직에서 사용할 수 있는 데이터 볼륨, 다양성, 속도가 증가하고 있습니다. 이러한 데이터 확산으로 인해 다음과 같은 여러 가지 문제가 발생할 수 있습니다.

  • 필요한 데이터는 여러 데이터 저장소에 분산되어 있거나 구성되지 않았거나 복제되어 있으므로 이러한 데이터를 찾기가 어렵습니다.
  • 일부 데이터를 찾더라도 데이터 출처가 어디인지, 원하는 데이터를 나타내는지, 비즈니스 결정을 내리는 데 충분히 신뢰할 수 있는지 확실하지 않습니다.
  • 데이터를 관리하기가 어렵습니다. 데이터의 소유자가 누구이고, 누가 데이터에 액세스할 수 있으며, 데이터에 대한 액세스 권한을 얻는 프로세스가 무엇인지 확실하지 않습니다.

메타데이터는 데이터를 설명하고 위의 문제를 해결하는 데 도움이 되는 속성으로 구성됩니다. 메타데이터 수집은 도서관의 카드식 목록 작성과 유사합니다. 여기서 모든 책에는 저자, 출판 연도, 개정 및 주제와 같은 정보가 표시된 물리적 카드가 있습니다. 책과 마찬가지로 데이터에도 소유자, 출처, 처리 날짜 또는 품질 등급과 같은 속성 세트가 첨부될 수 있습니다.

기존에는 회사에서 스프레드시트, 위키 페이지, 자체 개발 시스템, 서드 파티 소프트웨어와 같은 여러 가지 방법을 사용하여 메타데이터를 캡처하고 정리하려 했습니다. 일반적인 문제는 수동으로 입력, 선별 및 유지보수, 시스템 호환성 및 범위 등이 있습니다. 최종적인 문제는 데이터 검색 및 메타데이터 수집이 성장하는 조직에서는 확장될 수 없는, 사람에서 사람으로 전달되는 개인 경험에 의존하는 유기적인 프로세스인 경우가 많다는 점입니다. 이를 토대로 볼 때 이러한 경험이 없는 한 분석가가 자신이 액세스할 수 있는 데이터와 해당 데이터를 이해하는 방법을 어떻게 알 수 있을까요?

회사에서는 이러한 내부 과제 외에도 개인정보 보호법(GDPR), 바젤은행감독위원회(Basel Committee for Banking Supervision) 239(BCBS239), 건강 보험 이동성 및 책임법(HIPAA)과 같이 데이터를 추적, 보호, 보고하도록 하는 규제 및 규정 준수 요구사항의 증가에 따른 부담을 안고 있습니다.

Google Cloud는 이러한 고객 요구사항에 부응하기 위해 조직이 Google Cloud에서 데이터를 검색, 분류, 이해할 수 있게 해주는 완전 관리형, 확장형 메타데이터 관리 서비스인 Data Catalog를 제공합니다.

Data Catalog 아키텍처는 다음을 기반으로 합니다.

  • 메타데이터 저장소: Cloud Spanner에 기반을 두고 있습니다. Cloud Spanner는 모든 메타데이터 항목을 저장하는 데 사용되며 전 세계에 분산된 strong consistency를 가진 데이터베이스입니다.
  • 실시간 및 배치 syncer: 기술 메타데이터 자동 수집용
  • Google 검색 색인: Gmail 및 Google 드라이브 검색 기능에 사용되는 것과 동일한 기술을 지원하며 액세스제어 목록(ACL)이 내장된 확장형 고성능 시스템입니다.

Data Catalog는 모든 데이터 애셋에 대한 통합 뷰를 제공합니다. 따라서 믿을 수 있는 데이터 거버넌스 프로세스의 기초가 됩니다.

다음 다이어그램은 BigQuery, Pub/Sub, Cloud Storage에 메타데이터, 검색, 데이터 손실 방지 기능을 제공하는 Data Catalog를 사용하는 간소화된 아키텍처를 보여줍니다. 이러한 기능은 이후 섹션에서 설명합니다.

쿼리가 들어올 때 어떻게 해야 효과적으로 저장할 수 있나요

메타데이터

데이터 검색 프로세스의 핵심은 의사 결정의 원동력이 될 적절한 데이터를 찾는 기능입니다. 도서관에서 책을 찾으려면 제공되는 책에 대한 메타데이터가 필요한 것처럼 빅데이터 환경에서 데이터를 찾으려면 데이터 애셋에 대한 메타데이터도 필요합니다.

Data Catalog는 BigQuery, Pub/Sub, Cloud Storage에서 메타데이터를 자동으로 수집할 수 있습니다. 또한 기술과 비즈니스라는 두 가지 메타데이터 유형을 구분합니다.

기술 메타데이터에는 테이블 이름, 열 이름, 설명, 생성 날짜와 같은 정보가 포함됩니다. 이 유형의 메타데이터는 이미 소스 시스템에 있습니다. Data Catalog는 이러한 애셋이 생성될 때마다 사용자가 새 데이터 애셋을 수동으로 등록하지 않아도 기술 메타데이터를 색인으로 자동 수집합니다.

반면 데이터 애셋에는 개인 식별 정보(PII)가 열에 포함되어 있는지 여부, 데이터 애셋의 소유자, 삭제 기한 또는 보관 기한, 데이터 품질 점수와 같은 암시적 비즈니스 컨텍스트가 연결되어 있습니다. 이러한 유형의 메타데이터를 비즈니스 메타데이터라고 합니다.

비즈니스 메타데이터는 서로 다른 역할의 사용자가 비즈니스 컨텍스트의 서로 다른 부분에 관심이 있기 때문에 기술 메타데이터보다 더 복잡합니다. 예를 들어 데이터 분석가는 ETL 작업이 성공적으로 실행되었는지 여부, 처리된 행 수 또는 오류나 경고가 있는지 여부 등 ETL 작업 상태에 관심이 있을 수 있습니다. 제품 관리자는 데이터가 공개 데이터와 비공개 데이터 중 무엇으로 분류되었는지, 데이터 수명 주기가 프로덕션, 테스트, QA 중 어디에 해당되는지, 데이터가 품질 데이터나 전체 데이터인지 여부에 관심이 있을 수 있습니다.

이러한 복잡성을 해결하려면 Data Catalog를 사용하여 비즈니스 메타데이터를 템플릿으로 그룹화하면 됩니다. 템플릿은 속성이라는 메타데이터 키-값 쌍의 그룹입니다. 템플릿 세트는 메타데이터의 데이터베이스 스키마와 유사합니다.

메타데이터 태그는 테이블과 열 모두에 적용할 수 있는 템플릿 인스턴스입니다. 이러한 태그가 열에 적용되면 사용자는 특정 열에 PII가 포함되어 있는지 여부, 열이 지원 중단됐는지 여부, 특정 수량을 계산하는 데 사용된 수식이 무엇인지 확인할 수 있습니다. 기본적으로 비즈니스 메타데이터는 데이터를 의미 있게 사용하는 데 필요한 컨텍스트를 제공합니다.

다음 다이어그램은 샘플 고객 테이블(cust_tbl)과 해당 테이블 및 열에 연결된 여러 비즈니스 메타데이터 태그를 보여줍니다.

쿼리가 들어올 때 어떻게 해야 효과적으로 저장할 수 있나요

Data Catalog는 직관적인 사용자 인터페이스 외에도 기술 사용자가 메타데이터에 주석을 달거나 메타데이터를 대량으로 검색할 수 있게 해주는 API도 제공합니다. 지원되는 언어는 Python, 자바, NodeJS입니다. API를 사용하면 메타데이터 태스크를 확장할 수 있을 뿐만 아니라 프로그래매틱 방식으로 Data Catalog와 통합할 수 있어 Data Catalog를 백엔드의 일부로 사용하는 커스텀 엔터프라이즈 애플리케이션을 구축할 수 있습니다.

검색

데이터 애셋에 메타데이터를 추가했다면 데이터 검색의 기초는 만들어졌지만 절반은 완성되지 않은 것입니다. 나머지 절반은 기술 메타데이터와 비즈니스 메타데이터를 모두 사용하여 관련 결과를 반환하는 강력한 검색 기능을 통해 애셋을 검색하는 기능입니다.

Data Catalog는 소스에서 모든 메타데이터의 색인을 생성하고 프로그래매틱 통합을 위해 사용자 친화적 UI 및 API를 통해 제공합니다. 메타데이터와 일치하는 키워드를 사용하여 Google 검색 스타일로 작동합니다. 또한 고급 사용자에게 속성별 검색을 제공합니다. 속성별 검색에서 제공하는 직관적인 필터 및 한정된 조건자를 통해 사용자는 테이블, 데이터 세트 또는 파일만 검색하거나 특정 프로젝트, 조직 또는 특정 Google Cloud 제품 내에서만 검색하여 결과 범위를 좁힐 수 있습니다.

Data Catalog는 UI에 자주 검색되는 BigQuery 테이블 목록도 보여줍니다. 이 기능은 테이블 세부정보, 스키마, BigQuery 콘솔에 대한 편리한 빠른 액세스를 제공합니다.

액세스 제어

사용자가 메타데이터를 통해 검색하고 데이터 애셋을 검색할 수 있게 하면 사용자의 생산성, 독립성, 몰입도가 높아집니다. 그러나 모든 사람이 모든 메타데이터에 액세스할 수 있어야 하는 것은 아닙니다. 적절한 사람이 올바른 데이터에 액세스할 수 있게 되면 직원이 자신의 역할과 관련된 데이터 애셋의 하위 집합에 집중할 수 있으며 메타데이터 또는 데이터 무단 반출을 방지할 수 있습니다.

Data Catalog는 IAM과 통합되어 검색에서 선택한 데이터 애셋을 찾거나 애셋에 대한 비즈니스 메타데이터를 생성할 수 있는 사용자를 제어할 수 있습니다.

기술 메타데이터의 경우 액세스 관리를 단순화하기 위해 자동 수집에서 태그가 지정된 데이터에 부여된 메타데이터에 동일한 권한 집합을 적용합니다. 사용자가 데이터에 액세스할 수 있으면 추출된 기술 메타데이터에도 액세스할 수 있으며 Data Catalog 검색을 통해 데이터 애셋을 찾을 수 있습니다. 이 방법은 데이터 애셋이 등록되고 별도의 권한이 부여되기를 기다리는 대신 수동 개입이 필요 없는 합리적인 기본값을 제공합니다.

비즈니스 메타데이터의 경우 메타데이터에 액세스할 수 있는 사용자 또는 사용자 그룹을 정의합니다. 이러한 사용자 중 일부는 메타데이터와 데이터 모두, 둘 중 하나에만 액세스할 수 있거나 둘 다 액세스할 수 없습니다.

  • 메타데이터에 액세스할 수 없으면 Data Catalog 검색에서 데이터 애셋을 찾을 수 없습니다.
  • 메타데이터에 액세스할 수 있지만 데이터에는 액세스할 수 없는 경우에는 데이터 애셋을 찾을 수 있지만 데이터를 읽을 수는 없습니다. 이 기능을 사용하면 기본 데이터를 노출하지 않고도 유용한 데이터 세트를 발견할 수 있으므로 보안을 손상시키지 않으면서 조직의 데이터 애셋의 유용성을 높일 수 있습니다. 그러면 사용자가 데이터 소유자에게 액세스 요청을 제기할 수 있으며 비즈니스 사용 사례, 데이터 민감도, 기타 요인에 따라 해당 요청이 승인되거나 거부될 수 있습니다.

이 섹션에서는 Data Catalog와 IAM을 통합하여 메타데이터에 대한 액세스 제어를 적용하는 방법을 소개했습니다. 또한 사용자에게 Data Catalog 역할을 부여하여 Data Catalog 제품 자체에 액세스할 수 있는 사용자를 제어할 수 있습니다. 데이터 애셋에 대한 액세스를 제어하려면 IAM과 VPC 서비스 제어를 함께 사용하세요. 자세한 내용은 Data Catalog IAM 문서를 참조하세요.

계보

데이터 웨어하우스와 관련하여 계보는 데이터 애셋이 출발지에서 목적지로 가는 경로를 나타냅니다. 데이터 애셋의 출발지는 제3자가 제공한 시장 데이터와 같은 외부 소스나 고객 트랜잭션을 저장하는 관계형 데이터베이스와 같은 내부 소스가 될 수 있습니다. 데이터 애셋 목적지는 대시보드, 보고서 또는 API로 제공되는 데이터 피드가 될 수 있습니다.

이 모든 경우에 목적지에서 제공되는 데이터가 원본 데이터에 적용된 변환을 정확하게 반영한다는 것을 알아야 합니다. 데이터 소비자는 수신하는 데이터를 신뢰할 수 있고 규제 기관은 보고되는 데이터를 확인하고 이해하며 내부 이해관계자는 비즈니스 프로세스와 데이터 처리 파이프라인의 상호 관계의 격차를 식별하는 것이 중요합니다.

캡처해야 할 데이터는 비즈니스 사례의 범위에 따라 다릅니다. 여기에는 출발지 데이터 소스, 데이터 소유자, 데이터 애셋이 변환되는 비즈니스 프로세스 또는 변환 중에 포함된 애플리케이션 및 서비스와 같은 메타데이터가 포함될 수 있습니다.

이 정보를 수동으로 캡처하면 오류가 발생하기 쉬우며 중요한 비즈니스 사례에서는 확장할 수 없습니다. 따라서 프로그래매틱 관점에서 데이터 계보에 접근하는 것이 좋습니다.

  • 비즈니스나 규제 기관 요구사항을 충족하기 위해 캡처해야 하는 메타데이터 속성 집합을 결정합니다.
  • 이 비즈니스 메타데이터를 캡처할 템플릿을 만듭니다. Data Catalog는 double, string, boolean, datetime, enum과 같은 5가지 데이터 유형을 지원하므로 이를 결합하여 풍부한 태그를 만들 수 있습니다. 마지막 형식은 일련의 커스텀 값을 사용하여 데이터 변환의 단계 또는 유사한 열거 값을 설명할 수 있습니다.
  • Data Catalog API를 사용하여 데이터 파이프라인의 각 관련 단계에 대한 관련 계보 메타데이터를 기록합니다.

Data Catalog 대신 Google CDAP의 관리형 버전인 Cloud Data Fusion을 사용하여 데이터 변환을 구현할 수 있습니다. Cloud Data Fusion은 단일 통제 환경에서 데이터 처리 환경을 캡슐화하여 데이터 세트 및 필드 수준에서 계보가 자동으로 기록되도록 합니다. 자세한 내용은 오픈소스 계보 관련 CDAP 문서를 참조하세요.

데이터 분류 및 관리

엔터프라이즈 데이터 웨어하우스에서 수집되는 데이터 볼륨, 속도, 다양성은 데이터 분류 및 관리에 문제를 일으킬 수 있습니다.

데이터 분류란 고유한 특성을 사용하여 데이터를 형식, 형태 또는 범주별로 분류하는 프로세스입니다. 여러 데이터 형식에 적절한 거버넌스 정책을 적용하려면 데이터를 효과적으로 분류할 수 있어야 합니다.

예를 들어 비즈니스 문서 내용에 따라 보안되지 않음 또는 기밀과 같은 민감도 수준으로 분류할 수 있습니다. 그러면 이러한 유형마다 특정 관리 정책이 있을 수 있습니다. 예를 들어 특정 사용자 그룹만 기밀 문서에 액세스할 수 있으며 기밀 문서는 7년 간 보관됩니다.

데이터 관리 내에서 고려해야 할 몇 가지 요소가 있습니다.

  • 데이터 변경 관리: 데이터 차원이 변경될 때 효과를 제어합니다. 데이터 차원은 자주 변경되지 않지만 수정될 경우 팩트 테이블의 데이터가 더 이상 업데이트된 차원에 맞지 않아서 파급 효과가 발생할 수 있습니다.
  • 참조 데이터 관리: 조직의 모든 시스템에 참조 데이터에 대한 정확하고 일관된 보기를 제공합니다.
  • 보관 및 삭제: 사용자가 데이터를 수정 또는 삭제하지 못하게 하는 방법과 데이터가 자동으로 만료되도록 하는 방법

BigQuery로 마이그레이션할 때는 Cloud Data Loss Prevention(DLP)과 같은 자동 데이터 분류 기능을 활용하세요. 다음 섹션에서는 Google Cloud에서 이러한 데이터 분류 및 관리 문제를 해결하는 데 도움이 되는 기능과 기법을 제공합니다.

데이터 손실 방지

Cloud Data Loss Prevention은 올바른 사람에게 올바른 권한을 부여할 수 있도록 데이터 분류를 지원하여 데이터 거버넌스를 용이하게 해주는 Google Cloud 서비스입니다. Cloud DLP는 데이터 검사, 분류, 익명화 플랫폼을 제공합니다. 150개가 넘는 사전 정의된 감지기를 사용하여 패턴, 형식, 체크섬을 식별합니다. 또한 사전이나 정규 표현식을 사용하여 커스텀 감지기를 만들 수도 있습니다. 핫워드 규칙을 추가하여 결과의 정확성을 높이고 제외 규칙을 설정하여 거짓양성 수를 줄일 수 있습니다.

이 섹션에서는 민감한 정보를 분류하고 모호하게 만들 수 있는 Cloud DLP 기능에 대해 설명합니다.

데이터 프로파일링

Cloud DLP는 조직, 폴더, 프로젝트에서 BigQuery 데이터에 대한 프로필을 자동으로 생성할 수 있습니다. 데이터 프로필은 테이블에 대한 측정항목과 메타데이터를 포함하며 민감한 정보와 고위험 데이터를 저장할 위치를 결정하는 데 도움이 됩니다. Cloud DLP는 프로젝트, 테이블, 열 수준에서 이러한 측정항목을 보고합니다.

프로파일링을 통해 조직에서 데이터 증가에 대응할 수 있습니다. 기본적으로 Cloud DLP는 새 테이블을 자동으로 프로파일링하고 스키마 업데이트에 따라 테이블을 다시 프로파일링합니다. 필요한 경우 프로파일링하려는 데이터 선택 항목과 프로파일링 주기를 세밀하게 조정할 수 있습니다.

자세한 내용은 BigQuery 데이터의 데이터 프로필을 참조하세요.

쿼리가 들어올 때 어떻게 해야 효과적으로 저장할 수 있나요

단일 테이블 검사

데이터 프로파일링을 수행하면 민감한 정보가 포함되었을 수 있는 특정 테이블 및 열을 알려줍니다. 이러한 테이블에 대해 자세히 알아보기 위해 테이블을 검사할 수 있습니다. 단일 테이블에서 검사 작업을 실행하면 다음과 같은 세부정보를 얻을 수 있습니다.

  • 발견 항목 수
  • 이메일 주소 및 신용카드 번호와 같은 민감한 정보 유형
  • 발견 항목이 검사하려는 민감한 정보 유형과 일치할 가능성
  • 각 발견 항목의 정확한 위치
  • 각 발견 항목을 트리거한 문자열

민감한 정보 익명화

Cloud DLP는 마스킹, 토큰화, 가명처리, 날짜 변동을 포함하여 데이터를 익명화하기 위한 일련의 도구를 제공합니다.

데이터 자동 태그 처리

DLP API는 Data Catalog 태그를 자동으로 만들어 민감한 정보를 분류할 수 있습니다. 이러한 워크플로를 기존 BigQuery 테이블, Cloud Storage 버킷, 데이터 스트림에 적용할 수 있습니다.

파이프라인에서 데이터 자동 분류 촉진

Cloud DLP는 데이터를 검사하고 가능성 수준과 함께 해당 발견 항목을 보고합니다. 예를 들어 데이터의 가능성 수준이 높으면 대량의 데이터를 자동으로 처리할 수 있습니다. 추출-변환-로드 또는 추출-로드-변환 파이프라인에서 PII 인식을 간소화하려면 다음을 수행하면 됩니다.

  1. 격리 버킷에 데이터를 수집합니다.
  2. Cloud DLP를 실행하여 데이터에서 PII를 식별합니다. 전체 데이터 세트를 스캔하거나 데이터를 샘플링하면 됩니다. 파이프라인 변환 단계에서 또는 독립형 스크립트(예: Cloud Functions)에서 DLP API를 호출할 수 있습니다. Cloud Storage에 업로드된 데이터 분류 자동화 튜토리얼에서는 후자를 사용한 예시를 보여줍니다.
  3. 데이터를 웨어하우스로 옮깁니다.

열 수준 보안

데이터 분류 개념을 기반으로 빌드되는 BigQuery는 데이터에 대한 유형 기반의 분류인 정책 태그를 사용하여 민감한 열에 대해 세밀한 액세스 권한을 제공합니다. BigQuery 열 수준 보안을 사용하면 쿼리 시 사용자에게 적절한 액세스 권한이 있는지 확인하는 정책을 만들 수 있습니다.

열 수준 보안에 대해 정책 태그를 사용하는 방법에 대한 자세한 내용은 BigQuery 열 수준 보안 소개를 참조하세요.

행 수준 보안

행 수준 보안을 사용하면 사용자의 자격 조건을 기준으로 데이터를 필터링하고 테이블의 특정 행에 액세스하도록 허용할 수 있습니다. 행 수준 보안은 행 수준 액세스 정책을 통해 BigQuery 테이블의 데이터 하위 집합에 대한 세분화된 액세스 제어를 실현함으로써 최소 권한의 원칙을 확장합니다. 행 수준 액세스 정책은 열 수준 보안과 함께 테이블에 공존할 수 있습니다.

행 수준 보안에 대해 행 액세스 정책을 사용하는 방법에 대한 자세한 내용은 BigQuery 행 수준 보안 소개를 참조하세요.

마스터 데이터 관리

참조 데이터라고도 하는 마스터 데이터는 조직 전체에서 사용되는 데이터입니다. 마스터 데이터 애셋의 일반적인 예시로는 고객, 제품, 공급업체, 위치, 계정이 있습니다. 마스터 데이터 관리(MDM)는 조직 전체에서 마스터 데이터의 정확성과 일관성을 보장하는 일련의 절차입니다.

서로 다른 시스템과 부서가 제대로 기능하고 상호작용하려면 데이터의 정확성과 일관성이 중요합니다. 그렇지 않으면 조직의 부서마다 동일한 항목에 대한 서로 다른 레코드가 있을 수 있으며 이로 인해 비용이 많이 드는 오류가 발생할 수 있습니다. 예를 들어 클라이언트가 회사 웹사이트에서 주소를 업데이트할 때 청구 부서가 다른 클라이언트 저장소에서 데이터를 읽는 경우 향후 청구서가 이 클라이언트에 도달하지 않을 수 있습니다.

MDM에서 권한 시스템은 특정 마스터 데이터 애셋의 정보 출처입니다. 조직의 다른 시스템은 해당 애셋에 대한 권한 시스템의 마스터 데이터를 사용하는 것이 이상적입니다. 그러나 다음 시나리오에서 설명하는 것처럼 항상 그럴 수 있는 것은 아닙니다.

권한 시스템과의 직접적인 통신

이 시나리오에서 시스템은 지정된 마스터 데이터 애셋을 담당하는 권한 시스템과 직접 통신합니다. 권한 시스템은 마스터 데이터를 생성 및 업데이트하는 반면, 조직의 다른 시스템은 항상 해당 권한 시스템에서 이를 사용합니다.

쿼리가 들어올 때 어떻게 해야 효과적으로 저장할 수 있나요

예를 들어 이 다이어그램에서는 제품 정보 관리(PIM) 시스템이 회사 전체에서 제품의 권한 시스템으로 사용됩니다. 고객 관계 관리(CRM) 시스템과 같은 다른 시스템은 제품 마스터 데이터가 필요할 경우 PIM에서 해당 데이터를 검색합니다. CRM 시스템 자체는 회사의 고객과 같은 다른 데이터 애셋의 권한 시스템이 될 수 있습니다.

이 시나리오는 복잡한 변환 파이프라인 없이 마스터 데이터 애셋을 해당 권한 시스템에 유지하기 때문에 이상적입니다. 소비자 시스템에 마스터 데이터의 특정 하위 집합이나 다른 형식의 데이터만 필요한 경우 시스템에서 필터링하거나 변환해야 합니다.

단일 소스의 골든 카피

이 시나리오에서 소비자 시스템은 권한 시스템과 직접 통신할 수 없습니다. 이러한 제한의 원인은 다음 예시와 같이 다양합니다.

  • 권한 시스템에 조직 전체의 요청량을 처리하기에 충분한 용량이나 가용성이 없을 수 있습니다.
  • 시스템 간의 통신이 보안 정책에 의해 제한되거나 인프라 제한으로 인해 실행 불가능할 수 있습니다.

이러한 제한을 극복하려면 데이터 웨어하우스를 사용하여 소비자 시스템에 마스터 데이터를 제공하면 됩니다. 클라우드로 마이그레이션하면 BigQuery에서 가용성이 높고 높은 수준의 동시 실행을 처리할 수 있으며 IAM 규칙에 따라 조직 내에서 광범위하게 액세스할 수 있는 저장소를 제공합니다. 따라서 골든 카피를 호스팅할 때는 BigQuery가 우선 고려 대상입니다.

ELT 데이터 파이프라인을 만들어서 권한 시스템에서 마스터 데이터를 읽고, 데이터 웨어하우스에 로드한 후 소비자에게 배포하는 것이 좋습니다. 소비자마다 동일한 마스터 데이터 애셋에 대한 요구사항이 다르므로 ETL 파이프라인보다 ELT 파이프라인을 사용하는 것이 좋습니다. 따라서 먼저 데이터 웨어하우스에 애셋을 변경하지 않은 상태로 로드한 후 소비자를 위한 특수한 변환을 만들 수 있습니다. Google Cloud에서는 Dataflow를 사용하여 BigQuery에 기본적으로 연결할 수 있는 파이프라인을 만들 수 있습니다. 그런 다음 Cloud Composer를 사용하여 이러한 파이프라인을 조정할 수 있습니다.

권한 시스템은 데이터 애셋의 정보 출처로 유지되며, 데이터 웨어하우스에 복사된 마스터 데이터는 골든 카피로 참조됩니다. 데이터 웨어하우스는 권한 시스템이 되지 않습니다.

쿼리가 들어올 때 어떻게 해야 효과적으로 저장할 수 있나요

예를 들어 이 다이어그램에서 CRM 시스템은 PIM 시스템에서 직접 제품 데이터를 요청할 수 없습니다. PIM 시스템에서 데이터를 추출하여 데이터 웨어하우스에 복사하고 변환을 수행한 후 다른 시스템(그 중 하나가 CRM 시스템)에 배포하는 ETL 파이프라인을 작성합니다.

시스템이 마스터 데이터를 일괄적으로 또는 분석 목적으로 검색하는 경우 골든 카피를 BigQuery에 저장하는 것이 이상적입니다. 하지만 마스터 데이터에 대한 대부분의 액세스가 단일 행 조회를 수행하는 시스템에서 제공되는 경우 이러한 조건에 최적화된 다른 저장소(예: Cloud Bigtable)를 사용하는 것이 좋습니다. 두 저장소를 모두 사용하여 균형을 잡을 수도 있습니다. 트래픽이 가장 많은 저장소에 골든 카피를 저장합니다. 항상 골든 카피 시스템에서 데이터를 추출하고 다른 저장소에 동기화하는 것이 좋습니다. 데이터 파이프라인을 사용하여 이를 수행할 수 있습니다.

여러 소스의 골든 카피

이전 시나리오에서는 지정된 마스터 데이터 애셋에 단일 권한 시스템을 사용했습니다. 그러나 실제로는 조직의 여러 시스템을 사용하여 동일한 애셋의 다른 특성을 유지할 수 있습니다. 예를 들어 PIM 시스템은 크기, 중량, 출처와 같은 기술 및 물류 제품 정보의 정보 출처가 될 수 있습니다. 그러나 제품 카탈로그 관리 시스템은 색상, 영업 채널, 가격, 계절성과 같은 영업 관련 제품 정보의 정보 출처가 될 수 있습니다. 예를 들어 이전에 MDM에 포함되지 않았거나 인수 및 합병을 통해 조직에 통합된 시스템에서는 동일한 애셋의 중복 속성이 있는 여러 시스템을 두는 것도 일반적입니다.

이 경우 다음 다이어그램과 같이 여러 소스의 마스터 데이터를 데이터 웨어하우스에 저장된 단일 골든 카피로 병합하는 더 복잡한 파이프라인이 필요합니다. 그러면 데이터가 이전 섹션과 유사한 방식으로 소비자 시스템에 배포됩니다. 데이터 웨어하우스는 여전히 권한 시스템이 아니라 마스터 데이터 골든 카피의 저장소입니다.

쿼리가 들어올 때 어떻게 해야 효과적으로 저장할 수 있나요

Google Cloud에서 Dataflow는 Directed Acyclic Graph(DAG)로 표현된 복잡한 파이프라인을 구축하는 도구로 자리매김했습니다. 이러한 파이프라인은 여러 소스에서 데이터를 읽고 병합된 결과를 BigQuery에 기록합니다. 또 다른 옵션은 Cloud Data Fusion과 같은 시각적 도구를 사용하여 파이프라인을 만드는 것입니다. Cloud Data Fusion은 데이터 소스 및 싱크를 위한 많은 플러그인도 제공합니다.

지연 변경 측정기준

별표 또는 눈송이 스키마에서 측정기준 테이블의 속성은 절대 변경되지 않거나 자주 변경되지 않아야 합니다. 절대 변경되지 않는 속성을 원래 속성이라고 합니다. 예를 들어 생년월일과 원래 신용 점수가 있습니다. 속성이 자주 변경되지 않는 경우 해당 속성에 속하는 측정기준을 지연 변경 측정기준(SCD)이라고 합니다. SCD가 변경되면 팩트 테이블에 이미 있는 데이터는 이전 버전의 SCD를 참조해야 합니다. 따라서 SCD 기록을 유지할 방법이 필요합니다.

데이터 웨어하우스를 마이그레이션할 때는 SCD 처리 방법을 통합하거나 기존 방법을 개선할 수 있는 기회를 고려하세요.

  • 스키마 및 데이터 전송 단계에서 스키마를 개선할 때 SCD 고려
  • 파이프라인 마이그레이션 단계에서 SCD 기록을 보존하고 백필 출력 재계산, 로직 변경으로 인한 재처리, 계보 추적과 같은 시나리오에서 재현 가능한 방식으로 사용하는지 확인

기존의 SCD 처리 방법

SCD 변경사항을 처리하는 기존의 방법을 SCD 유형 0~6이라고 합니다. 가장 일반적인 방법은 SCD 유형 2이며 측정기준 테이블에 추가 열을 만들어 기록 데이터를 추적합니다. 추가된 열은 서로게이트 키이며 버전, 유효 기간 시작일/종료일 또는 현재 날짜에 현재 행을 나타내는 플래그를 추가한 것입니다. BigQuery에서 이러한 기법과 다른 기법을 적용하는 방법에 대한 자세한 내용은 변경 관리를 참조하세요.

기능 데이터 엔지니어링

Apache Airflow의 제작자인 맥심 부시민이 Functional Data Engineering이라는 기사에서 SCD를 처리하는 또 다른 방법을 제시했습니다. 이 자료에서는 데이터 파이프라인이 방향성 상호 종속 항목을 반영하기 위해 DAG로 구성된 확정적이고 멱등성이 있는 태스크의 모음으로 구성된 패러다임을 제안합니다.

태스크는 출력이 입력에만 의존하고 로컬 또는 글로벌 상태에는 의존하지 않을 때 확정적이므로 기능 프로그래밍 개념을 따릅니다. 태스크는 동일한 입력 매개변수를 사용하여 두 번 이상 실행될 수 있고 여전히 동일한 출력을 생성할 때 멱등성이 있는 것으로 간주됩니다. 즉, 추가 부작용이 발생하지 않습니다. (컴퓨팅에서 이와 관련 예시로 REST PUT 연산이 있습니다.) 태스크 실행을 태스크의 인스턴스라고 합니다. 입력이 서로 다른 태스크 인스턴스는 동일한 출력 테이블의 서로 다른 파티션에 데이터를 기록합니다.

태스크의 입력 중 하나는 측정기준이므로 부시민은 ETL 실행이 트리거될 때마다 측정기준 스냅샷을 만들 것을 권장합니다. 측정기준 스냅샷은 ETL 실행에 필요한 모든 측정기준 행을 타임스탬프와 함께 복제합니다. 측정기준 테이블은 다양한 시점의 스냅샷 모음이 됩니다. 이러한 스냅샷은 SCD의 변경 기록을 유지하고, 모든 태스크 인스턴스가 재실행되고 일관되고 재현 가능한 출력을 얻을 수 있도록 합니다.

이 방법은 SCD 유형 2와 같은 SCD를 처리하는 기존의 방식과 다릅니다. 복잡하게 서로게이트 키와 추가 열을 관리하지 않아도 되므로 엔지니어링 시간이 줄어들고 스토리지 비용이 비교적 적게 듭니다. 이 기사에서는 두 가지 방법이 공존할 수 있음을 인정합니다.

BigQuery에서 SCD 처리

BigQuery는 측정기준 테이블을 포함한 별표 및 눈송이 스키마를 지원합니다. 따라서 앞의 두 가지 방법 중 하나를 적용할 수 있습니다.

BigQuery는 한 단계 더 나아가 중첩 및 반복 필드의 기본 지원을 통해 스키마 비정규화를 촉진합니다. 이 필드는 이벤트 발생 시점에 속성이 중요한 경우 팩트 테이블에서 사용할 수 있습니다. 또한 측정기준 테이블에서 전체 측정기준 행 대신 변경 속성의 이전 값만 유형 2 또는 스냅샷 방식으로 기록하는 데 사용할 수 있습니다.

데이터 보관 및 삭제

특정 상황에서 사용자가 BigQuery에서 데이터를 수정하거나 삭제하지 못하게 할 수 있습니다. 이러한 작업을 허용하는 권한이 포함된 역할에서 해당 사용자를 삭제하여 이 제한을 적용할 수 있습니다. 이러한 역할은 roles/bigquery.dataOwner, roles/bigquery.dataEditor, roles/bigquery.admin입니다. 또 다른 옵션은 특정 편집 및 삭제 권한이 포함되지 않은 커스텀 IAM 역할을 만드는 것입니다.

전자 기록 보관에 대한 규정을 준수해야 하는 경우에는 대신 데이터를 Cloud Storage로 내보내고 특정 기록 보관 규정을 해결하는 데 도움이 되는 버킷 잠금 기능을 사용하는 것이 좋습니다.

다른 상황에서는 지정된 기간이 지나면 자동으로 데이터를 삭제해야 할 수 있습니다. BigQuery는 구성 가능한 만료일을 통해 이 요구사항을 충족할 수 있습니다. 데이터 세트, 테이블, 특정 테이블 파티션에 만료일을 적용할 수 있습니다. 불필요한 데이터 만료는 비용 관리 및 스토리지 최적화의 척도입니다. 자세한 내용은 BigQuery 권장사항을 참조하세요. Google Cloud의 데이터 삭제에 대한 광범위한 개요는 이 문서 페이지를 참조하세요.

Google Cloud 고객은 규제의 적용을 받는다고 판단될 경우 스스로 법률 자문 및 해당 규제 당국의 감독 하에 해당 요건에 대한 자체 규정 준수 평가를 완료해야 합니다.

데이터 품질 관리

데이터 품질 관리 프로세스에는 다음이 포함됩니다.

  • 유효성 검사용 컨트롤 만들기
  • 품질 모니터링 및 보고 사용 설정
  • 이슈 심각도 평가를 위한 심사 프로세스 지원
  • 근본 원인 분석을 사용 설정하고 데이터 문제에 대한 구제 조치 권장
  • 데이터 이슈 추적

데이터 소비자마다 데이터 품질 요구사항이 다를 수 있으므로 데이터 품질에 대한 기대치와 데이터 유효성 검사 및 모니터링 프로세스를 지원하는 기법과 도구를 문서화하는 것이 중요합니다. 데이터 품질 관리를 위한 올바른 프로세스를 설정하면 보다 신뢰할 수 있는 분석용 데이터를 제공할 수 있습니다.

품질 메타데이터

데이터 웨어하우스는 의사 결정권자에게 방대한 양의 선별된 데이터에 대한 액세스 권한을 제공합니다. 그러나 데이터 웨어하우스의 모든 데이터가 동일하게 취급되어야 하는 것은 아닙니다.

  • 의사 결정 시 데이터의 품질이 높을수록 의사 결정에 더 많은 영향을 미치며, 품질이 낮을수록 더 적은 영향을 미칩니다.
  • 데이터 품질 모니터링 시 품질이 낮은 데이터를 사용하여 자동 또는 수동 알림을 트리거하면 데이터가 데이터 웨어하우스에 도달하기 전에도 해당 데이터를 생성하는 프로세스를 확인할 수 있습니다.

또한 조직의 부서마다 데이터 품질에 대한 기준이 다를 수 있습니다. 예를 들어 저급 데이터는 개발 및 테스트용으로는 완벽하지만 재무 또는 규정 준수용으로는 사용할 수 없는 것으로 간주될 수 있습니다.

이 섹션에서는 의사 결정권자와 프로세스에 제공되는 데이터를 평가하는 데 필요한 컨텍스트를 제공하는 메커니즘인 메타데이터를 설명합니다.

구조와 형식

메타데이터는 데이터 검증을 위해 데이터에 연결된 구조화된 정보입니다. 데이터 품질과 관련하여 메타데이터를 사용하면 정확성, 최신성, 완전성과 같은 관련 속성을 수집할 수 있습니다.

데이터 품질 메타데이터(DQM)에 캡처된 시맨틱스와 특정 속성은 검증 대상인 비즈니스 컨텍스트에 종속됩니다. 용이한 커뮤니케이션 및 관리를 위해 기업 전체에서 표준 속성 세트를 채택할 것을 강력히 권장합니다. ISO/IEC 25012:2008 데이터 품질 모델과 같은 업계 표준 또는 Data Management(DAMA) 커뮤니티와 같은 전문 조직의 권장사항에 따라 속성 세트를 선택할 수 있습니다.

DQM이 저장되고 의사 결정권자에게 제공되는 형식도 중요한 고려사항입니다. 의사 결정 작업에 따라 적합한 형식이 다를 수 있습니다. 예를 들어 모게스 등은 DQM의 다음 형식 목록을 컴파일하고 제공합니다.

  • N 수준 서수: 우수, 양호, 평균과 같은 유한한 값 세트
  • 범위: 서수보다 유연성이 높은 품질 수준을 나타내기 위해 하한 및 상한이 있는 숫자 척도입니다(예: 0~100).
  • 확률: 데이터가 정확할 확률을 나타내는 0~1 단위의 데이터 품질
  • 그래픽: 품질 수준을 나타내는 색상과 같은 시각적 큐

클라우드의 품질 메타데이터

기존에는 기업이 일관된 DQM 저장소를 유지하지 않고 공유된 지식에 의존했습니다. 이러한 지식은 스프레드시트, 인트라넷 페이지, 임시 데이터베이스 테이블과 같은 분리된 저장소에서 캡처됩니다. 이처럼 분산된 DQM 소스를 발견, 검색, 이해, 관리하는 활동은 협업을 방해하며 의사 결정에 도움이 되는 가치에 비해 단점이 더 클 수 있습니다.

Data Catalog는 중앙 집중식 메타데이터 관리 방법을 제공합니다.

  • 비즈니스 메타데이터라고도 하는 커스텀 메타데이터 태그는 사용자가 표준 정의의 일부로 선택하고 각 비즈니스 컨텍스트에 맞게 맞춤설정할 수 있는 논리 템플릿으로 그룹화한 모든 데이터 품질 속성을 지원합니다.
  • 서수 속성을 나타내는 커스텀 열거 유형과 여러 그래픽 표현으로 사용할 수 있는 범위, 확률, 숫자 값을 나타내는 실수 및 문자열 유형을 지원합니다. Data Catalog UI 또는 API 및 클라이언트 라이브러리를 통해 이러한 메타데이터 값에 액세스하여 의사 결정권자를 위한 커스텀 애플리케이션을 빌드할 수 있습니다.
  • 업스트림 프로세스에서 Data Catalog API를 사용할 수 있습니다. 특정 소스의 데이터 품질이 기준 미달일 경우 프로세스는 품질이 낮은 데이터에 태그를 지정하고 이러한 데이터가 BigQuery에 도달하기 전에 알림을 트리거합니다. 데이터 자체는 인증 및 구제 조치와 재처리를 위해 Cloud Storage의 격리 버킷으로 전송될 수 있습니다.

DQM 고려사항

DQM이 없으면 의사 결정권자가 품질이 낮은 데이터를 사용하고 서투른 결정을 내릴 가능성이 더 높습니다. 실제로 DQM을 추가하면 의사 결정권자가 대안 생성을 위해 습득해야 하는 정보 양을 감당하지 못할 수 있습니다. 정보가 너무 많으면 결정의 적시성과 품질 모두에 부정적인 영향을 미칠 수 있습니다.

따라서 의사 결정권자에게 DQM의 시맨틱스 및 권장사항에 대해 교육하는 것이 중요합니다. 모게스 등은 품질이 낮은 데이터 사용 시 타격이 큰 중요한 태스크에는 DQM 및 교육을 제공하면 유용하다고 말합니다. 그러나 DQM은 높은 효율이 필요한 태스크나 제대로 교육을 받지 못한 직원에게 사용할 경우 비생산적일 수 있습니다.

감사

조직은 시스템을 감사하여 올바르게 작동하는지 확인할 수 있어야 합니다. 보안팀은 모니터링, 감사, 추적을 통해 비즈니스 손상 또는 손실을 입기 전에 데이터를 수집하고, 위협을 식별하고, 위협에 대응할 수 있습니다. 위협을 신속하게 완화하고 전반적인 보안 상태를 평가하기 위해 정기적인 감사를 수행하여 제어의 효과를 확인하는 것이 중요합니다. 외부 감사관과 규정 준수를 입증하기 위해 감사가 필요할 수도 있습니다.

정상적인 데이터 액세스 제어를 보장하기 위한 첫 번째 단계는 Google Cloud 프로젝트 및 개별 BigQuery 데이터 세트와 연결된 사용자 및 그룹을 정기적으로 감사하는 것입니다. 이러한 사용자가 소유자 또는 관리자여야 하나요? 아니면 보다 제한적인 역할로도 자신이 맡은 직무를 충분히 수행할 수 있나요? 프로젝트에 대한 IAM 정책을 변경할 수 있는 권한이 있는 사람을 감사하는 것도 중요합니다.

로그 분석의 두 번째 단계는 BigQuery 데이터 및 메타데이터와 관련하여 '누가, 무엇을, 어디서, 언제했는가?'라고 자문하는 것입니다.

  • 데이터의 경우 BigQuery는 기본적으로 관리 활동 및 데이터 액세스 감사 로그라는 불변의 로그 스트림 두 개를 Cloud Logging에 제공합니다.
  • 메타데이터의 경우 Data Catalog는 감사 로깅 스트림을 모두 지원합니다. 단, BigQuery와 달리 데이터 액세스 로깅을 수동으로 사용 설정해야 합니다.

관리자 활동 로그는 로그 호출 관련 로그 항목이나 리소스의 구성 또는 메타데이터를 수정하는 다른 관리 작업을 포함합니다. 예를 들어 새 서비스 계정 생성 또는 새 사용자에게 BigQuery 데이터 세트에 대한 읽기 액세스 권한 부여와 같은 IAM 권한 변경이 관리자 활동 로그에 기록됩니다.

데이터 액세스 로그는 사용자가 제공한 데이터를 생성하거나 수정하거나 읽는 사용자 인증 API 호출을 기록합니다. 예를 들어 사용자가 BigQuery 데이터 세트를 쿼리하거나 쿼리 결과를 요청한 경우 데이터 액세스 로그가 기록됩니다. 쿼리 주체를 서비스 계정이 아닌 사용자로 표시하면 데이터 액세스 감사가 용이해집니다.

두 가지 유형의 로그 모두 지정된 특정 조건에서 트리거되는 Cloud Monitoring 알림을 만들 수 있습니다. 이러한 알림이 트리거되면 이메일, SMS, 타사 서비스는 물론 웹훅을 포함한 여러 채널을 통한 알림이 커스텀 URL에 전송될 수 있습니다.

감사 로그에는 중요한 정보가 포함될 수 있으므로 로그에 대한 액세스를 제한하는 것이 좋습니다. 감사 로그에 대한 액세스 권한은 IAM 역할을 사용하여 제한할 수 있습니다.

다음과 같은 이유로 Cloud Logging에서 BigQuery 데이터 세트로 BigQuery 감사 로그를 내보내는 것이 좋습니다.

  • Cloud Logging은 제한된 로그 보관 기간 동안에만 감사 로그를 보관합니다. BigQuery 또는 Cloud Storage와 같은 다른 안전한 스토리지 위치로 내보내면 장기적으로 보관할 수 있습니다.
  • BigQuery에서는 로그에 대해 SQL 쿼리를 실행하여 분석을 위한 복잡한 필터링을 사용 설정할 수 있습니다.
  • 또한 Looker Studio와 같은 시각화 도구를 사용하여 대시보드를 만들 수 있습니다.

자세한 내용은 Google Cloud 감사 로그 사용 시 권장사항 블로그 게시물을 참조하세요.

다음 단계

  • 동영상 보기 및 BigQuery 리소스 구성에서 권장사항 자세히 읽어보기
  • Google Cloud에 대한 참조 아키텍처, 다이어그램, 가이드, 권장사항 살펴보기 클라우드 아키텍처 센터에서 아키텍처 프레임워크 살펴보기