Cortex Code CLI のセキュリティのベストプラクティス¶
Cortex Code CLI の基本的なセキュリティプラクティスには、安全な認証方法の使用、構成ファイルの保護、ロールとアクセスの適切な管理、会話履歴の安全な処理、 MCP サーバーの整合性の確保、および次の運用安全プロトコルが含まれます。
重要
管理環境では、組織はポリシー(例えば、ツールアクセスの制限、許可されたアカウントの制限、バイパス機能の無効)を強制するシステムレベルの管理設定ファイルをデプロイする場合があります。詳細については、 管理設定(組織ポリシー) をご参照ください。
認証情報¶
- 可能な場合は、ブラウザーベースの認証を使用します。
Cortex Code CLI のデフォルト認証方法はブラウザーベースの認証です。
connections.tomlファイルのauthenticator = "externalbrowser"を使用して、このオプションを手動で設定します。- 特定のロールへのアクセスをスコープしようとする場合、プログラムのアクセストークン( PATs )を使用します。
Snowsightで専用 PATs を生成します( 認証のためのプログラム アクセス トークンの使用 参照)。有効期限は90日以下に設定し、説明的な名前を使用し、定期的にローテーションします。
- 構成ファイルの保護
構成ファイルにはモード
600、ディレクトリには700を使用して、アクセスを自分のユーザーのみに制限できます。chmod 600 ~/.snowflake/connections.toml chmod 700 ~/.snowflake/cortex
- 認証情報をコミットしない
機密性の高い構成ファイルを
.gitignoreに追加します。echo "~/.snowflake/connections.toml" >> ~/.gitignore
環境変数を使用して認証情報とトークンを保持し、
${VARIABLE_NAME}構文を使用して構成ファイルに取り込みます。
ロールとアクセス¶
- 環境ごとに適切なロールを使用する
例えば、実稼働環境では読み取り専用のロールを使用し、開発ではより広範なロールを使用します。
[dev] role = "DEVELOPER" [prod_readonly] role = "ANALYST"
ルーティン操作に
ACCOUNTADMINを使用しないでください。最小権限を付与します。
会話履歴¶
会話は ~/.snowflake/cortex/conversations/ に保管されます。Cortex Codeを開始するときに cortex --private を使用して、機密性の高い作業のセッション保存を無効にします。代わりに、 /clear コマンドを使用してCortex Code CLI を終了する前に現在のセッションを消去します。
モード700を使用して、会話履歴へのアクセスを自分のユーザーのみに制限します。
chmod 700 ~/.snowflake/cortex/conversations
MCP セキュリティ¶
- 信頼できる MCP サーバーのみをインストールする
MCP サーバーを追加する前に、そのソースと整合性を確認します。次のコマンドを使用してサーバーのリストを取得し、信頼できないものは削除します。
cortex mcp list cortex mcp remove <server>
- MCP 認証情報をハードコーディングしない
環境変数を使用します。まず、シェルで以下を設定します。
export GITHUB_TOKEN="your_token"
その後、 MCP 構成でそれらを参照します。
{ "mcpServers": { "github": { "env": { "GITHUB_TOKEN": "${GITHUB_TOKEN}" } } } }
実稼働環境の安全性¶
- 計画モードを有効にする
/planコマンドを使用して、実行前に意図するアクションを確認します。/plan Drop and recreate the ANALYTICS schema
個人のアクセストークンが侵害された場合¶
すぐにSnowsightで PAT を取り消してください! その後、新しいトークンを生成し、その使用を開始します。構成ファイルのトークンを使用せず、代わりに環境変数を使用してください。
クエリ履歴を確認して、疑わしいアクティビティを特定します。
SHOW QUERIES IN ACCOUNT
管理設定(エンタープライズポリシー)¶
一部の組織では、管理者がCortex CodeCLIのポリシーを適用する管理設定をデプロイしています。管理設定は、ユーザーレベルの構成を制約または上書きできます(権限プロンプトとバイパス動作を含む)。
詳細については、 管理設定(組織ポリシー) をご参照ください。
権限¶
Cortex Codeには、以下の3つの操作モードがあります。
モード |
インジケーター |
スラッシュコマンド |
説明 |
|---|---|---|---|
アクションを確認 |
青 ⏵⏵ |
デフォルトモード |
潜在的に危険なアクションの前に許可を求めます。 |
Plan |
オレンジ ⏸ |
|
アクションを実行する前に計画を提示します。 |
バイパス |
赤 >> |
|
すべてのツール呼び出しが承認されます。 |
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 コマンドは、潜在的な影響に基づいて分類されます。
シェルコマンド¶
コマンドは、一般的なリスク要因について分析されます。
- リスクのあるコマンド
rm、sudo、curl、wget、sshsystemctl、chmod、chowngit push --force、git reset --hard
- 危険なフラグ
-rf、--force、--recursive--no-preserve-root
- 危険なパターン
シェルへのパイプ:
curl | bashダウンロードと実行
非表示ファイルアクセス(
.プレフィックス)システムパスアクセス(
/etc、/var、/usr)
SQL 件のクエリ¶
SQL は操作タイプ別に分類されます。
カテゴリ |
操作 |
動作 |
|---|---|---|
READ_ONLY |
SELECT 、 SHOW 、 DESCRIBE |
自動承認される |
WRITE |
INSERT、 UPDATE、 DELETE、 CREATE |
プロンプト |
USE_ROLE |
USE ROLE 、 USE WAREHOUSE |
プロンプト |
サンドボックスの許可¶
サンドボックスが有効な場合:
サンドボックスモード |
許可の動作 |
|---|---|
コンテナ + 自動 |
サンドボックスコマンドの自動承認 |
コンテナ + 通常 |
すべてのコマンドプロンプト |
OS + 自動 |
サンドボックスコマンドの自動承認 |
OS + 通常 |
すべてのコマンドプロンプト |
フック統合¶
フックを使用して、許可ポリシーをカスタマイズできます。以下は、自動承認bashコマンドを承認する実行前フックの例です。
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [
{
"type": "command",
"command": "bash .claude/hooks/auto-approve.sh"
}
]
}
]
}
}
このフックは、以下のように JSON 応答を返してbashコマンドを自動承認する可能性があります。
{
"hookSpecificOutput": {
"hookEventName": "PreToolUse",
"permissionDecision": "allow",
"permissionDecisionReason": "Approved by policy"
}
}
許可プロンプトとキャッシュ¶
Cortex Codeが操作を続行する許可を必要とする場合、リクエストに関する詳細を示すプロンプトが表示されます。リクエストを承認するか拒否するかを選択できます。また、今後の類似のリクエストのために、選択したものを記憶させることもできます。
「Always allow (this session)」は、Cortex Code CLI を終了するまで記憶されます。
「Always allow (persist)」は、無期限に記憶します。
これらの応答はキャッシュされ、必要に応じて、プロジェクトディレクトリ、ツールタイプ、またはコマンドパターンにスコープされます。
永続的な許可は ~/.snowflake/cortex/permissions.json に保存されます。以下は、キャッシュの例です。
{
"/path/to/project": {
"Bash": {
"npm test": "allow",
"make build": "allow"
},
"Write": {
"*": "allow"
}
}
}
このファイルを削除して、すべての永続的な許可をリセットします。特定のプロジェクトの許可をリセットするには、対応するエントリを削除します。
セッションキャッシュをリセットするには、 /new コマンドを使用します。これにより新しいセッションが開始されます。もしくはCortex Code CLI を終了して再起動します。
設定¶
以下の環境変数を設定して、許可の動作を制御します。
変数 |
説明 |
|---|---|
|
セッションの許可キャッシュのデフォルトのタイムアウトを設定します(秒単位)。 |
|
|
セキュリティチェックリスト¶
最大90日の有効期限を持つ PATs を使用する
ファイル権限を600/700に設定する
Gitに認証情報をコミットしない
最小権限のロールを使用する
ルーティン作業に ACCOUNTADMIN を使用しない
実稼働環境の計画モードを有効にし、信頼できる環境にはバイパスモードを予約する
信頼できる MCP サーバーのみをインストールする
環境変数に認証情報を格納する
カスタムセキュリティチェックを自動化することで、フックを使用してポリシーを適用する
定期的に許可を監査する