고객 구성 Snowflake 통합(레거시)

circle-exclamation

개요

이 구성에서는 Panther가 접근 권한을 가지지 않으며 데이터베이스 관리자가 우리의 대리로 명령을 실행해야 합니다.

이 가이드는 AWS에 이미 Snowflake 인스턴스가 있다고 가정합니다.

이상적으로는 Panther 배포와 Snowflake 인스턴스가 동일한 AWS 리전에 있어야 합니다. Panther와 Snowflake가 동일한 리전에 있으면 쿼리 및 데이터 이동 시 지연(latency)이 줄어듭니다(리전 간 통신과 비교하여).

Panther는 Snowflake 인스턴스에 접근하기 위해 두 개의 Snowflake 사용자/역할을 사용합니다:

  1. 쿼리를 위한 읽기 전용 사용자/역할

  2. 새 로그 소스가 Panther에 온보딩될 때 테이블을 생성하기 위해 Panther 데이터베이스에 대해서만 엄격한 권한을 가진 관리자 사용자/역할.

Snowflake에서는 테이블 접근을 공유할 수 있습니다. 이를 통해 귀사의 비즈니스 데이터와 보안 데이터를 Panther에서 쿼리할 수 있습니다( PANTHER_READ_ONLY 역할을 통해).

자체 Snowflake 인스턴스를 관리하는 경우 Panther가 수집한 데이터로 테이블과 뷰를 생성할 수 있습니다. 이러한 커스텀 객체를 Panther 데이터베이스 안에 두지 마십시오. 예기치 않은 테이블 및 뷰는 오류를 발생시킬 수 있습니다. 대신 비-Panther 데이터베이스에 생성하고 Panther와 공유하십시오.

triangle-exclamation

레거시 고객 관리형 Snowflake 통합 구성 방법

1. Panther에서 구성 정보를 수집합니다

  1. Panther 콘솔에 로그인하십시오.

  2. 오른쪽 상단의 톱니바퀴 아이콘을 클릭하십시오.

  3. 드롭다운 메뉴에서 클릭하십시오 일반.

그곳에서 다음을 찾을 수 있습니다:

  • Snowflake ReadOnly Lambda Role ARN

  • Snowflake Admin Lambda Role ARN

  • Lookup Tables Lambda Role ARN

In the Panther Console, the General Settings page is open. The Snowflake Settings tab is selected. The screen shows a list of Snowflake configuration ARNs.

이 ARNs를 잘 보관하십시오. 나중에 사용할 것입니다.

2. Snowflake에서 구성 정보를 수집합니다

Panther를 구성하려면 Snowflake에서 SNOWFLAKE_IAM_USER 를 가져와야 합니다.

Snowflake SQL 셸에서 아래 SQL을 실행하고 myaccountid 를 귀하의 AWS 계정 ID로, myaccountregion 을 계정의 리전으로 교체하십시오:

다음과 유사한 응답을 볼 수 있습니다:

위의 예에서 SNOWFLAKE_IAM_USERAWS 속성입니다 arn:aws:iam::87654321XXXX:user/k7m2-s-v2st0722입니다. 이것을 잘 보관하십시오. 나중 단계에서 사용할 것입니다.

3. Snowflake에 Panther 데이터베이스 생성

Snowflake SQL 셸에서 다음을 실행하십시오:

4. Snowflake에서 읽기 전용 역할과 관리자 역할 생성

circle-exclamation

참고: 아래 SQL 블록의 첫 번째 줄에서 <your warehouse> 를 Panther가 사용할 원하는 Snowflake 웨어하우스 이름으로 업데이트해야 합니다.

비용을 쉽게 추적하고 다른 Snowflake 리소스와 독립적으로 용량을 조정할 수 있도록 전용 Panther 웨어하우스(예: PANTHER_WH)를 생성하는 것을 권장합니다.

Snowflake SQL 셸에서 다음을 실행하십시오:

5. Snowflake에서 읽기 전용 사용자와 관리자 사용자 생성

참고: 아래에서 <your_readonly_password><your_admin_password> 를 설정하십시오. Snowflake SQL 셸에서 실행하십시오:

6. AWS Secrets 생성을 쉽게 하기 위한 저장 프로시저 생성(선택 사항)

AWS Secrets Manager에 복사하여 붙여넣을 수 있는 JSON 문서를 생성하는 저장 프로시저를 정의하십시오(입력 작업을 줄임). Snowflake SQL 셸에서 실행하십시오:

7. Panther Snowflake Secrets용 KMS 키를 AWS 계정에 생성

이 키는 8단계에서 귀하의 AWS 계정에 저장할 Snowflake 비밀을 암호화하는 데 사용됩니다.

  1. AWS 계정에 로그인하십시오

  2. (선택 사항) Snowflake 계정이 있는 동일한 리전으로 이동하십시오

  3. KMS 서비스로 이동하십시오

  4. 클릭하십시오 키 생성

  5. 선택하십시오 대칭(Symmetric) 유형으로 선택한 후 다음

  6. 을 클릭하십시오 별칭을 다음으로 설정하십시오panther-secret 다음. 클릭하십시오 다음 . 다음 페이지에서 클릭하십시오

  7. 클릭하십시오 (기본값 수락) 다른 AWS 계정 추가

  8. 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. 다음 클릭하십시오 그런 다음.

완료

8. 읽기 전용 사용자 AWS Secret과 관리자 사용자 AWS Secret 생성 다음을 사용하여arrow-up-right AWS Secrets Manager

에 Snowflake 사용자 비밀번호를 저장합니다. 이 비밀은 Panther 계정의 단일 람다 함수만 접근할 수 있도록 구성됩니다. 아래 과정을 반복하십시오. 한 번은 panther_readonly 사용자용으로, 다른 한 번은 panther_admin

  • 사용자용으로. 콘솔을 통해 AWS Secrets Manager에 접근하고 새 비밀 저장

  • 버튼을 선택하십시오. 제목이 다음인 페이지가 표시됩니다:새 비밀 저장 . 목록에서 기타 유형의 비밀

을 선택하십시오. 다음 키/값 쌍을 지정하십시오:
설명

필드

account 귀하의 Snowflake 계정 이름입니다. 다음을 실행하여 찾을 수 있습니다:

SELECT CURRENT_ACCOUNT()

user 아래 과정을 반복하십시오. 한 번은 이전에 생성한 Snowflake 사용자 이름, 예를 들면 사용자용으로, 다른 한 번은

또는

password

이전에 생성한 Snowflake 사용자 비밀번호

host 이는 보통 <something>.snowflakecomputing.com 입니다. 클러스터에 로그인할 때 사용한 URL에서 가져오십시오. 호스트 이름에서 https:// / 와 모든 후행

문자를 제거하십시오.

port 443 다르게 구성하지 않았다면

을 사용하십시오

warehouse

귀하의 Snowflake 활성 웨어하우스 이름필드문자를 제거하십시오. 위 항목들을 수동으로 입력하거나 Snowflake SQL 셸에서 다음 명령을 실행하여 네 개의 지정된 매개변수에 적절한 값을 입력하면( 아래 과정을 반복하십시오. 한 번은 panther_readonly 사용자용으로, 다른 한 번은:

SELECT panther_stored_procedures.public.generate_secret(<user>,<password>,<warehouse>,<host>);

The image shows the "Store a new secret" screen from the AWS console. The option "Other type of secrets" is selected. The dropdown for "Select the encryption key" is set to "panther-secret."

참고그런 다음 결과를 복사하여 두 개의 비밀의 "평문(plaintext)" 편집 탭에 붙여넣을 수 있습니다.: 모든 6개 필드(account, host, password, port, user, warehouse

  • )가 올바르게 채워져 있는지 확인하십시오. 그렇지 않으면 Panther 람다가 Snowflake에 연결하는 데 문제가 발생할 수 있습니다. 별칭을 다음으로 설정하십시오 암호화 키 선택에서 드롭다운에서

  • 을 선택하십시오.

  • 를 선택하고 Panther가 설치된 계정 ID를 입력하십시오. 다음.

On the "Store a new secret" page in AWS, the secret type "Other types of secrets" is selected. Under "Specify the key/value pairs to be stored in this secret," the following keys are entered: account, host, password, port, user, and warehouse.
  • 비밀의 키/값을 입력하십시오. 다음.

On the "Store a new secret" page in AWS, the secret name and description fields are filled out.
  • 비밀의 이름과 설명을 묻는 화면이 표시됩니다. 이를 입력한 후 다음.

The image shows the AWS Console during the process of storing a new secret. Under "Configure automatic rotation," the options available are "Disable automatic rotation" and "Enable automatic rotation."
  • 을 클릭하십시오. AWS Secrets Manager가 비밀을 얼마나 자주 교체할지 구성한 다음 을 클릭하십시오.

마지막으로 개요 화면이 표시됩니다. 아래로 스크롤하여

저장

버튼을 클릭하십시오. 비밀에 대한 권한 업데이트 두 개의 Panther AWS 비밀에 대해 특정 Panther 람다만 Snowflake 비밀에 접근할 수 있도록 권한을 구성해야 합니다. 아래 과정을 반복하십시오. 한 번은 Panther의 panther-snowflake-api 두 개의 Panther AWS 비밀에 대해 특정 Panther 람다만 Snowflake 비밀에 접근할 수 있도록 권한을 구성해야 합니다. 사용자용으로, 다른 한 번은 는 사용자 쿼리에 대해

사용자를 사용할 것이며, panther-snowflake-admin-api 는 새 로그 소스가 온보딩될 때 테이블을 생성하기 위해

사용자를 사용할 것입니다. 또한 panther-lookup-tables-api 는 Snowflake에서 조회(lookup) 테이블을 관리하기 위한 권한을 사용할 것입니다.콘솔로 이동하여 위에서 생성한 각 비밀을 선택하십시오. 개요 화면에서

  • 비밀에 대한 권한 업데이트 권한 편집

  • panther-snowflake-api 권한 편집

버튼을 클릭하십시오. 아래 정책 JSON을 복사하고 첫 단계에서 수집한 적절한 <snowflake lambda role> 중 하나로 치환하십시오: panther-snowflake-admin-api 첫 단계에서 수집된 역할

또는 <lookup tables lambda role> 를 첫 단계에서 수집한

"Action": "secretsmanager:GetSecretValue", "Resource": "<secret ARN>".

"Principal": {"AWS": "<lookup tables lambda role>" }, 그런 다음 저장

을 클릭하십시오

비밀의

arn

  • SNOWFLAKE_IAM_USER 을 기록해 두십시오. 나중에 사용할 것입니다.

  • 9. Snowflake 사용 설정으로 Panther 배포 아래 과정을 반복하십시오. 한 번은 SaaS 고객 관리형 배포 사용자

  • 9. Snowflake 사용 설정으로 Panther 배포 사용자용으로, 다른 한 번은 SaaS 고객 관리형 배포 사용자

귀하의 Panther 담당자(POC)에게 전송:

첫 번째 단계에서 수집된

ARN for the user AWS Secret 귀하의 Panther POC는 이러한 설정으로 Panther를 재배포하여 Snowflake를 활성화할 것입니다.

  • CloudPrem 사용자 자체 계정에서 Panther를 실행하는 고객(이를 CloudPrem 아래 과정을 반복하십시오. 한 번은 panther_admin

  • CloudPrem 사용자 이라고 부릅니다) CloudPrem 사용자용으로, 다른 한 번은 panther_admin

  • CloudPrem 사용자 먼저 마스터 템플릿을 배포하여 Panther의 초기 설정을 수행해야 합니다. 마스터 템플릿을 배포한 후 아래와 같이 마스터 스택 매개변수를 구성하십시오: 다음을 업데이트하십시오: SnowflakeAPISecretARN 매개변수를 위에서 생성한 비밀의 ARN으로 설정하십시오(

SnowflakeAdminAPISecretARN

SnowflakeDestinationClusterARNs

매개변수를 초기 단계에서의

  • <SNOWFLAKE_IAM_USER>

  • 값으로 설정하십시오.

  • CloudFormation 스택 업데이트를 실행하십시오.

  • Snowpipe 처리 확인

  • Panther가 Snowflake로 구성되면 일곱 개의 데이터베이스가 있어야 합니다:

  • panther_logs

  • panther_rule_matches

panther_rule_errors

panther_cloudsecurity

pather_stored_procedures panther_monitor정기적으로 데이터가 처리되고 있다면 몇 분 내에 테이블에 데이터가 있어야 합니다. 이는 로그 수집 속도에 따라 다릅니다.

데이터 수집이 작동하는지 빠르게 테스트하려면 간단한 쿼리를 실행하십시오:

SELECT count(1) AS c FROM panther_views.public.all_logs ;

마지막 업데이트

도움이 되었나요?