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

circle-exclamation

개요

이 구성에서는 Panther가 접근 권한이 없으며 데이터베이스 관리자(DBA)가 우리를 대신하여 명령을 실행해야 합니다.

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

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

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 역할 ARN

  • Snowflake Admin Lambda 역할 ARN

  • Lookup Tables Lambda 역할 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.

이 ARN들을 잘 보관하세요. 이후에 사용합니다.

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 웨어하우스 이름으로 업데이트하세요.

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

Snowflake SQL 셸에서 다음을 실행하세요:

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

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

6. AWS Secrets 생성을 더 쉽게 해주는 저장 프로시저 생성(선택 사항)

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

7. Panther Snowflake 비밀을 위해 AWS 계정에 KMS 키 생성

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

  1. AWS 계정에 로그인

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

  3. KMS 서비스로 이동

  4. 클릭 키 생성

  5. 선택 대칭형 유형으로 선택한 후 다음

  6. 별칭을 설정 panther-secret. 클릭 다음. 다음 페이지에서 클릭 다음 (기본값 수락)

  7. 클릭 다른 AWS 계정 추가 그리고 Panther가 설치된 계정 ID를 입력합니다.

  8. 클릭 다음 그런 다음 클릭 완료.

8. 읽기 전용 사용자 AWS Secret 및 관리 사용자 AWS Secret 생성

다음 항목을 사용합니다 AWS Secrets Managerarrow-up-right Snowflake 사용자 비밀번호를 저장합니다. 이 비밀은 Panther 계정의 단일 람다 함수에서만 액세스하도록 구성됩니다.

아래 절차를 반복합니다. 한 번은 panther_readonly 사용자용으로, 또 한 번은 panther_admin 사용자용으로.

  • 콘솔에서 AWS Secrets Manager에 접속하고 새 비밀 저장 버튼을 선택합니다.

  • 제목이 있는 페이지가 표시됩니다 새 비밀 저장. 선택 다른 유형의 비밀 목록에서 유형을 선택합니다. 다음 키/값 쌍을 지정하세요:

필드
설명

account

귀하의 Snowflake 계정 이름입니다. 다음을 실행하여 확인할 수 있습니다 SELECT CURRENT_ACCOUNT()

user

이전에 생성한 Snowflake 사용자, 예를 들어 panther_readonly 또는 panther_admin

password

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

host

보통 다음과 같습니다 <something>.snowflakecomputing.com 클러스터 로그인에 사용한 URL에서. https:// 및 호스트 이름의 후행 / 를 제거하세요.

port

사용 443 별도로 구성하지 않았다면

warehouse

활성 Snowflake 웨어하우스의 이름

위 항목을 수동으로 입력하거나 Snowflake SQL 셸에서 다음 명령을 실행하여 지정된 4개 매개변수의 적절한 값을 입력할 수 있습니다 (accountport 는 자동 채워질 수 있습니다). 각 사용자에 대해 한 번 수행하세요 panther_readonly 사용자용으로, 또 한 번은 panther_admin:

그런 다음 결과를 두 개의 비밀 "평문" 편집기 탭에 복사-붙여넣기 할 수 있습니다.

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."

참고: 6개 필드(모두) 가 채워져 있는지 확인하세요 (account, host, password, port, user, warehouse) 값이 올바르지 않으면 Panther 람다가 Snowflake에 연결할 때 문제가 발생할 수 있습니다.

  • "암호화 키 선택"에서 드롭다운에서 panther-secret 을 선택하세요.

  • 비밀 키/값을 입력하세요.

  • 클릭 다음.

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.
  • AWS Secrets Manager가 비밀을 회전하는 빈도를 구성한 다음 클릭 다음.

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."
  • 마지막으로 개요 화면이 표시됩니다. 아래로 스크롤하여 저장 버튼을 클릭하세요.

비밀에 대한 권한 업데이트

두 개의 Panther AWS 비밀에 대해 특정 Panther 람다만 Snowflake 비밀에 접근할 수 있도록 권한을 구성해야 합니다.

Panther panther-snowflake-apipanther_readonly 사용자 쿼리에 대해 panther-snowflake-admin-apipanther_admin 는 새 로그 소스가 온보드될 때 테이블을 생성하기 위해

사용할 것입니다. panther-lookup-tables-api 는 Snowflake의 조회 테이블을 관리하기 위해 해당 권한을 사용할 것입니다.

콘솔로 이동하여 위에서 생성한 각 비밀을 선택하세요. 개요 화면에서 권한 편집 버튼을 클릭합니다. 아래 정책 JSON을 복사하고 적절한 <snowflake lambda role>를 대체하세요, 다음 중 하나:

  • panther-snowflake-api 첫 번째 단계에서 수집한 역할

  • panther-snowflake-admin-api 첫 번째 단계에서 수집한 역할

다음으로 바꾸세요 <lookup tables lambda role> 를 첫 번째 단계에서 수집한 panther-lookup-tables-api 역할로.

값으로 <secret ARN> 업데이트 중인 비밀의 ARN을 사용하세요.

그런 다음 클릭 저장.

다음을 메모해 두세요 arn 비밀의 arn을 나중에 사용합니다.

9. Snowflake가 활성화된 상태로 Panther 배포

SaaS 고객 관리형 배포 사용자

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

  • SNOWFLAKE_IAM_USER 첫 번째 단계에서 수집한

  • ARN for the panther_readonly user AWS Secret

  • ARN for the panther_admin user AWS Secret

귀하의 Panther POC가 이러한 설정으로 Panther를 다시 배포하여 Snowflake를 활성화할 것입니다.

CloudPrem 사용자

자체 계정에서 Panther를 실행하는 고객(이를 CloudPrem)이라고 부릅니다 먼저 마스터 템플릿을 배포하여 Panther의 초기 설정을 수행해야 합니다. 마스터 템플릿을 배포한 후 마스터 스택 매개변수를 아래와 같이 구성하세요:

  • 업데이트: SnowflakeAPISecretARN 매개변수를 위에서 생성한 panther_readonly 사용자용으로.

  • 업데이트: SnowflakeAdminAPISecretARN 매개변수를 위에서 생성한 panther_admin 사용자용으로.

  • 업데이트: SnowflakeDestinationClusterARNs 매개변수를 <SNOWFLAKE_IAM_USER> 초기 단계에서의 값으로 설정하세요.

CloudFormation 스택을 업데이트 실행.

Snowpipe 처리 검증

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

  • panther_logs

  • panther_rule_matches

  • panther_rule_errors

  • panther_cloudsecurity

  • panther_views

  • pather_stored_procedures

  • panther_monitor

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

간단한 쿼리를 실행하여 데이터 수집이 작동하는지 빠르게 테스트할 수 있습니다:

구성은 데이터 탐색기에서 테스트할 수 있습니다. (Snowflake 콘솔에서 확인하여 데이터가 있는 테이블에 대해 같은 쿼리를 실행하세요).

비밀 회전

비밀을 회전하려면 새 사용자를 생성하고 비밀을 편집하여 이전 사용자와 비밀번호를 새 사용자와 비밀번호로 교체하세요. 이전 사용자를 삭제/비활성화하기 전에 한 시간 기다리세요.

Last updated

Was this helpful?