명령줄 도구 인증
명령줄 도구 인증 (Authenticate command-line tools)
로컬 샌드박스에서 gh, docker, 비밀 관리자 같은 도구 자격 증명을 구성하는 방법을 알아볼게요.
출처: 문서
본문
이 워크플로우들은 로컬 샌드박스를 위해 호스트에서 자격 증명을 해석해요. 클라우드 비밀 설정은 클라우드 에이전트 인증을 참고하세요.
샌드박스 프록시는 모델 제공자의 API 자격 증명을 자동으로 처리하지만, 에이전트는 gh, docker, 비밀 관리자 같은 도구의 자격 증명도 자주 필요해요. 호스트에 자격 증명 소스를 구성하면 프록시가 해석된 값을 샌드박스의 매칭 요청에 주입해요. 동적 비밀 소스는 비밀 저장소에 값을 복사하지 않고 인증된 호스트 CLI에서 값을 가져올 수 있어요.
비밀 스코프와 변경이 기존 샌드박스에 적용되는 방식은 비밀 저장을 참고하세요.
GitHub CLI
GitHub 토큰을 샌드박스 비밀로 저장하세요. 프록시가 아웃바운드 요청에 주입하므로 gh가 추가 구성 없이 샌드박스 안에서 동작해요:
$ sbx secret set github --command 'gh auth token'
데몬이 호스트에서 gh auth token을 실행하고 기본적으로 55분 동안 출력을 캐시해요. 캐시가 만료되면 명령을 다시 실행하므로 gh의 토큰 업데이트를 sbx에 수동으로 복사할 필요가 없어요. 자격 증명을 사용할 때마다 명령을 실행하려면 --refresh on-demand를 사용하세요.
그러면 에이전트가 호스트에서와 같은 방식으로 풀 리퀘스트를 만들고, 이슈를 열고, PR에 댓글을 달고, GitHub API와 상호작용할 수 있어요:
# Inside the sandbox
$ gh pr create --title "feat: my feature" --body "..."
$ gh issue list
토큰은 샌드박스 안에 평문으로 절대 저장되지 않아요. 자세한 내용은 GitHub 토큰을 참고하세요.
Docker 레지스트리
Docker Hub를 사용할 때 인증은 자동으로 처리돼요. sbx가 기존 로그인 세션을 재사용해요. 다른 레지스트리는 샌드박스를 만들 때 사설 템플릿과 kit를 풀할 수 있도록 sbx에 자격 증명을 구성해야 해요:
$ gh auth token | sbx secret set --all-sandboxes --registry ghcr.io \
--username <github-username> --password-stdin
$ echo "$ACR_PASSWORD" | sbx secret set --all-sandboxes \
--registry myregistry.azurecr.io \
--username myuser --password-stdin
에이전트가 샌드박스 안에서 인증된 docker pull이나 docker push 명령을 실행해야 하면 -g나 샌드박스 이름을 추가하세요. 호스트 측 프록시가 자격 증명을 샌드박스에 쓰지 않고 레지스트리 로그인을 처리해요.
샌드박스 안에서 빌드된 이미지와 컨테이너는 호스트가 아니라 샌드박스의 개인 Docker 데몬에서 실행돼요. 샌드박스가 제거되면 삭제돼요.
레지스트리 자격 증명이 다른 비밀과 어떻게 다른지, 레지스트리별 사용자 이름 요구 사항, 전체 샌드박스 대 샌드박스별 스코프는 레지스트리 자격 증명을 참고하세요.
1Password에서 자격 증명 소싱
1Password CLI를 설치하고 호스트에서 로그인한 다음 op:// 참조를 sbx secret set에 전달하세요. 비밀 저장소가 참조를 기록하고, 데몬이 프록시가 자격 증명이 필요할 때 호스트에서 op read를 사용해요:
$ sbx secret set github --ref 'op://Work/GitHub/token'
$ sbx secret set anthropic --ref 'op://Work/Anthropic/credential'
실제 값은 호스트에 남고 샌드박스는 프록시가 관리하는 플레이스홀더를 봐요. 서비스 비밀은 기본적으로 55분 동안 캐시돼요. 자격 증명을 사용할 때마다 1Password에서 값을 가져오려면 갱신 정책을 설정하세요:
$ sbx secret set anthropic \
--ref 'op://Work/Anthropic/credential' \
--refresh on-demand
AWS Secrets Manager에서 자격 증명 소싱
호스트에 AWS CLI를 설치·인증한 다음 비밀의 ARN을 등록하세요. 데몬이 프록시가 값을 필요로 할 때 AWS Secrets Manager를 호출해요:
$ sbx secret set anthropic \
--ref 'arn:aws:secretsmanager:us-west-2:123456789012:secret:anthropic-api-key'
갱신 정책, 검증 옵션, 사용자 정의 비밀, 제공자 계정 또는 프로필 선택은 동적 비밀 소스 사용을 참고하세요.