앱에 필요한 권한 구성

이 항목에서는 권한 자동 부여 기능을 사용하여 |native-app|을 설치하거나 업그레이드할 때 컨슈머에게 권한을 요청하는 방법을 설명합니다.

권한 자동 부여의 개요

앱은 컨슈머 계정에서 오브젝트를 만들거나, 액세스하거나, 다른 작업을 수행해야 하는 경우가 많습니다. 이를 위해서는 컨슈머가 앱에서 이러한 작업을 수행할 수 있도록 필요한 권한을 부여해야 합니다. 예를 들어, 앱이 다음 유형의 작업을 수행하려면 권한이 있어야 합니다.

  • 웨어하우스 및 컴퓨팅 풀을 생성하고 시작합니다.

  • 컨슈머 계정의 데이터에 액세스합니다.

  • 외부(Snowflake 외부) 엔드포인트에 연결합니다.

권한 자동 부여를 사용하면 공급자가 앱의 매니페스트 파일에 필요한 권한을 지정할 수 있습니다. 컨슈머가 앱을 설치하거나 업그레이드하는 경우 매니페스트에 명시된 권한이 앱에 자동으로 부여됩니다.

조심

공급자는 컨슈머가 앱을 평가하고 설치할 때 확인할 수 있도록 이러한 권한과 그 잠재적 영향을 반드시 알려야 합니다. 설치 또는 업그레이드 과정에서 권한이 자동으로 부여된 후에는 해당 권한을 취소할 수 없습니다.

권한 자동 부여를 사용하여 앱에 대한 권한 요청하기

공급자는 권한 자동 부여를 사용하여 앱이 컨슈머 계정에서 오브젝트를 만들고 사용하는 데 필요한 권한을 지정할 수 있습니다. 권한 자동 부여 기능은 컨슈머가 앱을 설치하거나 업그레이드할 때 앱에 필요한 권한을 부여합니다.

매니페스트 파일의 버전 설정하기

앱에 대한 권한을 자동으로 부여하려면 다음 예제와 같이 매니페스트 파일의 시작 부분에 버전을 설정합니다.

manifest_version: 2
Copy

매니페스트 파일에 권한 지정하기

앱에 필요한 권한을 지정하려면 공급자가 앱의 매니페스트 파일에 해당 권한을 선언해야 합니다.

참고

권한 자동 부여를 사용하려면 공급자가 ``manifest_version: 2``를 지정해야 합니다.

다음 예제는 매니페스트 파일에 CREATE WAREHOUSE 권한을 지정하는 방법을 보여줍니다.

manifest_version: 2
...
privileges:
  - CREATE WAREHOUSE
    description: "Allows the app to create warehouses in the consumer account"
Copy

컨슈머가 앱을 설치하면 해당 앱에 CREATE WAREHOUSE 권한이 자동으로 부여됩니다.

조심

공급자가 매니페스트 파일의 manifest_version 속성을 ``2``에서 ``1``로 변경하면, 업그레이드 과정에서 앱의 자동 권한이 모두 취소됩니다. 컨슈머가 앱에 명시적으로 권한을 부여한 경우, 해당 권한은 변경되지 않습니다.

참고

공급자는 새 버전의 앱으로 주요 사항을 업그레이드하는 동안에만 manifest_version 속성을 변경할 수 있습니다. :code:`manifest_version`은 패치 릴리스에서 변경할 수 없습니다.

설정 스크립트에 필요한 오브젝트 만들기

권한 자동 부여 기능을 사용해 공급자는 컨슈머 계정에서 오브젝트를 만들고 액세스하는 데 사용되는 설정 스크립트에 SQL 명령을 추가할 수 있습니다.

다음 예제는 컨슈머 계정에 웨어하우스를 만드는 방법을 보여줍니다.

CREATE OR REPLACE WAREHOUSE application_wh;
Copy

이 명령은 컨슈머 계정에 ``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``로 설정한 경우, 매니페스트 파일에 요청된 권한 목록을 패치 과정에서 수정할 수 없습니다. 이를 통해 공급자가 패치에 필요한 권한을 제거함으로써, 의도치 않게 앱을 손상시키는 것을 방지할 수 있습니다.