Snowflake Native App 의 보안 요구 사항 및 모범 사례¶
이 항목에서는 공급자가 Snowflake Native App 을 개발할 때 따라야 하는 보안 요구 사항과 모범 사례에 대해 설명합니다. 자동화된 보안 검토 에 설명된 조건을 충족하는 모든 앱은 다음 섹션에 설명된 보안 요구 사항을 준수해야 합니다.
참고
Snowflake가 새로운 잠재적 위험을 지속적으로 모니터링함에 따라 보안 요구 사항은 변경될 수 있습니다.
애플리케이션 코드의 보안 요구 사항¶
애플리케이션 패키지에 포함된 앱 코드는 다음 보안 요구 사항을 준수해야 합니다.
앱은 Snowflake 공급자 라이브러리를 제외한 애플리케이션 패키지 외부에서 코드를 로드하거나 실행해서는 안 됩니다. 모든 라이브러리 종속성 및 설정 코드를 포함한 모든 앱 코드는 애플리케이션 패키지에 정의된 앱 버전에 포함되어야 합니다.
모든 앱 코드는 난독화되지 않아야 하며, 이는 사람이 읽을 수 있는 코드여야 한다는 의미입니다. 이 요구 사항에는 축소된 JavaScript 코드가 포함됩니다.
참고
앱에서 축소된 JavaScript 코드를 사용해야 하는 경우, 축소되지 않은 코드를 복구하는 데 사용할 수 있는 해당 소스 맵 파일을 포함해야 합니다.
가능하다면 공통 취약점 및 노출 수준(CVE)이 심각하거나 높은 모든 종속성 또는 라이브러리를 보안 버전으로 업데이트해야 합니다.
앱 기능의 보안 요구 사항¶
앱의 기능에는 다음 보안 요구 사항이 적용됩니다.
모든 앱은 목록의 일부로 고객에게 다음 정보를 제공해야 합니다.
모든 앱 기능 및 특징.
앱이 연결되는 모든 인터넷 엔드포인트 및 URLs.
앱의 모든 외부 함수.
앱에서 기록, 수집 또는 저장하는 모든 컨슈머 데이터.
앱에서는 필수적이지 않은 쿠키를 모두 금지해야 합니다.
앱은 모든 필수 쿠키를 컨슈머에게 전달해야 합니다.
앱은 앱 목록에 광고된 대로 작동해야 합니다.
모든 앱 설치 및 설정 지침은 앱 목록에 포함되어야 합니다.
앱은 일반 텍스트로 된 고객 시크릿을 저장하거나 요구해서는 안 됩니다.
앱과 인터넷 간의 모든 통신은 유효한 TLS 인증서를 사용해 HTTPS 연결을 통해 수행되어야 합니다.
앱에는 Snowflake, 고객 또는 서드 파티에 유해할 수 있는 기능이 없어야 합니다. 피해에는 다음이 포함되지만 이에 국한되는 것은 아닙니다.
데이터 유출 및/또는 손실
앱 기능의 일부로(예: 데이터 액세스 정책을 위한 데이터 마스킹) 명시적으로 디자인한 것이 아닌 한 데이터에 대한 컨슈머 액세스 제한.
과도한 리소스 소비.
임의의 코드 삽입/실행.
웹 기반 사용자 인터페이스 및 APIs를 포함한 앱에 대한 모든 연결은 먼저 Snowflake에서 제공하는 인증 메서드를 사용하여 인증해야 합니다. 모든 앱별 인증은 Snowflake 인증이 성공한 후에 사용자에게 제시되어야 합니다.
앱은 먼저 Snowflake를 통한 성공적인 인증 없이 앱에 대한 연결을 허용하는 공개 엔드포인트를 생성해서는 안 됩니다.
앱 권한의 보안 요구 사항¶
다음 보안 요구 사항이 앱에서 설정한 권한에 적용됩니다.
모든 앱은 매니페스트 파일에 다음 정보를 제공해야 합니다.
모든 오브젝트에 대해 앱에서 필요한 모든 권한.
모든 API 통합.
앱은 앱이 작동하는 데 필요한 최소한의 권한 세트만 요청해야 합니다.
권장되는 보안 모범 사례¶
자동 보안 검사에 의해 부과되는 보안 요구 사항 외에도 Snowflake는 Snowflake Native App 앱을 개발할 때 다음과 같은 모범 사례를 권장합니다. 이러한 모범 사례를 따르면 보안 검토 중에 앱이 차단될 가능성을 줄이는 데 도움이 됩니다.
보안 SDLC(소프트웨어 개발 수명 주기) 관행을 따릅니다.
개발 수명 주기 동안 앱 코드에 취약점이 있는지 검토하고 앱 버전을 생성하기 전에 취약점을 수정하십시오.
서드 파티 라이브러리에 취약점이 있는지 검토하고 최신 보안 버전으로 업데이트합니다.
분기에 한 번 이상 앱의 모든 서드 파티 라이브러리를 검토하고 업데이트합니다.
다음에 설명된 대로 Snowflake 보안 모범 사례를 따릅니다.
컨테이너가 있는 앱에 권장되는 보안 모범 사례¶
권장 보안 모범 사례 에 설명된 핵심 Snowflake Native App 에 대한 보안 모범 사례 외에도 다음 보안 모범 사례가 컨테이너를 사용하는 앱에 적용됩니다.
앱의 공격 표면을 최소화하고 공급망 취약성 위험을 줄이려면 외부 종속성과 라이브러리 사용을 제한합니다.
최소한의 기본 이미지 사용, 불필요한 패키지 제거, 런타임 환경의 안전한 구성 등 컨테이너 이미지 강화 요구 사항을 따릅니다.
모든 컨테이너 간 및 외부 통신에 안전한 통신 프로토콜과 암호화를 사용합니다.
컨테이너 활동과 데이터 액세스 패턴에 대한 포괄적인 로깅과 감사를 생성합니다.
알려진 취약점과 보안 문제를 해결하기 위해 컨테이너 이미지를 정기적으로 업데이트하고 패치합니다.
컨테이너화된 앱의 공격 표면을 최소화하기 위해 필요한 권한만 구현합니다.
적절한 암호화 및 액세스 제어를 사용하여 시크릿과 민감한 데이터를 안전하게 관리합니다.
앱을 검토받기 전에 철저한 보안 테스트와 취약성 평가를 실시합니다.
보안 사고에 신속하게 대응하고 사고 대응 중에는 Snowflake와 협업합니다.
앱 기능, 종속성 및 보안 제어에 대한 명확하고 정확한 설명서를 제공합니다.
컨슈머에게 앱을 안전하게 사용하고 구성하는 방법에 대한 교육과 안내를 제공합니다.
애플리케이션 패키지 개발 및 게시를 위한 모범 사례¶
Snowflake Native App 의 개발 및 게시자 프로세스를 간소화하려면 두 개의 애플리케이션 패키지를 별도로 생성하는 것이 좋습니다
개발 애플리케이션 패키지
개발 애플리케이션 패키지는 빠른 반복 및 테스트 목적으로 고안되었습니다. DISTRIBUTION 속성이
INTERNAL
로 설정되어 있어야 합니다. 이렇게 하면 애플리케이션 패키지가 내부에 유지되고 외부 컨슈머나 Snowflake 스캐닝 및 승인을 위해 배포되지 않습니다.이 패키지를 프로덕션 패키지와 별도로 유지함으로써 개발자는 각 반복 작업에 대한 보안 검토 프로세스를 시작하지 않고도 신속하게 변경 사항을 적용하고 새로운 기능을 테스트할 수 있습니다.
프로덕션 애플리케이션 패키지
프로덕션 애플리케이션 패키지는 애플리케이션 패키지를 게시하고 스캔 및 승인을 위해 Snowflake와 외부 컨슈머에게 배포하기 위한 것입니다. 프로덕션 애플리케이션 패키지는 DISTRIBUTION 속성이
EXTERNAL
로 설정되어 있어야 합니다.공급자의 보안 검토를 통과한 버전만 이 패키지에 추가해야 하며, 앱이 컨슈머에게 제공되기 전에 필요한 보안 표준을 충족하는지 확인해야 합니다.
개발자는 개발과 프로덕션 패키지를 분리하는 모범 사례를 따르면 효율적인 개발 수명 주기를 유지하면서 안전하고 승인된 버전의 앱만 게시하고 외부 컨슈머에게 배포할 수 있습니다.