Cortex Code CLI의 보안 모범 사례¶
보안 인증 방법 사용, 구성 파일 보호, 적절한 역할 및 액세스 관리, 대화 기록의 안전한 처리, MCP 서버 무결성 보장, 프로덕션 안전 프로토콜 준수를 포함한 Cortex Code CLI의 필수 보안 사례입니다.
중요
관리형 환경에서 조직은 정책(예: 도구 액세스 제한, 허용 계정 제한 또는 우회 기능 비활성화)을 적용하는 시스템 수준의 관리형 설정 파일을 배포할 수 있습니다. 자세한 내용은 관리형 설정(조직 정책) 섹션을 참조하십시오.
자격 증명¶
- [권장] 가능하면 브라우저 기반 인증을 사용합니다.
Cortex Code CLI의 기본 인증 방법은 브라우저 기반 인증입니다.
connections.toml파일에서 ``authenticator = “externalbrowser”``를 사용하여 이 옵션을 수동으로 설정합니다.- 특정 역할에 대한 액세스 범위 지정을 시도할 때 프로그래밍 방식 액세스 토큰(PATs)을 사용합니다.
Snowsight에서 전용 PATs를 생성합니다(인증을 위해 프로그래밍 방식의 액세스 토큰 사용 참조). 만료 날짜를 90일 이하로 설정하고 설명이 포함된 이름을 사용하며 정기적으로 순환합니다.
- 구성 파일 보호
구성 파일에는 모드 ``600``을 사용하고 디렉터리에는 모드 ``700``을 사용하여 해당 사용자만 접근할 수 있도록 제한합니다.
- 자격 증명을 커밋하지 않음
``.gitignore``에 민감한 구성 파일을 추가합니다.
환경 변수를 사용하여 자격 증명과 토큰을 보유하고
${VARIABLE_NAME}구문을 사용하여 구성 파일에 통합합니다.
역할 및 액세스¶
- 환경별로 적절한 역할 사용
예를 들어 프로덕션에서는 읽기 전용 역할을 사용하고 개발에서는 더 광범위한 역할을 사용합니다.
일상적인 작업의 경우 ``ACCOUNTADMIN``을 사용하지 마세요. 최소 권한을 부여합니다.
대화 기록¶
Conversations are stored in ~/.snowflake/cortex/conversations/. Use cortex --private when starting Cortex Code to disable session saving for sensitive work.
Alternatively, use the /clear command to clear the current session before exiting Cortex Code CLI.
모드 700을 사용하여 해당 사용자만 대화 기록에 액세스하도록 제한합니다.
MCP 보안¶
- 신뢰할 수 있는 MCP 서버만 설치
서버를 추가하기 전에 MCP 서버의 소스 및 무결성을 확인합니다. 다음 명령을 사용하여 서버 목록을 가져오고 신뢰할 수 없는 서버를 제거합니다.
- MCP 자격 증명을 하드코딩하지 않음
환경 변수를 사용합니다. 먼저, 셸에서 설정합니다.
그런 다음 이를 MCP 구성에서 참조합니다.
프로덕션 안전¶
- 계획 모드 활성화
/plan명령을 사용하여 실행 전에 의도한 작업을 검토합니다.
개인 액세스 토큰이 도용된 경우¶
Snowsight에서 PAT를 즉시 취소하세요! 그런 다음 새 토큰을 생성하여 대신 사용합니다. 구성 파일에 토큰을 사용하지 마세요 대신 환경 변수를 사용합니다.
Review the query history to identify any suspicious activity using the QUERY_HISTORY view in the SNOWFLAKE.ACCOUNT_USAGE schema:
관리형 설정(엔터프라이즈 정책)¶
일부 조직에서는 관리자가 Cortex Code CLI에 대한 정책을 적용하는 관리형 설정을 배포합니다. 관리형 설정은 사용자 수준 구성(권한 프롬프트 및 우회 동작 포함)을 제한하거나 재정의할 수 있습니다.
자세한 내용은 관리형 설정(조직 정책) 섹션을 참조하십시오.
권한¶
Cortex Code에는 세 가지 작동 모드가 있습니다.
모드 |
표시기 |
슬래시 명령 |
설명 |
|---|---|---|---|
작업 확인 |
파란색 ⏵⏵ |
기본 모드 |
잠재적으로 위험한 작업 전에 권한을 요청합니다. |
계획 |
주황색 ⏸ |
|
작업을 수행하기 전에 계획을 제시합니다. |
우회 |
빨간색 >> |
|
모든 도구 호출이 승인됩니다. |
Cortex Code CLI에서 ``Shift-Tab``을 눌러 해당 모든 간에 순환합니다.
경고
우회 모드에서는 모든 확인 메시지가 비활성화됩니다. 신뢰할 수 있는 환경에서만 사용하세요.
권한 유형¶
Cortex Code 도구 호출에 적용되는 권한 수준은 다음과 같습니다.
타입 |
설명 |
|---|---|
EXECUTE_COMMAND |
bash/셸 명령 실행 |
FILE_READ |
파일 내용 읽기 |
FILE_WRITE |
파일 생성 및 수정 |
FILE_EDIT |
기존 파일 편집 |
WEB_ACCESS |
웹 검색 및 가져오기 작업 |
신뢰 모델¶
이 기능에 대한 지원은 실험적 단계에 있으며 변경될 수 있습니다. Cortex Code는 다음 테이블과 같이 명령과 작업을 위험별로 분류하려고 시도합니다.
레벨 |
예 |
동작 |
|---|---|---|
SAFE |
|
자동 승인됨 |
LOW |
새 파일 생성(예: |
일반적으로 자동 승인됨 |
MEDIUM |
파일 편집(예: |
확인 모드에서 메시지 표시 |
HIGH |
|
항상 메시지 표시 |
CRITICAL |
|
추가 확인 |
SQL 쿼리¶
SQL은 작업 유형별로 분류됩니다.
카테고리 |
작업 |
동작 |
|---|---|---|
READ_ONLY |
SELECT, SHOW, DESCRIBE |
자동 승인됨 |
WRITE |
INSERT, UPDATE, DELETE, CREATE |
프롬프트 |
USE_ROLE |
USE ROLE, USE WAREHOUSE |
프롬프트 |
샌드박스¶
Cortex Code CLI는 명령 실행을 분리하기 위해 샌드박싱을 지원합니다. 샌드박스 구성 및 사용에 대한 자세한 내용은 :doc:`샌드박스 </user-guide/cortex-code/sandbox>`를 참조하세요.
후크 통합¶
후크를 사용하여 권한 정책을 사용자 지정할 수 있습니다. 다음은 자동 승인 bash 명령을 승인하는 사전 실행 후크의 예제입니다.
이 후크는 다음과 같은 JSON 응답을 반환하여 bash 명령을 자동 승인할 수 있습니다.
권한 프롬프트 및 캐싱¶
Cortex Code에서 작업을 진행하기 위해 사용자의 권한이 필요한 경우 요청에 대한 세부 정보를 묻는 메시지가 표시됩니다. 요청을 승인하거나 거부하도록 선택할 수 있습니다. 향후 유사한 요청을 위해 선택 사항을 기억하도록 선택할 수도 있습니다.
“항상 허용(이 세션)”은 Cortex Code CLI를 종료할 때까지 기억합니다.
“항상 허용(지속)”은 을 무기한으로 기억합니다.
이러한 응답은 캐시되고 프로젝트 디렉터리, 도구 유형 또는 명령 패턴으로 적절하게 범위가 지정됩니다.
영구 권한은 ``~/.snowflake/cortex/permissions.json``에 저장됩니다. 다음은 캐시 예제입니다.
모든 영구 권한을 재설정하려면 이 파일을 삭제합니다. 특정 프로젝트에 대한 권한을 재설정하려면 해당 항목을 삭제합니다.
세션 캐시를 재설정하려면 새 세션을 시작하거나 Cortex Code CLI를 종료하고 다시 시작하는 /new 명령을 사용합니다.
구성¶
아래에 설명된 환경 변수를 설정하여 권한 동작을 제어합니다.
변수 |
설명 |
|---|---|
|
세션 권한 캐시의 기본 시간 제한(초)을 설정합니다. |
|
``1``로 설정된 경우, 우회 모드에서도 SQL 쓰기 작업에 대해 항상 메시지가 표시됩니다. |
보안 체크리스트¶
PATs를 최대 90일 만료로 사용
파일 권한을 600/700으로 설정
자격 증명을 git에 커밋하지 않음
최소 권한 역할 사용
일상적인 작업에 ACCOUNTADMIN을 사용하지 않음
프로덕션을 위한 계획 모드와 신뢰할 수 있는 환경을 위한 예약 우회 모드 활성화
신뢰할 수 있는 MCP 서버만 설치
환경 변수에 자격 증명 저장
후크를 통해 사용자 지정 보안 검사를 자동화하여 정책 적용
주기적으로 권한 감사