기능 정책을 사용하여 앱이 만들 수 있는 오브젝트 제한하기¶
이 항목에서는 기능 정책을 사용하여 Snowflake Native App 에서 만들 수 있는 오브젝트를 제한하는 방법에 대해 설명합니다.
기능 정책 정보¶
앱이 자동 권한 부여를 사용하도록 구성된 경우 앱은 다음 권한을 사용하도록 요청할 수 있습니다.
EXECUTE TASK
EXECUTE MANAGED TASK
CREATE WAREHOUSE
CREATE COMPUTE POOL
BIND SERVICE ENDPOINT
CREATE DATABASE
CREATE EXTERNAL ACCESS INTEGRATION
컨슈머는 앱이 설치된 후에는 이러한 권한을 취소할 수 없습니다. 그러나 기능 정책을 통해 컨슈머는 앱이 생성할 수 있는 오브젝트를 제한할 수 있습니다.
예를 들어 앱이 웨어하우스 또는 컴퓨팅 풀을 생성하지 못하게 하려는 경우, 컨슈머 계정 관리자는 특정 앱 또는 모든 앱이 웨어하우스 또는 컴퓨팅 풀을 생성하지 못하도록 하는 기능 정책을 만들 수 있습니다.
기능 정책을 통해 컨슈머는 앱이 다음 오브젝트를 만들거나 사용하지 못하도록 제한할 수 있습니다.
COMPUTE POOLS
DATABASES
TASKS
WAREHOUSES
참고
외부 액세스 통합은 기능 정책을 사용하여 차단할 수 없습니다. 대신, 컨슈머는 앱 사양을 사용하여 앱의 엔드포인트를 승인하도록 선택할 수 있습니다.
제한 사항¶
기능 정책은 데이터베이스, 스키마 또는 복제를 사용하는 데이터베이스 내의 모든 오브젝트에는 지원되지 않습니다. 복제 그룹의 일부인 오브젝트에 대해서는 기능 정책을 건너뜁니다.
워크플로¶
기능 정책을 사용하여 앱이 생성할 수 있는 오브젝트를 제한하는 일반적인 워크플로입니다.
앱 목록을 확인하여 앱이 요청하는 권한을 확인합니다.
제한하려는 오브젝트가 있는 경우 이러한 오브젝트를 차단하는 기능 정책을 만드십시오.
자세한 내용은 새 기능 정책 만들기 섹션을 참조하십시오.
계정 또는 특정 오브젝트에 기능 정책을 적용합니다.
자세한 내용은 계정 수준에서 기능 정책 할당하기 및 앱에 기능 정책 적용하기 섹션을 참조하십시오.
기능 정책 우선 순위¶
컨슈머는 계정의 모든 애플리케이션 또는 지정된 애플리케이션에 기능 정책을 적용할 수 있습니다. 이들 중 둘 이상에 적용되는 기능 정책이 있는 경우 가장 구체적인 기능 정책이 상대적으로 더 일반적인 기능 정책보다 우선합니다. 다음은 우선 순위를 요약한 것입니다.
- 계정:
계정에 적용되는 기능 정책은 가장 일반적인 기능 정책입니다. 특정 오브젝트(예: 애플리케이션)에 적용되는 기능 정책에 의해 재정의됩니다.
- 오브젝트:
특정 오브젝트에 적용된 기능 정책이 계정에 적용된 기능 정책보다 우선합니다.
컨슈머는 이 우선순위를 사용하여 앱이 자신의 계정에서 생성할 수 있는 오브젝트를 세부적으로 조정할 수 있습니다. 예를 들어, 컨슈머는 계정의 모든 앱이 데이터베이스를 만들지 못하도록 하는 계정 수준 기능 정책을 적용할 수 있습니다. 앱이 설치 중에 데이터베이스를 만들려고 하면 설치가 실패합니다.
그러나 컨슈머는 제한 없이 기능 정책을 생성하고 특정 앱에 기능 정책을 적용할 수도 있습니다. 해당 앱은 데이터베이스를 만들 수 있습니다.
자세한 내용은 새 기능 정책 만들기 섹션을 참조하십시오.
기능 정책을 사용하는 데 필요한 권한¶
다음 표에서는 기능 정책을 만들고 사용하는 데 필요한 권한에 대해 설명합니다.
권한 |
오브젝트 |
참고 |
---|---|---|
CREATE FEATURE POLICY |
SCHEMA |
기능 정책을 만드는 데 필요합니다. 이 권한은 기능 정책이 포함된 스키마에 부여되어야 합니다. |
APPLY FEATURE POLICY |
ACCOUNT |
|
APPLY 또는 OWNERSHIP |
FEATURE POLICY |
기능 정책으로 작업하기¶
컨슈머는 Snowsight 또는 SQL 에서 기능 정책의 수명 주기를 관리할 수 있습니다.
새 기능 정책 만들기¶
컨슈머는 기능 정책을 생성하여 앱이 특정 유형의 오브젝트를 생성하지 못하도록 금지할 수 있습니다. 다음 예에서는 앱이 데이터베이스를 만들지 못하도록 하는 기능 정책을 만드는 방법을 보여줍니다.
CREATE DATABASE feature_policy_db;
CREATE SCHEMA sch;
CREATE FEATURE POLICY block_create_db_policy
BLOCKED_OBJECT_TYPES_FOR_CREATION = (DATABASE);
참고
기능 정책은 스키마로 만들어야 합니다.
컨슈머는 다음 예시와 같이 오브젝트 생성을 제한하지 않는 기능 정책을 만들 수도 있습니다.
CREATE FEATURE POLICY block_nothing_policy
BLOCKED_OBJECT_TYPES_FOR_CREATION = ();
계정 수준에서 기능 정책 할당하기¶
컨슈머는 다음 예시와 같이 ALTER ACCOUNT 명령을 사용하여 계정 수준에서 기능 정책을 적용할 수 있습니다.
ALTER ACCOUNT
SET FEATURE POLICY feature_policy_db.sch.block_create_db_policy
FOR ALL APPLICATIONS;
이 명령은 계정에 설치된 모든 앱에 대해 block_create_db_policy
정책을 적용합니다. 이 정책을 적용한 후에는 앱에서 더 이상 데이터베이스를 만들 수 없습니다.
앱에 기능 정책 적용하기¶
앱을 수동으로 만들 때 기능 정책을 적용하려면 다음 예시와 같이 CREATE APPLICATION 명령의 WITH FEATURE POLICY 절을 사용합니다.
CREATE APPLICATION hello_snowflake_app
WITH FEATURE POLICY = feature_policy_db.block_create_db_policy;
앱에 기능 정책을 적용하려면 다음 예시와 같이 ALTER APPLICATION 명령을 사용합니다.
ALTER APPLICATION hello_snowflake_app
SET FEATURE POLICY feature_policy_db.block_create_db_policy;
기능 정책 적용 취소하기¶
계정 수준에서 기능 정책을 적용 해제하려면 다음 예와 같이 ALTER ACCOUNT 명령을 사용합니다.
ALTER ACCOUNT UNSET FEATURE POLICY FOR ALL APPLICATIONS;
특정 앱에 대한 기능 정책을 적용 해제하려면 다음 예시와 같이 ALTER APPLICATION 명령을 사용합니다.
ALTER APPLICATION FEATURE_POLICY_TEST_APP UNSET FEATURE POLICY;
기능 정책 삭제하기¶
기능 정책을 삭제하려면 다음 예시와 같이 DROP FEATURE POLICY 명령을 사용합니다.
DROP FEATURE POLICY block_create_db_policy;
기능 정책에 대한 정보 보기¶
액세스 권한이 있는 계정의 기능 정책을 보려면 SHOW FEATURE POLICIES 명령을 사용합니다.
SHOW FEATURE POLICIES ON ACCOUNT;
앱에 적용된 기능 정책을 보려면 다음 명령을 사용합니다.
SHOW FEATURE POLICIES ON APPLICATION hello_snowflake_app;
특정 기능 정책에 대한 정보를 보려면 다음 예시와 같이 DESCRIBE FEATURE POLICY 를 사용하십시오.
DESCRIBE FEATURE POLICY feature_policy_db.block_create_db_policy;