
【복사 붙여넣기 가능】Kiro/Claude Code의 '신뢰할 수 있는 명령(Trusted Commands)' 설정으로 조사 작업 승인 완전
요약
Claude Code 사용 시 반복되는 명령 승인 과정을 자동화하여 작업 효율을 높이는 방법을 소개합니다. 'Trusted Commands' 설정을 통해 읽기 전용 명령들을 사전에 등록함으로써 승인 절차 없이 안전하게 실행할 수 있습니다.
핵심 포인트
- Claude Code의 'Trusted Commands' 기능을 활용해 반복적인 승인 절차 제거 가능
- grep, git status, aws describe 등 읽기 전용 명령 위주로 자동 승인 설정 권장
- 글로벌, 프로젝트, 로컬 단위로 설정 파일 스코프를 나누어 관리 가능
- sed -i나 rm -rf 같은 파괴적인 명령은 제외하여 보안성 유지
AI 에이전트(Kiro / Claude Code)를 사용하면서 이런 경험을 해본 적 없으신가요?
AI: grep -r "auth" src/ 를 실행해도 될까요?
나: OK
AI: ls -la src/auth/ 를 실행해도 될까요?
...
조사 계열 명령은 읽기 전용(Read-only)이며 파괴적이지 않은데도, 매번 승인을 요구합니다.
한 번의 조사 태스크에서 20회 이상의 승인. 이래서는 효율화는커녕 오히려 번거롭기만 합니다.
이 기사에서는 조사 계열 명령의 승인을 완전히 제로(0)로 만드는 설정을 복사 붙여넣기 할 수 있는 형태로 제공합니다.
Kiro / Claude Code에는 "이 명령은 신뢰할 수 있다"라고 사전에 등록하는 기능이 있습니다.
등록된 명령은 승인 없이 자동으로 실행됩니다.
| 스코프 | 파일 경로 | 용도 |
|---|---|---|
| 글로벌 (Global) | ~/.claude/settings.json | 모든 프로젝트 공통 적용 |
| 프로젝트 (Project) | .claude/settings.json | 특정 프로젝트에만 적용 |
| 로컬 (Local) | .claude/settings.local.json | 개인 설정 (gitignore 권장) |
~/.claude/settings.json에 아래 내용을 붙여넣으세요.
{
"permissions": {
"allow": [
...
"Bash(grep:*)", // 텍스트 검색
"Bash(rg:*)", // ripgrep (고속 검색)
"Bash(ag:*)", // The Silver Searcher
...
이것들은 읽기 전용 명령이므로 허용해도 안전합니다.
"Bash(sort:*)", // 정렬 (Sort)
"Bash(uniq:*)", // 중복 제거 (Uniq)
"Bash(cut:*)", // 컬럼 추출 (Cut)
...
sed는 -n 옵션이 붙은 경우만 허용합니다. sed -i (파일 쓰기/수정)는 허용하지 않습니다.
"Bash(aws * describe-*)", // 리소스 정보 취득
"Bash(aws * get-*)", // 설정 취득
"Bash(aws * list-*)", // 목록 취득
...
AWS CLI의 읽기 계열 API만 허용합니다. aws s3 rm, aws ec2 terminate-instances 등은 허용하지 않습니다.
"Bash(git status:*)", // 상태 확인
"Bash(git log:*)", // 이력 확인
"Bash(git diff:*)", // 차이 확인
...
Git 조작은 로컬 참조만 허용합니다. git push, git reset, git checkout은 허용하지 않습니다.
"Bash(gh pr list:*)", // PR 목록
"Bash(gh pr view:*)", // PR 상세
"Bash(gh pr diff:*)", // PR 차이
...
이것들은 GitHub API의 읽기이므로 안전합니다.
"Bash(npm list:*)", // 의존성 목록
"Bash(npm outdated:*)", // 업데이트 확인
"Bash(npm audit:*)", // 취약점 확인
...
의존성 확인만 허용합니다. npm install, pip install은 허용하지 않습니다.
"Bash(docker ps:*)", // 컨테이너 목록
"Bash(docker logs:*)", // 로그 확인
"Bash(docker inspect:*)", // 상세 정보
...
컨테이너·클러스터의 상태 확인만 허용합니다. docker rm, kubectl delete는 허용하지 않습니다.
"deny": [
"Bash(rm -rf *)", // 재귀적 삭제
"Bash(git push -f *)", // 강제 푸시
...
이것들은 파괴적인 조작이므로 명시적으로 거부(Deny) 리스트에 넣어둡니다. AI가 실수로 실행하려고 해도 확실하게 차단됩니다.
Settings → Kiro Agent: Trusted Commands
설정 레벨:
User: 모든 워크스페이스에서 유효
Workspace: 특정 프로젝트에서만 유효
다음 내용을 한 줄씩 추가하세요.
grep
rg
ag
...
Kiro는 문자열의 접두사 일치 (Prefix Match) 방식으로 매칭됩니다.
| 설정 | 매칭 예시 |
|---|---|
grep | grep -r "auth" src/, grep -n "TODO" *.ts |
aws | aws s3 ls, aws ec2 describe-instances |
git status | git status, git status -s |
aws만 설정하면 모든 AWS 명령어가 허용됩니다. 읽기 전용으로 제한하고 싶다면 aws ec2 describe, aws s3 ls 등을 개별적으로 설정하세요.
Claude Code에서는 :*가 와일드카드(Wildcard)입니다.
| 패턴 | 매칭 예시 |
|---|---|
Bash(grep:*) | grep -r "auth" src/ |
Bash(aws * describe-*) | aws ec2 describe-instances, aws rds describe-db-instances |
Bash(git log:*) | git log --oneline -10 |
// ❌ 위험: git push -f 도 허용됨
"Bash(git *)"
// ✅ 안전: 읽기 계열만 허용
...
git *와 같이 너무 넓은 패턴은 절대 피해야 합니다. git push -f나 git reset --hard도 허용되어 버립니다.
나: 인증 관련 코드를 조사해줘
AI: grep -r "auth" src/ 를 실행해도 될까요?
나: OK
...
나: 인증 관련 코드를 조사해줘
AI: (자동으로 grep, ls, cat, git log, aws logs 실행)
AI: 조사를 완료했습니다.
...
승인 횟수: 20회 → 0회
소요 시간: 30분 → 5분
.claude/settings.json (프로젝트 루트)
{
"permissions": {
"allow": [
...
{
"permissions": {
"allow": [
...
{
"permissions": {
"allow": [
...
원인 1: 패턴이 일치하지 않음
// ❌ 공백 위치가 다름
"Bash(aws logs get-log-events:*)"
// ✅ 올바른 패턴
...
원인 2: 설정 파일의 위치가 다름
-
글로벌 설정 (Global Settings):
~/.claude/settings.json -
프로젝트 설정 (Project Settings):
.claude/settings.json(리포지토리 루트)
설정 우선순위: 프로젝트 > 글로벌
원인 3: JSON 구문 오류 (Syntax Error)
# 구문 체크
cat ~/.claude/settings.json | jq .
최소한의 설정부터 시작하여 필요에 따라 추가해 나가는 접근 방식을 추천합니다.
// 최소 구성 (우선 이것만)
{
"permissions": {
...
사용하다가 "이것도 허용하고 싶다"고 생각되면 추가해 나가면 됩니다.
Claude Code의 경우:
# 현재 설정 확인
claude /permissions
| 설정 | 효과 |
|---|---|
| 조사 계열 명령어 허용 | 승인 없이 조사가 진행됨 |
| ... |
한 번 설정하면 모든 조사 작업에서 효과를 발휘합니다.
이 기사의 설정을 복사하여 쾌적한 AI 에이전트 생활을 시작해 보세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기