앱에 필요한 권한 구성¶
이 항목에서는 권한 자동 부여 기능을 사용하여 |native-app|을 설치하거나 업그레이드할 때 컨슈머에게 권한을 요청하는 방법을 설명합니다.
권한 자동 부여의 개요¶
앱은 컨슈머 계정에서 오브젝트를 만들거나, 액세스하거나, 다른 작업을 수행해야 하는 경우가 많습니다. 이를 위해서는 컨슈머가 앱에서 이러한 작업을 수행할 수 있도록 필요한 권한을 부여해야 합니다. 예를 들어, 앱이 다음 유형의 작업을 수행하려면 권한이 있어야 합니다.
웨어하우스 및 컴퓨팅 풀을 생성하고 시작합니다.
컨슈머 계정의 데이터에 액세스합니다.
외부(Snowflake 외부) 엔드포인트에 연결합니다.
권한 자동 부여를 사용하면 공급자가 앱의 매니페스트 파일에 필요한 권한을 지정할 수 있습니다. 컨슈머가 앱을 설치하거나 업그레이드하는 경우 매니페스트에 명시된 권한이 앱에 자동으로 부여됩니다.
조심
공급자는 컨슈머가 앱을 평가하고 설치할 때 확인할 수 있도록 이러한 권한과 그 잠재적 영향을 반드시 알려야 합니다. 설치 또는 업그레이드 과정에서 권한이 자동으로 부여된 후에는 해당 권한을 취소할 수 없습니다.
권한 자동 부여를 사용하여 앱에 대한 권한 요청하기¶
공급자는 권한 자동 부여를 사용하여 앱이 컨슈머 계정에서 오브젝트를 만들고 사용하는 데 필요한 권한을 지정할 수 있습니다. 권한 자동 부여 기능은 컨슈머가 앱을 설치하거나 업그레이드할 때 앱에 필요한 권한을 부여합니다.
매니페스트 파일의 버전 설정하기¶
앱에 대한 권한을 자동으로 부여하려면 다음 예제와 같이 매니페스트 파일의 시작 부분에 버전을 설정합니다.
manifest_version: 2
매니페스트 파일에 권한 지정하기¶
앱에 필요한 권한을 지정하려면 공급자가 앱의 매니페스트 파일에 해당 권한을 선언해야 합니다.
참고
권한 자동 부여를 사용하려면 공급자가 ``manifest_version: 2``를 지정해야 합니다.
다음 예제는 매니페스트 파일에 CREATE WAREHOUSE 권한을 지정하는 방법을 보여줍니다.
manifest_version: 2
...
privileges:
- CREATE WAREHOUSE
description: "Allows the app to create warehouses in the consumer account"
컨슈머가 앱을 설치하면 해당 앱에 CREATE WAREHOUSE 권한이 자동으로 부여됩니다.
조심
공급자가 매니페스트 파일의 manifest_version
속성을 ``2``에서 ``1``로 변경하면, 업그레이드 과정에서 앱의 자동 권한이 모두 취소됩니다. 컨슈머가 앱에 명시적으로 권한을 부여한 경우, 해당 권한은 변경되지 않습니다.
참고
공급자는 새 버전의 앱으로 주요 사항을 업그레이드하는 동안에만 manifest_version
속성을 변경할 수 있습니다. :code:`manifest_version`은 패치 릴리스에서 변경할 수 없습니다.
설정 스크립트에 필요한 오브젝트 만들기¶
권한 자동 부여 기능을 사용해 공급자는 컨슈머 계정에서 오브젝트를 만들고 액세스하는 데 사용되는 설정 스크립트에 SQL 명령을 추가할 수 있습니다.
다음 예제는 컨슈머 계정에 웨어하우스를 만드는 방법을 보여줍니다.
CREATE OR REPLACE WAREHOUSE application_wh;
이 명령은 컨슈머 계정에 ``application_wh``라는 웨어하우스를 만듭니다. 권한 자동 부여 기능을 통해 앱에서 직접 웨어하우스를 만들 수 있습니다. 공급자는 컨슈머가 필요한 권한을 부여했는지 확인하기 위한 추가 로직을 추가할 필요가 없습니다.
권한 자동 부여에 의해 부여된 권한¶
권한 자동 부여 기능에서 지원하는 권한은 다음과 같습니다.
EXECUTE TASK
EXECUTE MANAGED TASK
CREATE WAREHOUSE
CREATE COMPUTE POOL
BIND SERVICE ENDPOINT
CREATE DATABASE
CREATE EXTERNAL ACCESS INTEGRATION
CREATE SECURITY INTEGRATION
공급자가 이러한 권한을 매니페스트 파일에 추가하면 설치 및 업그레이드 과정에서 앱에 자동으로 부여됩니다.
CREATE EXTERNAL ACCESS INTEGRATION 권한에 대한 제한 사항¶
CREATE EXTERNAL ACCESS INTEGRATION 권한은 앱이 컨슈머 계정에서 외부 액세스 통합을 만들 수 있도록 허용합니다. 그러나 외부 엔드포인트에 연결하도록 허용하려면, 컨슈머가 앱이 외부 호스트에 연결할 수 있도록 허용하는 앱 사양도 승인해야 합니다.
자세한 내용은 앱 사양을 사용하여 컨슈머의 외부 엔드포인트 요청 섹션을 참조하십시오.
권한 자동 부여에 의해 부여되지 않는 권한¶
일부 권한은 앱에 자동으로 부여되지 않습니다. 컨슈머가 앱을 설치하거나 업그레이드할 때 이러한 권한을 수동으로 부여해야 합니다. 예를 들어, 다음과 같은 권한은 앱에 자동으로 부여되지 않습니다.
MANAGE WAREHOUSES
IMPORTED PRIVILEGES ON SNOWFLAKE DB
READ SESSION
EXECUTE ALERT
업그레이드 시 권한 자동 부여 사용하기¶
새 버전의 앱을 게시할 때 앱에 필요한 권한을 추가하거나 제거해야 할 수 있습니다. 새 버전 또는 패치의 설정 스크립트는 매니페스트에 명시된 새로운 자동 권한과 이전 버전에 필요한 권한을 모두 사용하여 실행됩니다. 새 버전에서 제거된 모든 초과 권한은 앱 업그레이드가 완료되면 취소됩니다.
업그레이드 중 안정성을 보장하기 위해 매니페스트 파일의 버전을 ``2``로 설정한 경우, 매니페스트 파일에 요청된 권한 목록을 패치 과정에서 수정할 수 없습니다. 이를 통해 공급자가 패치에 필요한 권한을 제거함으로써, 의도치 않게 앱을 손상시키는 것을 방지할 수 있습니다.