sbx secret set
sbx secret set
서비스 시크릿 또는 레지스트리 자격 증명을 만들거나 갱신하는 명령이에요. 시크릿을 직접 값으로 저장하거나, 1Password/AWS Secrets Manager 참조 또는 셸 명령 같은 동적 소스를 저장할 수 있어요.
출처: 문서
본문
서비스 시크릿 또는 레지스트리 자격 증명을 만들거나 갱신해요.
서비스 시크릿 (Service secrets)
사용 가능한 서비스: anthropic, copilot, cursor, devin, droid, github, google, groq, mistral, nebius, openai, openrouter, xai
서비스 시크릿은 기본적으로 전역으로 적용돼요. --sandbox를 쓰면 한 샌드박스로 범위를 지정할 수 있어요. SERVICE를 생략하면 대화형 프롬프트로 선택해요.
동적 시크릿 (Dynamic secrets)
--ref나 --command를 써서 시크릿 값 대신 시크릿 소스를 저장할 수 있어요. sbx는 필요할 때 호스트에서 소스를 해석하고 --refresh 정책에 따라 값을 캐시해요.
--ref는 1Password op:// 참조와 AWS Secrets Manager ARN을 지원해요. 해당 op 또는 aws CLI가 설치·인증되어 있어야 해요. --command는 셸 명령을 실행하고 그 표준 출력을 시크릿 값으로 사용해요.
레지스트리 자격 증명 (Registry credentials)
--registry를 써서 컨테이너 레지스트리의 풀 자격 증명을 저장할 수 있어요. 서비스 시크릿과 달리 레지스트리 자격 증명은 기본적으로 호스트 전용이에요:
- 기본적으로 자격 증명은 호스트의 템플릿·키트 풀에 사용돼요. 샌드박스에 주입되지 않아요.
--all-sandboxes를 쓰면 자격 증명이 호스트 풀에 사용되고, 프록시가 모든 새 샌드박스의 레지스트리 로그인에 주입해요. 자격 증명은 샌드박스에 들어가지 않아요.--sandbox를 쓰면 자격 증명이 지정된 샌드박스에만 주입돼요.
Bearer 인증 엔드포인트가 다른 호스트명을 쓰는 레지스트리는 --registry-auth-endpoint로 정확한 HTTPS URL을 신뢰하게 할 수 있어요.
Options
| Option | Default | Description |
| --all-sandboxes | | 레지스트리 자격 증명을 모든 샌드박스에 주입해요(--registry 필요) |
| --command | | 명령의 표준 출력을 시크릿 값으로 사용해요 |
| -f, --force | | --token 사용 시 기존 시크릿을 덮어써요 |
| --no-verify | | 저장할 때 --ref 또는 --command 소스를 확인하지 않아요 |
| --oauth | | OAuth 흐름을 시작하고 OAuth 토큰을 저장해요(openai/global만). --cloud와 함께: openai 또는 anthropic, 클라우드에만 저장(로컬 secrets-engine에는 안 함) |
| --password-stdin | | 레지스트리 비밀번호 또는 토큰을 stdin에서 읽어요(--registry와 함께) |
| --ref | | 시크릿 소스로 1Password op:// 참조 또는 AWS Secrets Manager ARN을 사용해요 |
| --refresh | | 시크릿 갱신 정책: on-demand 또는 일정 시간 후(기본: 55m) |
| --registry | | 풀 자격 증명용 레지스트리 호스트명(예: ghcr.io) |
| --registry-auth-endpoint | | 크로스 호스트 레지스트리 영역용 신뢰 HTTPS 인증 엔드포인트 |
| --sandbox | | 기본 범위 대신 한 샌드박스로 시크릿 범위를 지정해요 |
| --show-error | | 초기 확인 실패 시 리졸버 표준 오류를 보여줘요(시크릿을 포함할 수 있음) |
| -t, --token | | 시크릿 값(덜 안전: 셸 히스토리에 보임) |
| --username | | 레지스트리 사용자 이름(--registry와 사용, 토큰 전용 인증이면 생략) |
Global options
| Option | Default | Description |
| --cloud | | 로컬 sandboxd 대신 Docker Cloud Sandboxes API로 디스패치해요 |
| -D, --debug | | 디버그 로깅을 활성화해요 |
Examples
# GitHub 토큰을 전역으로 저장 (모든 샌드박스에서 사용 가능)
sbx secret set github
# 특정 샌드박스용 OpenAI 키 저장
sbx secret set openai --sandbox my-sandbox
# stdin으로 비대화형 (예: 시크릿 매니저 또는 환경 변수에서)
echo "$ANTHROPIC_API_KEY" | sbx secret set anthropic
# OpenAI OAuth 흐름을 시작하고 전역 OAuth 토큰 저장
sbx secret set openai --oauth
# 사용 시점에 1Password 참조 해석 (인증된 op CLI 필요)
sbx secret set anthropic --ref 'op://Private/Anthropic/api-key'
# 사용 시점에 AWS Secrets Manager ARN 해석 (인증된 aws CLI 필요)
sbx secret set anthropic --ref 'arn:aws:secretsmanager:us-west-2:123456789012:secret:anthropic-api-key'
# 임의 명령으로 시크릿 해석
sbx secret set github --command 'gh auth token'
# 레지스트리: 호스트 전용 (템플릿/킷 풀, 샌드박스에 주입 안 됨)
gh auth token | sbx secret set --registry ghcr.io --password-stdin
# 레지스트리: 호스트 풀 + 모든 새 샌드박스에 주입
gh auth token | sbx secret set --all-sandboxes --registry ghcr.io --password-stdin
# 레지스트리: 특정 샌드박스만
gh auth token | sbx secret set --sandbox my-sandbox --registry ghcr.io --password-stdin
# 크로스 호스트 인증 엔드포인트가 있는 자체 호스팅 레지스트리
echo "$GITLAB_PAT" | sbx secret set --all-sandboxes \
--registry registry.example.com --username "$GITLAB_USER" \
--registry-auth-endpoint https://gitlab.example.com/jwt/auth \
--password-stdin