Snowflake Native App 의 보안 요구 사항 및 모범 사례

이 항목에서는 공급자가 Snowflake Native App 을 개발할 때 따라야 하는 보안 요구 사항과 모범 사례에 대해 설명합니다. 자동화된 보안 검토 에 설명된 조건을 충족하는 모든 앱은 다음 섹션에 설명된 보안 요구 사항을 준수해야 합니다.

참고

Snowflake가 새로운 잠재적 위험을 지속적으로 모니터링함에 따라 보안 요구 사항은 변경될 수 있습니다.

애플리케이션 코드의 보안 요구 사항

애플리케이션 패키지에 포함된 앱 코드는 다음 보안 요구 사항을 준수해야 합니다.

  1. 앱은 Snowflake 공급자 라이브러리를 제외한 애플리케이션 패키지 외부에서 코드를 로드하거나 실행해서는 안 됩니다. 모든 라이브러리 종속성 및 설정 코드를 포함한 모든 앱 코드는 애플리케이션 패키지에 정의된 앱 버전에 포함되어야 합니다.

  2. 모든 앱 코드는 난독화되지 않아야 하며, 이는 사람이 읽을 수 있는 코드여야 한다는 의미입니다. 이 요구 사항에는 축소된 JavaScript 코드가 포함됩니다.

    참고

    앱에서 축소된 JavaScript 코드를 사용해야 하는 경우, 축소되지 않은 코드를 복구하는 데 사용할 수 있는 해당 소스 맵 파일을 포함해야 합니다.

  3. 가능하다면 공통 취약점 및 노출 수준(CVE)이 심각하거나 높은 모든 종속성 또는 라이브러리를 보안 버전으로 업데이트해야 합니다.

앱 기능의 보안 요구 사항

앱의 기능에는 다음 보안 요구 사항이 적용됩니다.

  1. 모든 앱은 목록의 일부로 고객에게 다음 정보를 제공해야 합니다.

    1. 모든 앱 기능 및 특징.

    2. 앱이 연결되는 모든 인터넷 엔드포인트 및 URLs.

    3. 앱의 모든 외부 함수.

    4. 앱에서 기록, 수집 또는 저장하는 모든 컨슈머 데이터.

      1. 앱에서는 필수적이지 않은 쿠키를 모두 금지해야 합니다.

      2. 앱은 모든 필수 쿠키를 컨슈머에게 전달해야 합니다.

  2. 앱은 앱 목록에 광고된 대로 작동해야 합니다.

  3. 모든 앱 설치 및 설정 지침은 앱 목록에 포함되어야 합니다.

  4. 앱은 일반 텍스트로 된 고객 시크릿을 저장하거나 요구해서는 안 됩니다.

  5. 앱과 인터넷 간의 모든 통신은 유효한 TLS 인증서를 사용해 HTTPS 연결을 통해 수행되어야 합니다.

  6. 앱에는 Snowflake, 고객 또는 서드 파티에 유해할 수 있는 기능이 없어야 합니다. 피해에는 다음이 포함되지만 이에 국한되는 것은 아닙니다.

    1. 데이터 유출 및/또는 손실

    2. 앱 기능의 일부로(예: 데이터 액세스 정책을 위한 데이터 마스킹) 명시적으로 디자인한 것이 아닌 한 데이터에 대한 컨슈머 액세스 제한.

    3. 과도한 리소스 소비.

    4. 임의의 코드 삽입/실행.

  7. 웹 기반 사용자 인터페이스 및 APIs를 포함한 앱에 대한 모든 연결은 먼저 Snowflake에서 제공하는 인증 메서드를 사용하여 인증해야 합니다. 모든 앱별 인증은 Snowflake 인증이 성공한 후에 사용자에게 제시되어야 합니다.

  8. 앱은 먼저 Snowflake를 통한 성공적인 인증 없이 앱에 대한 연결을 허용하는 공개 엔드포인트를 생성해서는 안 됩니다.

앱 권한의 보안 요구 사항

다음 보안 요구 사항이 앱에서 설정한 권한에 적용됩니다.

  1. 모든 앱은 매니페스트 파일에 다음 정보를 제공해야 합니다.

    1. 모든 오브젝트에 대해 앱에서 필요한 모든 권한.

    2. 모든 API 통합.

  2. 앱은 앱이 작동하는 데 필요한 최소한의 권한 세트만 요청해야 합니다.

애플리케이션 패키지 개발 및 게시를 위한 모범 사례

Snowflake Native App 의 개발 및 게시자 프로세스를 간소화하려면 두 개의 애플리케이션 패키지를 별도로 생성하는 것이 좋습니다

  • 개발 애플리케이션 패키지

    개발 애플리케이션 패키지는 빠른 반복 및 테스트 목적으로 고안되었습니다. DISTRIBUTION 속성이 INTERNAL 로 설정되어 있어야 합니다. 이렇게 하면 애플리케이션 패키지가 내부에 유지되고 외부 컨슈머나 Snowflake 스캐닝 및 승인을 위해 배포되지 않습니다.

    이 패키지를 프로덕션 패키지와 별도로 유지함으로써 개발자는 각 반복 작업에 대한 보안 검토 프로세스를 시작하지 않고도 신속하게 변경 사항을 적용하고 새로운 기능을 테스트할 수 있습니다.

  • 프로덕션 애플리케이션 패키지

    프로덕션 애플리케이션 패키지는 애플리케이션 패키지를 게시하고 스캔 및 승인을 위해 Snowflake와 외부 컨슈머에게 배포하기 위한 것입니다. 프로덕션 애플리케이션 패키지는 DISTRIBUTION 속성이 EXTERNAL 로 설정되어 있어야 합니다.

    공급자의 보안 검토를 통과한 버전만 이 패키지에 추가해야 하며, 앱이 컨슈머에게 제공되기 전에 필요한 보안 표준을 충족하는지 확인해야 합니다.

개발자는 개발과 프로덕션 패키지를 분리하는 모범 사례를 따르면 효율적인 개발 수명 주기를 유지하면서 안전하고 승인된 버전의 앱만 게시하고 외부 컨슈머에게 배포할 수 있습니다.