Snowflake AI 기능 옵트아웃¶
대부분의 Snowflake AI 기능은 초기에는 Snowflake 계정의 모든 사용자에게 제공됩니다. 대부분의 기능에 대한 액세스 권한은 SNOWFLAKE.CORTEX_USER 데이터베이스 역할에 의해 제어되며, 이 역할은 처음에 PUBLIC 역할에 부여됩니다. 모든 사용자에게 PUBLIC 역할이 부여되고, 기본적으로 Cortex 기능에 대한 액세스 권한이 부여됩니다(Snowflake Copilot에 대한 액세스 권한은 SNOWFLAKE.COPILOT_USER 데이터베이스 역할에 의해 제어되고 기본적으로 PUBLIC 역할에도 부여됨). Cortex Analyst 및 Document AI의 두 기능은 기본적으로 사용자가 액세스할 수 없는 옵트인 기능입니다.
기본 기능 옵트아웃¶
To revoke access to all Snowflake AI features that are available to users by default, revoke the SNOWFLAKE.CORTEX_USER and SNOWFLAKE.COPILOT_USER database roles from the PUBLIC role. You can grant these roles to specific roles that you want to have access to the features, then grant those roles to specific users as needed. (You cannot grant database roles directly to users, but must grant them to roles that can be assumed by users.)
Use SQL like the following to revoke access to the SNOWFLAKE.CORTEX_USER and SNOWFLAKE.COPILOT_USER roles from the PUBLIC role, then grant them to specific roles and users.
-- Revoke access to most Snowflake AI features from all users in the account
REVOKE DATABASE ROLE SNOWFLAKE.CORTEX_USER FROM ROLE PUBLIC;
REVOKE DATABASE ROLE SNOWFLAKE.COPILOT_USER FROM ROLE PUBLIC;
-- Optionally, grant access to specific roles
GRANT DATABASE ROLE SNOWFLAKE.CORTEX_USER TO ROLE my_cortex_role;
GRANT DATABASE ROLE SNOWFLAKE.COPILOT_USER TO ROLE my_copilot_role;
-- Then grant those roles to specific users
GRANT ROLE my_cortex_role TO USER alice;
GRANT ROLE my_copilot_role TO USER bob;
참고
If you granted SNOWFLAKE.CORTEX_USER and SNOWFLAKE.COPILOT_USER to other roles, revoke them from those roles to completely block users from using Snowflake AI features.
옵트인 기능에 대한 액세스 권한 취소하기¶
일부 Snowflake AI 기능은 옵트인 기능입니다. 이러한 기능에 대한 액세스 권한은 기본적으로 비활성화되어 있으므로, 해당 기능에 대한 액세스 권한을 부여하지 않으면 사용자가 사용할 수 없습니다. 해당 액세스 권한을 부여한 경우에도 다음과 같은 개별 기능에 대한 액세스 권한을 취소할 수 있습니다.
Cortex Analyst: ENABLE_CORTEX_ANALYST 계정 매개 변수를 FALSE로 설정합니다.
ALTER ACCOUNT SET ENABLE_CORTEX_ANALYST = FALSE;
Cortex 임베딩 함수 (AI_EMBED, EMBED_TEXT_768 및 EMBED_TEXT_1024): 사용자에게 SNOWFLAKE.CORTEX_USER 데이터베이스 역할이 없는 경우 이러한 함수를 호출하려면 SNOWFLAKE.CORTEX_EMBED_USER 데이터베이스 역할이 필요합니다. 부여한 모든 역할에서 SNOWFLAKE.CORTEX_EMBED_USER 역할을 취소합니다.
REVOKE DATABASE ROLE SNOWFLAKE.CORTEX_EMBED_USER FROM ROLE my_role;
Cortex Fine-tuning: CREATE MODEL 권한을 부여한 모든 역할에서 스키마에 대한 이 권한을 취소합니다.
REVOKE CREATE MODEL ON SCHEMA my_schema FROM ROLE my_role;
Document AI: SNOWFLAKE.DOCUMENT_INTELLIGENCE_CREATOR 데이터베이스 역할을 부여한 모든 역할에서 이 역할을 취소합니다.
REVOKE DATABASE ROLE SNOWFLAKE.DOCUMENT_INTELLIGENCE_CREATOR FROM ROLE my_role;
참고
Document AI에 대한 액세스 권한이 취소된 후에도 기존 파이프라인은 계속 작동합니다. 파이프라인을 중지하려면 파이프라인과 연결된 작업을 일시 중단하거나 삭제하세요.
Provisioned Throughput: CREATE PROVISIONED THROUGHPUT 권한을 부여한 모든 역할에서 스키마에 대한 이 권한을 취소합니다.
REVOKE CREATE PROVISIONED THROUGHPUT ON SCHEMA my_schema FROM ROLE my_role;
기능별 액세스 제어¶
다음 테이블에는 개별 Snowflake AI 기능에 대한 액세스 제어에 관한 보다 상세한 정보가 포함되어 있습니다.
특징 |
옵트|~|인 |
주요 액세스 제어 방법 |
추가적인 액세스 제어 방법 |
|---|---|---|---|
SNOWFLAKE.CORTEX_USER database role |
에이전트가 쿼리하는 검색 서비스에 대한 USAGE, 검색 서비스가 사용하는 데이터베이스, 스키마, 테이블에 대한 USAGE |
||
SNOWFLAKE.CORTEX_USER database role |
|||
✔ |
ENABLE_CORTEX_ANALYST 계정 매개 변수 |
||
✔ |
미세 조정된 모델을 생성하는 스키마에 대한 CREATE MODEL |
||
SNOWFLAKE.CORTEX_USER database role |
기본 Cortex Search Service에 대한 액세스 제어에 의존합니다 |
||
✔ |
프로비저닝된 처리량 오브젝트를 생성하는 스키마에 대한 CREATE PROVISIONED THROUGHPUT 권한 |
||
SNOWFLAKE.CORTEX_USER database role |
검색 서비스에서 사용하는 검색 서비스, 데이터베이스, 스키마 및 테이블에 대한 USAGE |
||
✔ |
SNOWFLAKE.DOCUMENT_INTELLIGENCE_CREATOR 데이터베이스 역할 |
모델 및 파이프라인 생성을 위한 다양한 오브젝트 수준 권한 |
|
SNOWFLAKE.COPILOT_USER database role |
|||
SNOWFLAKE.CORTEX_USER database role |
기본 Cortex Agent 또는 검색 서비스에 대한 액세스 제어에 의존합니다 |
Opt out of specific models and AI Functions¶
대규모 언어 모델마다 사용하는 비용이 다르므로 계정 수준 허용 목록이나 역할 기반 액세스 제어, 또는 이 두 가지를 모두 사용하여 특정 LLMs에 대한 액세스를 제한할 수 있습니다. 자세한 내용은 모델 액세스 제어 섹션을 참조하세요.
ACCOUNTADMIN 및 AI 기능¶
The ACCOUNTADMIN role has complete access to all features in a Snowflake account, including Snowflake AI features. Revoking the SNOWFLAKE.CORTEX_USER and SNOWFLAKE.COPILOT_USER roles from PUBLIC does not prevent ACCOUNTADMIN from using these features. Even if an ACCOUNTADMIN’s access to AI features is revoked, a user with access to ACCOUNTADMIN can always grant access to that role (or any other role) again.
이러한 이유 등으로 인해, 신뢰할 수 있는 사용자에게만 액세스 권한을 부여하는 것이 좋습니다. 또는 더 엄격하게 Snowflake 계정 관리 이외의 다른 목적으로 사용되지 않고 로그인 자격 증명이 엄격하게 제어되는 계정의 단일 사용자에게 ACCOUNTADMIN 역할을 부여하는 것이 가장 좋습니다. 계정 설정 및 유지 관리 목적으로만 ACCOUNTADMIN을 사용하고, 범위가 더 제한된 다른 관리자 역할(즉, SECURITYADMIN, SYSADMIN 또는 USERADMIN)은 일상적인 관리 목적으로 사용하세요.
ACCOUNTADMIN이 역할 기반 액세스 제어 이외의 방법으로 통제되는 Snowflake AI 기능을 사용하지 못하게 할 수 있습니다. 예를 들어, ACCOUNTADMIN 권한이 있는 사용자는 ENABLE_CORTEX_ANALYST 계정 매개 변수가 FALSE로 설정된 경우 Cortex Analyst를 사용할 수 없습니다. 물론, 이 사용자는 항상 이 매개 변수를 TRUE로 설정할 수 있습니다.
AI 기능 사용량 모니터링¶
Snowflake AI 기능이 사용되지 않는지 확인하려면 SNOWFLAKE.ACCOUNT_USAGE 스키마에서 Cortex 관련 뷰를 사용하여 Snowflake AI 기능의 사용량을 모니터링합니다. 이러한 뷰는 다음과 같습니다.
참고
CORTEX_FUNCTIONS_QUERY_USAGE_HISTORY 및 CORTEX_FUNCTIONS_USAGE_HISTORY는 기본적으로 동일한 이벤트를 기록합니다. 둘 다 모니터링할 필요는 없습니다.
이러한 뷰에서 새 데이터에 대한 경고를 만들어 새 AI 기능이 계정에서 사용될 때 사용자에게 알립니다. 예를 들어, 다음 SQL 문은 AI 함수가 사용될 때 Slack 메시지를 보내는 경고를 만듭니다.
CREATE ALERT my_alert
IF (EXISTS (
SELECT * FROM SNOWFLAKE.ACCOUNT_USAGE.CORTEX_FUNCTIONS_QUERY_USAGE_HISTORY))
THEN
BEGIN
CALL SYSTEM$SEND_SNOWFLAKE_NOTIFICATION(
SNOWFLAKE.NOTIFICATION.TEXT_PLAIN('AI function used in account'),
'{"my_slack_integration": {}}'
);
END;
이러한 경고는 Cortex 사용량 기록 뷰에 새 데이터가 추가될 때 소량의 컴퓨팅 비용을 발생시키지만, AI 기능이 사용되지 않는 경우에는 데이터가 추가되지 않고 경고가 트리거되지 않으므로 비용이 발생하지 않습니다.
ML 기능에 대한 액세스 제어¶
Snowflake ML features are not AI features, and access to them is not controlled by the SNOWFLAKE.CORTEX_USER role.
ML 함수¶
:doc:`ML 함수</guides-overview-ml-functions>`는 예측, 변칙 검색, 분류 및 기타 데이터 분석 작업을 위해 기존 머신 러닝 기법을 사용합니다. ML 함수에 의한 모델 생성은 옵트인이며 스키마에 대한 CREATE SNOWFLAKE.ML.FORECAST와 같은 함수별 권한으로 제어됩니다. 학습된 모델에 대한 액세스는 모델 오브젝트에 대한 USAGE 권한으로 제어됩니다. 이러한 권한을 이미 부여한 경우 사용자가 ML 함수 모델를 만들거나 사용하지 못하도록 권한을 취소합니다. 이미 생성된 모든 모델에 대해 DROP을 수행할 수 있습니다.
스키마 소유자는 특정 유형의 모델에 대한 CREATE 권한이 있는지 관계없이 ML 함수 모델을 만들 수 있으므로, 스키마의 소유권과 생성을 신뢰할 수 있는 사용자로 제한합니다. 그리고 모델이 필요한 사용자에게만 각 스키마 내에서 모델을 생성할 수 있는 특정 권한을 부여합니다.
Snowflake ML¶
Snowflake ML lets you build, deploy, and manage custom machine learning models developed in Python, at Snowflake scale. Creation and use of Snowflake ML objects, including the model registry, the feature store, and models and their versions, is not controlled by the SNOWFLAKE.CORTEX_USER role.
Snowflake ML 오브젝트는 스키마 수준 오브젝트입니다. 즉, 사용자는 OWNERSHIP 또는 적절한 CREATE 권한(예: CREATE MODEL REGISTRY)이 있는 모든 스키마에서 Snowflake ML 오브젝트를 생성할 수 있습니다. 따라서 Snowflake ML에 대한 액세스 권한을 가장 효과적으로 제어하는 방법은 소유권과 스키마 생성을 신뢰할 수 있는 사용자로 제한하는 것입니다. 필요한 사용자에게만 각 스키마 내에서 Snowflake ML 오브젝트를 생성할 수 있는 특정 권한을 부여합니다.
참고
Users with the CREATE MODEL privilege in a schema can also create models using Cortex Fine-tuning. However, actually using Cortex fine-tuned models requires the SNOWFLAKE.CORTEX_USER database role.