Snowflake sessions and session policies¶
이 항목에서는 Snowflake 세션 및 세션 정책을 설명하고 계정 또는 사용자 수준에서 세션 정책을 구성하는 지침을 제공합니다.
Snowflake sessions¶
A session begins when a user connects to Snowflake and authenticates successfully using a Snowflake programmatic client or Snowsight. A session is independent of an identity provider (IdP) session. If the Snowflake session expires but the IdP session remains active, a user can log in to Snowflake without entering their login credentials again (i.e. silent authentication).
세션은 사용자 활동이 계속되면 무기한 유지됩니다. 세션에서 유휴 세션 시간 제한 이라는 비활동 기간 후에는 사용자가 Snowflake에 다시 인증해야 합니다. 유휴 세션 시간 제한의 최대값은 4시간이며, 세션 정책이 유휴 세션 시간 제한 기간을 수정할 수 있습니다. 유휴 세션 시간 제한은 다음에 적용됩니다.
지원되는 커넥터 및 드라이버.
지원되는 커넥터 또는 드라이버를 사용하여 Snowflake에 연결하는 서드 파티 클라이언트.
Snowflake에서는 가능하면 기존 세션을 재사용하고 더 이상 세션이 필요하지 않을 때 Snowflake에 대한 연결을 종료할 것을 권장합니다.
Snowsight session expiration and logout behavior¶
A Snowsight session remains active as long as the user is interacting with the application and has not exceeded the configured idle session timeout.
The session idle timeout is controlled by your organization’s session policy (the default is 4 hours). If there is no activity for longer than this period, the session will expire and you will be logged out automatically.
In addition to idle timeout, session persistence is also affected by authentication cookies:
In most cases, closing and reopening your browser will end your Snowsight session, regardless of your idle time.
If your authentication cookie expires (typically after 24 hours), you will be required to log in again, even if you have not been idle for longer than the session timeout.
If your network connection is lost or you attempt to access Snowsight from a disallowed network, your session may be closed and you will be logged out.
When a session is closed for any reason, any running queries or jobs associated with that session will be terminated after a short delay (usually within a few minutes).
참고
Session expiration can occur due to idle timeout, cookie expiration, browser restarts, or network policy violations. Closing your browser or being inactive for an extended period may require you to log in again, even if you have not reached the configured idle timeout.
Monitor session usage¶
Snowsight 또는 SQL 뷰를 사용하여 활성 세션 및 세션 사용량을 모니터링할 수 있습니다. 자신의 세션을 보거나 SESSIONS 뷰 액세스 권한이 있는 역할을 사용하여 계정의 세션을 볼 수 있습니다. ACCOUNT_USAGE 스키마 SNOWFLAKE 데이터베이스 역할 섹션을 참조하십시오.
- SQL:
공유 SNOWFLAKE 데이터베이스의 ACCOUNT USAGE 스키마에서 SESSIONS 뷰를 쿼리하여 세션 사용량을 모니터링합니다.
- Snowsight:
탐색 메뉴에서 Governance & security » Network policies`를 선택한 후 :ui:`Sessions 탭을 선택합니다. 세션 ID, 사용자 이름, 시작 시간, 세션에 사용 중인 클라이언트 드라이버, 클라이언트 네트워크 주소, 인증 방법을 검토할 수 있습니다. 시작 시간 위로 마우스를 가져가면 세션이 시작된 정확한 날짜와 시간을 해당 현지 타임존으로 확인할 수 있습니다.
Session policies¶
세션 정책은 유휴 세션 시간 제한 기간을 분 단위로 정의하고 기본 유휴 시간 제한 값을 재정의할 수 있는 옵션을 제공합니다. Snowflake에 대한 인증에 성공할 때 시간 초과 기간이 시작됩니다. 세션 정책에 대해 구성 가능한 최소 유휴 시간 제한 값은 5 분입니다.
세션 정책이 설정되어 있지 않으면 Snowflake는 기본값인 240 분(4시간)을 사용합니다.
세션이 만료될 때 사용자는 Snowflake에 다시 인증해야 합니다. 하지만 Snowflake는 사용자 지정 로그아웃 엔드포인트 에 의해 정의된 설정을 적용하지 않습니다.
규정 준수 요구 사항을 충족시키기 위해 구성 가능한 유휴 시간 제한 기간으로 계정 또는 사용자에 대한 세션 정책을 설정할 수 있습니다. 계정 및 사용자 수준 세션 정책 모두와 연결된 사용자의 경우 사용자 수준 세션 정책이 우선 적용됩니다. 계정 또는 사용자에 세션 정책이 설정된 후 Snowflake가 세션 정책을 적용합니다.
세션 정책 동작을 관리하는 다음 두 가지 속성이 있습니다.
SESSION_IDLE_TIMEOUT_MINSfor programmatic and Snowflake clients.SESSION_UI_IDLE_TIMEOUT_MINSfor Snowsight.
자세한 내용은 세션 정책 관리하기 섹션을 참조하십시오.
세션 정책의 보조 역할¶
사용자가 Snowflake에 연결하고 세션이 시작되면 사용자는 USE SECONDARY ROLES 명령으로 보조 역할 을 활성화할 수 있습니다. 그러나 보안 관리자는 개별 사용자, 사용자 그룹 또는 전체 계정에 사용할 수 있는 보조 역할을 관리하고 싶을 수 있습니다. 보조 역할을 관리하면 세션이 진행되는 동안 사용자가 사용할 수 있는 권한의 범위를 정하는 데 도움이 됩니다.
이러한 관리 요구 사항을 충족하기 위해 세션 정책에서 ALLOWED_SECONDARY_ROLES 속성을 설정하고 계정 또는 계정의 사용자에 대한 세션 정책을 설정할 수 있습니다. 이 속성은 세션에서 활성화할 수 있는 보조 역할을 제어합니다. 이 속성을 빈 목록 ALLOWED_SECONDARY_ROLES=() 로 설정하면 세션에서 보조 역할이 비활성화됩니다.
예는 세션 정책에서 보조 역할 지정 을 참조하십시오.
참고
세션 정책에서 ALLOWED_SECONDARY_ROLES 속성을 설정하면 기존 세션을 포함하여 보조 역할의 적용이 즉시 시작됩니다.
보조 역할을 제한하기 위해 세션 정책을 업데이트하기 전에 워크로드 일정과 각 워크로드에 대한 액세스 제어를 고려하여 불필요한 워크로드 중단을 방지하십시오.
고려 사항¶
클라이언트가 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 계정에 세션 정책을 적용하도록 허용하십시오.