For the complete documentation index, see llms.txt. This page is also available as Markdown.

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

개요

이 구성에서는 Panther가 접근 권한이 없으며, Panther를 대신해 명령을 실행하려면 Database Administrator가 필요합니다.

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

이상적으로는 Panther 배포와 Snowflake 인스턴스가 동일한 AWS 리전에 있어야 합니다. Panther와 Snowflake를 같은 리전에 두면 쿼리와 데이터 이동의 지연 시간(리전 간 통신 대비)을 줄일 수 있습니다.

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

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

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

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

자체 Snowflake 인스턴스를 관리하는 경우, Panther가 수집한 데이터로 테이블과 뷰를 만들 수 있습니다. 이러한 사용자 정의 객체를 Panther 데이터베이스 안에 두지 마십시오. 예상치 못한 테이블과 뷰는 오류를 유발합니다. 대신 Panther가 아닌 데이터베이스에 만들고 Panther와 공유하십시오.

레거시 고객 관리 Snowflake 통합을 구성하는 방법

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

  1. Panther Console에 로그인합니다.

  2. 클릭 설정 왼쪽 탐색 막대 하단에서.

  3. 다음으로 이동합니다: Data Lake > Data Lake 설정.

여기에서 다음을 찾을 수 있습니다:

  • Snowflake 읽기 전용 Lambda 역할 ARN

  • Snowflake 관리자 Lambda 역할 ARN

  • 조회 테이블 Lambda 역할 ARN

이 ARN들을 잘 보관해 두십시오. 나중에 사용합니다.

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

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

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에서 읽기 전용 역할과 관리 역할을 생성합니다

참고: 다음을 반드시 업데이트하십시오 <your warehouse> 아래 SQL 블록의 첫 줄에서 Panther가 사용하길 원하는 Snowflake warehouse 이름으로 변경하십시오.

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

Snowflake SQL 셸에서 실행합니다:

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

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

6. AWS Secret 생성을 더 쉽게 하기 위한 저장 프로시저를 생성합니다(선택 사항)

복사하여 AWS Secret Manager에 붙여넣을 수 있는 JSON 문서를 생성하는 이 저장 프로시저를 정의합니다(입력 시간을 절약). Snowflake SQL 셸에서 실행합니다:

7. Panther Snowflake Secrets를 위한 AWS 계정의 KMS 키를 생성합니다

이 키는 8단계의 일부로 AWS 계정에 저장할 Snowflake secret을 암호화하는 데 사용됩니다.

  1. AWS 계정에 로그인합니다

  2. (선택 사항) Snowflake 계정과 동일한 리전으로 이동합니다

  3. KMS 서비스로 이동합니다

  4. 다음을 클릭합니다 키 생성

  5. 선택합니다 대칭 유형으로 선택하고 다음

  6. 별칭을 다음으로 설정합니다 panther-secret. 클릭합니다 다음. 다음 페이지에서 클릭합니다 다음 (기본값 유지)

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

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

8. 읽기 전용 사용자 AWS Secret과 관리 사용자 AWS Secret을 생성합니다

다음을 사용합니다 AWS Secrets Manager Snowflake 사용자 비밀번호를 저장합니다. 이는 Panther 계정의 단일 lambda 함수에서만 접근을 허용하도록 구성됩니다.

아래 절차를 각각 한 번씩 반복합니다. panther_readonly 사용자와, 그리고 한 번은 panther_admin 사용자에 대해.

  • 콘솔을 통해 AWS Secrets Manager에 접근한 뒤 다음을 선택합니다 새 Secret 저장 페이지의 버튼.

  • 다음 제목의 페이지가 표시됩니다 새 secret 저장. 다음을 선택합니다 기타 유형의 secret 유형 목록에서 다음 키/값 쌍을 지정합니다:

필드
설명

account

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

user

앞서 생성한 Snowflake 사용자이며, 다음 중 하나입니다 panther_readonly 또는 panther_admin

password

앞서 생성한 Snowflake 사용자 비밀번호

host

이는 일반적으로 <something>.snowflakecomputing.com 클러스터에 로그인할 때 사용한 URL에서 가져옵니다. 다음을 제거하십시오 https:// 및 뒤에 붙은 모든 / 호스트 이름에서.

port

사용하십시오 443 다르게 구성하지 않은 경우

warehouse

Snowflake 활성 warehouse의 이름

위 항목을 직접 입력하거나 Snowflake SQL 셸에서 다음 명령을 실행하여 지정된 4개 매개변수의 적절한 값을 입력할 수 있습니다(accountport 는 자동으로 채워져야 합니다). 다음을 한 번 수행하십시오. panther_readonly 사용자와, 그리고 한 번은 panther_admin:

그런 다음 결과를 2개의 secret 각각의 "plaintext" 편집기 탭에 복사하여 붙여넣을 수 있습니다.

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 lambda가 snowflake에 연결하는 데 문제가 발생할 수 있습니다.

  • "암호화 키 선택"에서 다음을 선택합니다 panther-secret 드롭다운에서.

  • 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.
  • secret의 이름과 설명을 입력하라는 화면이 표시됩니다. 이를 입력하고 클릭합니다 다음.

On the "Store a new secret" page in AWS, the secret name and description fields are filled out.
  • AWS Secrets Manager가 secret을 얼마나 자주 회전할지 구성한 뒤 클릭합니다 다음.

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

Secret에 대한 권한 업데이트

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

Panther의 panther-snowflake-api 는 다음을 사용합니다 panther_readonly 사용자를 사용자 쿼리에 사용하고, panther-snowflake-admin-api 는 다음을 사용합니다 panther_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 panther_readonly 사용자 AWS 시크릿

  • 다음에 대한 ARN panther_admin 사용자 AWS 시크릿

Panther POC가 Snowflake를 활성화하기 위해 이러한 설정으로 Panther를 다시 배포합니다.

CloudPrem 사용자

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

  • 업데이트: SnowflakeAPISecretARN 파라미터를 위에서 생성한 다음용 시크릿의 ARN으로 설정합니다 panther_readonly 사용자에 대해.

  • 업데이트: SnowflakeAdminAPISecretARN 파라미터를 위에서 생성한 다음용 시크릿의 ARN으로 설정합니다 panther_admin 사용자에 대해.

  • 업데이트: SnowflakeDestinationClusterARNs 파라미터를 다음 값으로 설정합니다 <SNOWFLAKE_IAM_USER> 위의 초기 단계에서 가져온 값입니다.

CloudFormation 스택을 업데이트합니다.

Snowpipe 처리 검증

Panther가 Snowflake용으로 구성되면 데이터베이스가 7개 있어야 합니다:

  • panther_logs

  • panther_룰_matches

  • panther_룰_errors

  • panther_cloudsecurity

  • panther_views

  • pather_stored_procedures

  • panther_monitor

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

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

구성은 다음에서 테스트할 수 있습니다 데이터 탐색기. 데이터가 있는 것으로 알고 있는 테이블에서 동일한 쿼리를 몇 개 실행합니다(Snowflake 콘솔에서 확인).

시크릿 교체

시크릿을 교체하려면 새 사용자를 생성하고, 기존 사용자와 비밀번호를 새 사용자와 비밀번호로 바꾸도록 시크릿을 편집합니다. Snowflake에서 기존 사용자를 삭제하거나 비활성화하기 전에 한 시간 동안 기다립니다.

마지막 업데이트

도움이 되었나요?