Snowflake 세션 및 세션 정책

이 항목에서는 Snowflake 세션 및 세션 정책을 설명하고 계정 또는 사용자 수준에서 세션 정책을 구성하는 지침을 제공합니다.

Snowflake 세션

세션은 사용자가 Snowflake에 연결하고 Snowflake 프로그래밍 방식 클라이언트, Snowsight 또는 Classic Console 를 사용하여 성공적으로 인증할 때 시작됩니다. 세션은 ID 공급자(즉, IdP) 세션과는 무관합니다. Snowflake 세션이 만료되었지만 IdP 세션은 활성 상태로 남아 있는 경우, 사용자는 로그인 자격 증명을 다시 입력하지 않고도 Snowflake에 로그인할 수 있습니다(즉, 자동 인증).

세션은 사용자 활동이 계속되면 무기한 유지됩니다. 세션에서 유휴 세션 시간 제한 이라는 비활동 기간 후에는 사용자가 Snowflake에 다시 인증해야 합니다. 유휴 세션 시간 제한의 최대값은 4시간이며, 세션 정책이 유휴 세션 시간 제한 기간을 수정할 수 있습니다. 유휴 세션 시간 제한은 다음에 적용됩니다.

Snowflake에서는 가능하면 기존 세션을 재사용하고 더 이상 세션이 필요하지 않을 때 Snowflake에 대한 연결을 종료할 것을 권장합니다.

Snowsight 세션

Snowflake는 Snowsight 의 각 워크시트에 대해 새 세션을 만듭니다. 워크시트 세션은 워크시트를 생성하는 사용자에게 적용되는 세션 정책을 적용합니다.

조심

ABORT_DETACHED_QUERY 매개 변수를 true로 설정했는데도 세션이 종료되고 사용자가 로그아웃해도 활성 쿼리가 취소되지 않습니다.

Classic Console 세션

Worksheets 워크시트 탭 탭에서, Snowflake는 새 워크시트가 생성될 때마다 새 세션을 만듭니다. 각 워크시트는 최대 4시간의 유휴 동작으로 제한되며, 각 워크시트의 유휴 시간 초과는 따로 추적됩니다.

워크시트가 닫힐 때 워크시트에 대한 사용자 세션이 종료됩니다.

열린 워크시트에 대해 4시간의 제한이 만료된 후, Snowflake는 웹 인터페이스에서 사용자를 로그아웃합니다.

참고

쿼리 결과 세트 스크롤 또는 데이터 세트 정렬과 같은 수동 동작으로는 유휴 세션 시간 초과 추적기가 재설정되지 않습니다.

세션이 너무 일찍 닫히고 Classic Console 에서 로그아웃되는 일을 방지하려면 필요한 SQL 문을 전부 로컬 파일에 저장하고 사용하지 않는 상태로 열려 있는 워크시트를 전부 닫으십시오.

세션 사용 모니터링

Snowsight 또는 SQL 뷰를 사용하여 활성 세션 및 세션 사용량을 모니터링할 수 있습니다. 자신의 세션을 보거나 SESSIONS 뷰 액세스 권한이 있는 역할을 사용하여 계정의 세션을 볼 수 있습니다. ACCOUNT_USAGE 스키마 SNOWFLAKE 데이터베이스 역할 섹션을 참조하십시오.

SQL:

공유 SNOWFLAKE 데이터베이스의 ACCOUNT USAGE 스키마에서 SESSIONS 뷰를 쿼리하여 세션 사용량을 모니터링합니다.

Snowsight:

Admin » Security 를 선택한 다음 Sessions 를 선택합니다. 세션 ID, 사용자 이름, 시작 시간, 세션에 사용 중인 클라이언트 드라이버, 클라이언트 네트워크 주소, 인증 방법을 확인할 수 있습니다. 시작 시간 위로 마우스를 가져가면 세션이 시작된 정확한 날짜와 시간을 해당 현지 타임존으로 확인할 수 있습니다.

세션 정책

세션 정책은 유휴 세션 시간 제한 기간을 분 단위로 정의하고 기본 유휴 시간 제한 값을 재정의할 수 있는 옵션을 제공합니다. Snowflake에 대한 인증에 성공할 때 시간 초과 기간이 시작됩니다. 세션 정책에 대해 구성 가능한 최소 유휴 시간 제한 값은 5 분입니다.

세션 정책이 설정되어 있지 않으면 Snowflake는 기본값인 240 분(4시간)을 사용합니다.

세션이 만료될 때 사용자는 Snowflake에 다시 인증해야 합니다. 하지만 Snowflake는 사용자 지정 로그아웃 엔드포인트 에 의해 정의된 설정을 적용하지 않습니다.

규정 준수 요구 사항을 충족시키기 위해 구성 가능한 유휴 시간 제한 기간으로 계정 또는 사용자에 대한 세션 정책을 설정할 수 있습니다. 계정 및 사용자 수준 세션 정책 모두와 연결된 사용자의 경우 사용자 수준 세션 정책이 우선 적용됩니다. 계정 또는 사용자에 세션 정책이 설정된 후 Snowflake가 세션 정책을 적용합니다.

세션 정책 동작을 관리하는 ​​다음 두 가지 속성이 있습니다.

  • 프로그램 방식 및 Snowflake 클라이언트에 대한 SESSION_IDLE_TIMEOUT_MINS.

  • Classic Console 및 Snowsight 에 대한 SESSION_UI_IDLE_TIMEOUT_MINS

자세한 내용은 세션 정책 관리하기 섹션을 참조하십시오.

세션 정책의 보조 역할

사용자가 Snowflake에 연결하고 세션이 시작되면 사용자는 USE SECONDARY ROLES 명령으로 보조 역할 을 활성화할 수 있습니다. 그러나 보안 관리자는 개별 사용자, 사용자 그룹 및 전체 계정에 사용할 수 있는 보조 역할을 관리하고 싶을 수 있습니다. 보조 역할을 관리하면 세션이 진행되는 동안 사용자가 사용할 수 있는 권한의 범위를 정하는 데 도움이 됩니다.

이러한 관리 요구 사항을 충족하기 위해 세션 정책에서 ALLOWED_SECONDARY_ROLES 속성을 설정하고 계정 또는 계정의 사용자에 대한 세션 정책을 설정할 수 있습니다. 그런 다음 사용자는 USE SECONDARY ROLES 명령을 실행하고 Snowflake 세션 중에 사용할 수 있는 보조 역할을 지정할 수 있습니다.

예는 세션 정책에서 보조 역할 지정 을 참조하십시오.

참고

세션 정책에서 ALLOWED_SECONDARY_ROLES 속성을 설정하면 새 세션이 시작될 때 보조 역할이 적용되기 시작됩니다. Snowflake에 로그인하거나 Snowsight 에서 새 워크시트를 열어 새 Snowflake 세션을 시작할 수 있습니다.

보조 역할을 평가하기 위해 세션 정책을 업데이트하기 전에 작업 일정과 각 워크로드에 대한 액세스 제어를 고려하여 불필요한 워크로드 중단을 방지합니다.

고려 사항

  • 클라이언트가 CLIENT_SESSION_KEEP_ALIVE 옵션을 지원하고 옵션이 TRUE 로 설정된 경우 Snowflake에 대한 연결이 활성 상태인 한 클라이언트는 Snowflake 세션을 무기한으로 보존합니다. 그렇지 않고 이 옵션이 FALSE 로 설정되어 있으면 세션은 4시간 후에 종료됩니다. 이 옵션을 사용하면 세션이 많이 열려 리소스 수요가 증가하여 성능 저하로 이어질 수 있으므로, 가능하면 이 옵션을 사용하지 마십시오.

  • CLIENT_SESSION_KEEP_ALIVE_HEARTBEAT_FREQUENCY 매개 변수를 사용해 클라이언트가 세션에 대한 토큰 업데이트를 시도하는 간격(초)을 지정할 수 있습니다. Snowflake 오브젝트가 계속 사용됨에 따라(예: DDL 및 DML 문의 실행), 웹 인터페이스 세션의 새로 고침이 이루어질 수 있습니다. Snowflake는 30초마다 이 동작을 확인합니다.

  • 새 워크시트를 만들거나 기존 워크시트를 열면 설정된 사용자 세션이 계속 사용되지만, 유휴 세션 시간 제한이 0으로 재설정됩니다.

제한 사항

향후 권한 부여:

세션 정책에 대한 향후 권한 부여 는 지원되지 않습니다.

해결 방법으로 APPLY SESSION POLICY 권한을 사용자 지정 역할에 부여하여 해당 역할이 사용자 또는 Snowflake 계정에 세션 정책을 적용하도록 허용하십시오.