소유자 권리 및 Streamlit in Snowflake 앱 이해하기¶
이 항목의 내용:
소개¶
Streamlit in Snowflake용 모델은 저장 프로시저 에서 소유자의 권한 모델과 밀접하게 매핑됩니다. 이 모델은 서비스 계정 토큰이 필요하지 않으며 Snowflake가 제공하는 인증, 액세스 제어 및 네트워크 정책 기능과 통합됩니다.
Streamlit in Snowflake 의 소유자 권한 정보¶
Streamlit 앱은 세션 내에서 다음 규칙을 준수합니다.
호출자의 권한이 아닌 소유자의 권한으로 실행됩니다.
앱 소유자가 프로비저닝한 웨어하우스로 실행합니다.
호출자가 현재 사용 중인 데이터베이스와 스키마가 아니라, Streamlit in Snowflake 앱이 생성된 데이터베이스와 스키마를 사용합니다.
앱 생성 정보¶
Streamlit 앱을 생성하는 권한은 스키마 수준에서 부여됩니다. 스키마에 대한 OWNER 권한이 있는 사용자만 해당 스키마에서 Streamlit 앱을 생성할 수 있습니다. Streamlit 앱이 생성되면 앱을 처음에 만든 사용자의 역할로 실행됩니다.
앱 보기¶
앱 소유자는 앱 사용 권한이 있는 역할을 선택할 수 있습니다.
뷰어는 앱과 상호 작용하고 화면에 표시된 모든 내용을 볼 수 있습니다.
WITH GRANT의 활성화 여부에 관계없이 앱 소유자 역할의 모든 권한은 다른 역할과 공유 시 앱에서 사용할 수 있습니다.
소유자 권한에 대한 제한¶
앱은 소유자 권한으로 실행되므로 몇 가지 추가적인 제한 사항이 있습니다. 이러한 제한 사항은 다음 사항에 영향을 미칩니다.
저장 프로시저 내부에서 호출할 수 있는 기본 제공 함수는 Streamlit 앱에서 저장 프로시저를 호출할 때 사용할 수 없습니다.
ALTER USER 문 실행 능력.
저장 프로시저 내부에서 호출할 수 있는 SQL 문의 유형.
일부 DESCRIBE 명령.
소유자 권한과 앱 보안¶
Snowflake는 인증, 역할 기반 액세스 제어, 관리자 제어와 같은 보안 기능을 제공하지만, 앱 보안에 대한 책임은 앱 작성자와 공유됩니다. 따라서 Snowflake 내에서 Streamlit 앱을 개발하는 동안 적절한 보안 관행을 따라야 합니다.
애플리케이션 논리가 잘못된 경우 공격자가 소유자 역할에 부여된 모든 권한에 대한 모든 액세스 권한을 얻을 수 있습니다. 예를 들어 뷰어가 SQL 명령을 직접 작성할 수 있도록 허용하는 앱은 뷰어가 앱 소유자 역할도 할 수 있도록 허용하는 것이 됩니다. 즉, 뷰어가 앱을 재구성하고 앱의 다른 뷰어를 목표로 할 수 있다는 의미입니다.
건전한 보안 관행으로, Snowflake에서는 Streamlit 앱을 만들고 볼 때 역할 기반 액세스 제어와 전용 역할을 사용할 것을 권장합니다.