본문 바로가기
카테고리 없음

[Snowflake] SnowPro Core 시험 Cheat Sheet 2 (계정 액세스 및 보안)

by JustJunsu 2024. 10. 27.

2. 계정 액세스 및 보안

2.1 보안 원칙에 대해 간략히 설명하기

1) 네트워크 보안 및 정책

  • 개념: Snowflake는 클라우드 환경에서 외부 네트워크를 통한 데이터 접근을 제한하기 위해 네트워크 정책을 설정합니다. 네트워크 정책은 승인된 IP 주소에서만 Snowflake에 접근할 수 있도록 제어하는 보안 조치입니다.
  • 기능: 관리자는 특정 IP 주소나 IP 범위를 화이트리스트에 추가하여 접근을 제한할 수 있으며, 필요 시 IP 주소 기반으로 네트워크 정책을 강화할 수 있습니다. 네트워크 정책은 관리 콘솔에서 손쉽게 설정하고 수정할 수 있으며, ACCOUNTADMIN 또는 SECURITYADMIN 권한을 가진 사용자에 의해 주로 관리됩니다.
  • 장점: 이 설정을 통해 승인된 네트워크에서만 접근이 가능하도록 하여, 미승인 사용자와 위치로부터의 접근을 방지함으로써 데이터 보안 수준을 높입니다.

2) 멀티 팩터 인증 (MFA)

  • 개념: Snowflake는 추가적인 보안 계층으로 멀티 팩터 인증(MFA)을 지원하여 사용자의 계정 보안을 강화합니다.
  • 기능: MFA를 활성화하면 사용자는 로그인할 때 패스워드 외에도 추가 인증 코드(OTP, 인증 앱 등을 통해 생성된 일회용 코드)를 입력해야 하며, 이 코드는 일회성이며 짧은 유효 기간을 갖습니다. 보안 강화를 위해 ACCOUNTADMIN  SECURITYADMIN 권한을 가진 사용자가 MFA 설정을 관리합니다.
  • 장점: 패스워드 유출 시에도 추가적인 인증 절차를 요구하기 때문에 무단 접근이 어렵습니다. 이를 통해 계정 도용 및 정보 유출을 방지할 수 있습니다.

3) Federated Authentication

  • 개념: Snowflake는 조직의 외부 인증 시스템과 연동하는 Federated Authentication을 지원하여 조직 내 인증 프로세스를 통합 관리할 수 있습니다.
  • 기능: Snowflake는 SAML 2.0 기반의 인증 시스템과 연동하여 사용자 인증을 수행할 수 있으며, 사용자들은 Snowflake에 별도의 계정이나 비밀번호 없이 외부 인증 시스템을 통해 로그인할 수 있습니다. 이는 주로 SSO 시스템과 통합하여 사용하는 경우가 많으며, ACCOUNTADMIN  SECURITYADMIN 권한을 통해 설정됩니다.
  • 장점: Federated Authentication을 통해 중앙에서 사용자 계정을 통합 관리하고, 인증 표준을 조직 전체에 일관되게 적용하여 사용자 관리와 보안 설정이 더욱 간편해집니다.

4) 키 페어 인증

  • 개념: Snowflake는 클라이언트 애플리케이션과 API 호출에 강력한 보안을 제공하기 위해 키 페어 인증을 사용합니다. 키 페어 인증은 비밀번호 대신 공개키와 비밀키 쌍을 이용한 방식입니다.
  • 기능: 관리자는 각 사용자에게 비밀키를 배포하고, Snowflake는 사용자의 공개키를 활용하여 인증을 수행합니다. 이를 통해 패스워드 기반 인증보다 강력한 보안을 제공합니다. 특히, Snowflake에서는 서버에서 비밀키를 직접 저장하지 않으므로 보안성이 높습니다. 이 기능은 주로 ACCOUNTADMINSECURITYADMIN 권한으로 관리됩니다.
  • 장점: 키 페어 인증은 패스워드 유출 위험이 없고, 자동화 스크립트나 API를 통한 연속적 인증에 적합합니다.

5) Single Sign-On (SSO)

  • 개념: SSO를 통해 사용자는 한 번의 인증만으로 여러 애플리케이션에 접근할 수 있습니다. 이는 사용자가 여러 서비스에 대해 개별적으로 인증할 필요 없이, 한 번의 로그인으로 Snowflake를 포함한 다양한 시스템에 접근할 수 있게 합니다.
  • 기능: Snowflake는 SAML 2.0을 지원하여 조직에서 사용하는 SSO 시스템과 통합할 수 있습니다. 사용자는 SSO 시스템을 통해 Snowflake와 다른 응용 프로그램에 단일 로그인으로 접근할 수 있으며, 이 기능은 ACCOUNTADMIN  SECURITYADMIN 권한을 통해 설정됩니다.
  • 장점: SSO를 통해 사용자 로그인 경험을 개선하고 보안 관리의 일관성을 높이며, 여러 계정을 일관되게 관리할 수 있어 계정 관리의 편리성과 보안성이 향상됩니다.

2.2 Snowflake에서 사용되는 개체와 역할 정의하기

Snowflake는 역할 기반 액세스 제어(RBAC) 시스템을 통해 사용자 접근을 관리합니다. 주요 관리자 역할과 각 역할의 특징은 다음과 같습니다.

1) 주요 관리자 역할

  • ORGADMIN (조직 관리자)
    조직 차원에서 운영을 관리하는 역할로, 전체 조직에 영향을 미치는 작업을 수행합니다.
    • 기능:
      • 조직 내에서 새로운 계정을 생성할 수 있으며, SHOW ORGANIZATION ACCOUNTS 명령어를 통해 조직의 모든 계정을 조회할 수 있습니다.
      • SHOW REGIONS 명령어를 통해 조직에 대해 활성화된 모든 리전을 확인할 수 있습니다.
      • 조직 전체의 리소스 사용 정보를 확인하고 조직 단위에서 운영 및 리소스를 효율적으로 관리할 수 있습니다.
  • ACCOUNTADMIN (계정 관리자)
    계정의 최상위 관리자 역할로, SYSADMIN 및 SECURITYADMIN 역할을 포함한 모든 권한을 캡슐화합니다.
    • 기능:
      • Snowflake 계정 내 모든 리소스와 보안 설정을 관리하며, 계정 내 소수의 사용자에게만 부여하는 것이 권장됩니다.
      • 계정 내 데이터 및 리소스 권한 설정, 보안 설정, 네트워크 정책, SSO, MFA 등을 제어하여 계정의 주요 보안을 담당합니다.
  • SECURITYADMIN (보안 관리자)
    모든 오브젝트 권한 부여를 전역적으로 관리하고, 사용자와 역할 생성 및 관리를 담당합니다.
    • 기능:
      • MANAGE GRANTS 권한을 통해 오브젝트 권한 부여 및 회수를 수행하고, USERADMIN 역할의 권한을 상속받아 사용자와 역할을 관리합니다.
      • 보안 설정과 관련된 역할로, 계정 내 모든 권한 조정 및 보안 정책을 총괄하며 ACCOUNTADMIN 역할과 함께 계정의 보안을 감독합니다.
  • USERADMIN (사용자 및 역할 관리자)
    사용자와 역할 관리를 담당하는 역할로, 사용자 생성과 역할 설정에 특화되어 있습니다.
    • 기능:
      • CREATE USER 및 CREATE ROLE 권한을 통해 사용자와 역할을 생성하고, 생성된 사용자와 역할을 관리할 수 있습니다.
      • 자신이 소유한 사용자와 역할을 관리하며, 계정 내 사용자와 역할 설정을 통해 접근 제어를 강화합니다.
  • SYSADMIN (시스템 관리자)
    계정 내 데이터베이스, 웨어하우스, 테이블 등의 오브젝트를 생성하고 관리하는 역할입니다.
    • 기능:
      • 데이터베이스, 웨어하우스, 테이블 등 다양한 리소스를 생성하고 관리할 수 있습니다.
      • 모든 사용자 지정 역할을 SYSADMIN 역할에 할당하여 계층 구조를 설정하고, 다른 역할에 권한을 부여하는 중심 역할을 수행합니다.
  • PUBLIC
    모든 사용자와 계정의 모든 역할에 자동으로 부여되는 기본 역할로, 공통 접근 권한을 제공합니다.
    • 기능:
      • 기본적으로 제공되는 최소한의 권한을 가지며, 계정 내 공통 리소스에 접근할 수 있도록 설정됩니다.
      • 별도로 명시되지 않은 경우 모든 사용자가 동일한 접근 권한을 가지며, 계정 내 공통 리소스에 접근할 수 있습니다.

2) 액세스 제어의 개요

  • 액세스 제어 프레임워크: Snowflake는 RBAC 시스템을 통해 각 역할에 권한을 부여하여 사용자 접근을 제어합니다. 각 역할(Role)은 특정 권한(Privilege)을 보유하고 있으며, 관리자는 사용자를 특정 역할에 할당하여 필요한 권한을 제공합니다.

3) 권한 부여 및 해제 방법

  • 권한 부여: GRANT 명령어를 통해 특정 역할에 권한을 부여할 수 있습니다. 예를 들어, 특정 테이블에 대한 읽기 권한을 부여하려면 GRANT SELECT ON TABLE table_name TO ROLE role_name; 을 사용합니다.
  • 권한 해제: REVOKE 명령어로 특정 역할에서 권한을 제거할 수 있으며, 예를 들어 REVOKE SELECT ON TABLE table_name FROM ROLE role_name; 명령어를 사용합니다. SECURITYADMIN 권한은 모든 권한 부여와 해제를 조정하며, SYSADMIN은 데이터베이스 내에서 주로 권한을 관리합니다.

4) 역할 계층 및 권한 상속

  • 역할 계층 구조: Snowflake에서는 상위 역할이 하위 역할의 권한을 상속받도록 계층 구조를 설정할 수 있습니다. 예를 들어, ACCOUNTADMIN은 모든 하위 역할의 권한을 상속받으며, SECURITYADMINSYSADMIN은 각각 보안과 데이터 리소스 관리에 집중하도록 설정됩니다.
  • 권한 상속: 상위 역할은 하위 역할의 모든 권한을 자동으로 상속받아 관리자는 여러 하위 역할의 권한을 포괄적으로 관리할 수 있습니다. 이러한 계층 구조는 ACCOUNTADMIN과 같은 상위 관리자가 계정 내에서 권한을 효과적으로 제어하는 데 도움을 줍니다.

2.3 Snowflake의 데이터 거버넌스 기능에 대해 간략히 설명하기

1) 계정 (Account)

  • 설명: Snowflake 계정은 각 조직에 할당된 모든 리소스를 포함하는 단위로, 데이터베이스, 컴퓨팅 자원, 사용자, 보안 설정을 종합적으로 관리하는 기본 단위입니다. Snowflake 내에서 가장 높은 수준의 단위로, 데이터 웨어하우스 및 사용자 접근 관리를 포함한 모든 설정을 담고 있습니다.
  • 기능:
    • 계정은 조직의 클라우드 내에서 Snowflake의 리소스를 종합적으로 관리할 수 있는 기반을 제공합니다.
    • ACCOUNTADMIN 권한을 통해 관리자는 계정 내 모든 설정을 통합적으로 관리하고, 리소스 사용 현황을 모니터링하여 성능과 비용 효율성을 최적화할 수 있습니다.
    • Snowflake의 Time Travel, Fail-Safe, 데이터 공유, 데이터 파이프라인 등의 모든 기능을 계정 수준에서 사용할 수 있어 계정 단위에서 데이터 관리의 유연성이 극대화됩니다.

2) 조직 (Organization)

  • 설명: 조직은 여러 Snowflake 계정을 포함하는 개체로, 대규모 조직이나 글로벌 비즈니스에서 다양한 팀과 계정을 통합 관리하기 위해 사용됩니다. 조직 단위에서 각 계정 간 데이터를 공유하고 관리하는 시스템을 제공합니다.
  • 기능:
    • 조직 계정 관리: ORGADMIN 역할을 통해 조직 내 여러 계정을 한꺼번에 관리하고, 전체 계정 사용 현황을 확인할 수 있습니다.
    • 데이터 및 리소스 공유: 조직 내 여러 계정 간의 데이터 및 리소스를 공유하고 접근 권한을 관리할 수 있습니다. 이를 통해 각 계정의 데이터에 쉽게 접근하고 통합 관리가 가능합니다.
    • 조직의 리전 관리: SHOW REGIONS 명령어로 조직에 대해 활성화된 모든 리전을 조회할 수 있어, 글로벌 확장을 위한 조직 리소스 배치와 최적화가 가능합니다.

3) 데이터베이스 (Database)

  • 설명: 데이터베이스는 Snowflake에서 데이터를 저장하고 관리하는 주요 오브젝트로, 데이터를 구조화하여 조직 내 정보에 체계적으로 접근할 수 있는 단위를 제공합니다.
  • 기능:
    • 데이터베이스는 Time TravelFail-Safe 기능을 통해 데이터 복구 및 변경 내역을 관리합니다. Time Travel 기능은 데이터를 최대 90일까지 복원할 수 있어 실수나 장애로 인한 데이터 손실을 방지합니다.
    • Fail-Safe는 Snowflake에서 제공하는 데이터 복구 안전 장치로, 데이터를 7일간 보관하며 중요한 데이터에 대해 높은 수준의 보안과 가용성을 보장합니다.
    • Snowflake의 데이터베이스는 계정 내 여러 사용자와 역할 간의 권한을 설정할 수 있으며, 이를 통해 민감한 정보에 대한 접근을 제한할 수 있습니다.

4) Secure View (보안 뷰)

  • 설명: Secure View는 보안 설정이 강화된 뷰로, 민감한 데이터 접근을 제어하는 데 사용됩니다. Secure View는 외부 사용자 또는 특정 역할에게 데이터의 일부만을 보여줄 수 있어 중요한 데이터의 노출을 방지합니다.
  • 기능:
    • Secure View는 데이터 필터링이나 쿼리 구조를 감출 수 있어 보안을 강화할 수 있습니다. 예를 들어, 개인 식별 정보를 보유한 열에 대한 접근을 제한하여 개인 정보 보호를 강화할 수 있습니다.
    • 특정 역할이나 사용자에게 특정 데이터를 보이게 설정하여 데이터 노출을 최소화하며, 내부 정보 보호와 규제 준수를 지원합니다.

5) Secure Function (보안 함수)

  • 설명: Secure Function은 Snowflake에서 민감한 데이터 접근을 보호하고, 함수의 논리를 감추어 데이터 보호를 강화하는 기능입니다. 보안 함수는 비공개 함수로 민감한 데이터를 외부로 노출하지 않도록 설계됩니다.
  • 기능:
    • Secure Function은 민감한 데이터에 대한 접근을 제한하고 특정 데이터나 처리 로직을 숨김으로써 데이터 보안을 강화합니다.
    • 사용자 정의 함수(UDF)를 사용할 수 있으며, 이 경우 민감한 데이터 처리 작업을 함수 내부에 숨겨 직접적인 접근을 방지할 수 있습니다.
    • Secure Function을 통해 함수 외부에서 직접 데이터를 조회할 수 없도록 하여, 안전한 데이터 처리 및 로직 보호를 지원합니다.

6) Information Schema (정보 스키마)

  • 설명: Information Schema는 데이터베이스와 스키마 내의 메타데이터 정보를 제공하여 데이터베이스 구조, 권한, 설정 등을 조회할 수 있게 합니다. 정보 스키마는 Snowflake의 시스템 뷰로, 데이터베이스에 대한 메타데이터에 접근할 수 있는 주요 수단입니다.
  • 기능:
    • Information Schema는 계정 내 테이블, 열, 인덱스, 권한 등 모든 메타데이터 정보를 제공하여 관리자가 데이터 자산을 시각적으로 확인하고 관리할 수 있도록 지원합니다.
    • 예를 들어, SHOW TABLES, SHOW COLUMNS 등의 명령어를 통해 테이블 목록과 열 정보를 조회할 수 있으며, 이를 통해 데이터베이스 구조의 일관성을 유지하고 데이터 자산을 효율적으로 관리할 수 있습니다.
    • Information Schema는 모든 데이터 오브젝트에 대한 정보와 권한 정보를 관리할 수 있도록 하여, 데이터베이스 관리와 보안 설정을 모니터링하는 데 유용합니다.

7) 액세스 기록 (Access History)

  • 설명: 액세스 기록은 데이터베이스 내에서 발생한 작업을 추적하여 누가 어떤 데이터를 언제 접근했는지를 기록합니다. 이는 데이터 보안과 감사, 규제 준수에 필수적인 기능입니다.
  • 기능:
    • 액세스 기록은 데이터베이스에 대한 읽기, 쓰기 작업을 추적하여 모든 작업 기록을 남깁니다. ACCESS_HISTORY 뷰를 통해 조회할 수 있으며, 계정 내 사용자별 작업 내역을 모니터링할 수 있습니다.
    • 데이터 감사와 규제 준수 목적에 맞게 기록된 내역을 분석하고, 특정 사용자의 데이터 접근 여부를 확인하여 보안 및 데이터 거버넌스를 강화할 수 있습니다.
    • 액세스 기록을 통해 데이터에 대한 상세 접근 로그를 남겨 보안 사고 방지 및 대응 조치를 용이하게 합니다.

8) 로우/컬럼 수준 보안의 개요

  • 설명: Snowflake는 데이터 접근을 세밀하게 제어하기 위해 로우(행) 및 컬럼(열) 수준의 보안을 지원하여, 특정 사용자가 볼 수 있는 데이터 범위를 행이나 열 단위로 설정할 수 있습니다.
  • 기능:
    • 로우 및 컬럼 수준 보안을 통해 특정 조건에 따라 데이터 접근을 제한할 수 있습니다. 예를 들어, 특정 부서에만 보이는 데이터 또는 특정 역할에만 허용된 데이터를 제공하는 등 사용자별로 다른 데이터를 표시할 수 있습니다.
    • MASKING POLICY와 같은 데이터 마스킹을 통해, 열 수준에서 민감한 데이터에 접근 권한이 없는 사용자에게는 해당 정보를 숨겨서 표시할 수 있습니다.
    • 행 및 열 단위 보안을 통해 기업의 데이터 보호 정책을 준수하고, 데이터 접근 제어를 강화하여 규제 요건에 대응할 수 있습니다.

9) 오브젝트 태그 (Object Tag)

  • 설명: 오브젝트 태그는 데이터베이스 내 특정 오브젝트에 태그를 부여하여 데이터를 분류하고 보안 정책을 적용할 수 있는 기능입니다.
  • 기능:
    • 오브젝트 태그는 데이터베이스 내 다양한 데이터 오브젝트를 분류하고 식별하는 데 사용되며, 보안 관리, 규제 준수, 데이터 카탈로그의 효율적 관리를 위해 태그를 적용할 수 있습니다.
    • 특정 오브젝트에 태그를 부여하여 민감도, 소유자, 중요도 등에 따라 데이터를 분류하고, 이를 바탕으로 보안 정책과 접근 제어를 설정할 수 있습니다.
    • 오브젝트 태그는 데이터 가시성을 높여 관리자가 데이터를 더욱 쉽게 관리하고 보안을 강화할 수 있도록 지원하며, 규제 준수 측면에서도 일관된 데이터 분류 체계를 제공합니다.

Reference

https://docs.snowflake.com/ko/guides

 

가이드 - Snowflake 설명서

협업 다른 Snowflake 사용자와 데이터와 애플리케이션을 공유합니다. Snowflake Marketplace에서 데이터 제품 목록을 검색 및 게시하거나, 데이터 제품을 비공개로 공유하거나, 직접 공유를 사용하여 동

docs.snowflake.com