109 lines
8.0 KiB
Markdown
109 lines
8.0 KiB
Markdown
---
|
||
title: 1Password Developer — Secret references & CLI injection
|
||
source_type: company-tech-blog
|
||
url: https://1password.com/developers/secrets-management
|
||
archive_url:
|
||
related_branches: [feature-secrets-config-source-contract]
|
||
related_projects: [ca-skeleton-operational-contract]
|
||
tags: [ca-secrets, 1password, secret-references, cli-injection, developer-tooling]
|
||
status: raw
|
||
confidence: medium
|
||
created: 2026-05-22
|
||
last_reviewed: 2026-05-27
|
||
---
|
||
|
||
# 1Password Developer — Secret Management
|
||
|
||
> Layer: `raw/company-tech-blogs/` — 1Password 공식 개발자 페이지 verbatim. SaaS-기반 secret manager 의 local-developer 친화 모델 사례 (secret references + CLI injection).
|
||
> 주의: vendor 자체 marketing page → strength = `official-vendor-doc` (자사 제품 docs) 이지만 best practice 일반화 금지.
|
||
|
||
## Parent / 활용 branch (필수)
|
||
|
||
| Branch | 이 자료가 정당화하는 결정 |
|
||
|---|---|
|
||
| [[raw/branch-notes/feature-secrets-config-source-contract]] | secret manager 후보 비교 시 SaaS-형 (1Password / Doppler) 대안의 verbatim 근거 — local `.env` reference 패턴 + service account / Connect REST API 배포 모델 |
|
||
| [[raw/project-notes/ca-skeleton-operational-contract]] | Secrets Config Source Contract — local-dev `.env` policy vs SaaS reference injection 비교 |
|
||
|
||
## 컨텍스트 / 왜 저장했는지
|
||
|
||
`feature-secrets-config-source-contract` ca-tmpl이 enterprise secret manager (AWS SM / GCP SM / Vault)를 기본 후보로 둠. SaaS-형 secret manager (1Password / Doppler)는 **로컬 개발자 친화** 측면에서 다른 대안. ca-tmpl `.env` local-only 정책과 SaaS injection 모델의 비교 근거.
|
||
|
||
## 출처 / Source
|
||
|
||
- 원본 URL: https://1password.com/developers/secrets-management
|
||
- 아카이브 URL: (미수집)
|
||
- 저자 / 조직: 1Password (AgileBits Inc.)
|
||
- 발행일: rolling (vendor docs)
|
||
- 마지막 확인일: 2026-05-27
|
||
- 관련: `op` CLI, Service Accounts, Connect REST API, Doppler/Akeyless 등 유사 SaaS.
|
||
- 신뢰도 주의: 1Password 자사 marketing page → `official best practice`로 인용 금지. 대안 비교의 한 사례 자료로만 사용.
|
||
|
||
## 핵심 인용 / Key quotes (verbatim)
|
||
|
||
> [§hard-coding 회피] "Avoid hard-coding credentials into your code by using secret references for the items you saved in 1Password."
|
||
|
||
> [§CLI 사용] "Reduce complicated and repetitive tasks – like rotating credentials – using 1Password CLI."
|
||
|
||
> [§Service Accounts] "Centrally store, access, and share secrets used across your infrastructure and applications with service accounts."
|
||
|
||
> [§배포 옵션 — Connect/REST] "Choose how you deploy: Automatically access secrets stored in 1Password with Service Accounts and the CLI, or use Connect to deploy and sync secrets within your own infrastructure using a private REST API."
|
||
|
||
> [§중앙 저장 / 멀티 환경] "Centrally store, access, and share secrets used across your infrastructure and applications with service accounts, whether you're operating in multiple clouds or on-premises."
|
||
|
||
## Claims Extracted / 추출된 주장
|
||
|
||
| Claim ID | Claim (이 자료가 직접 말하는 것) | Evidence quote | Strength | Applies to | Does not prove |
|
||
|---|---|---|---|---|---|
|
||
| 1PW-DEV-C1 | 1Password 는 secret reference 패턴으로 코드 내 credential hard-coding 회피를 권장 | [§hard-coding 회피] "Avoid hard-coding credentials into your code by using secret references for the items you saved in 1Password." | `official-vendor-doc` | 1Password 도입 시 `.env` 또는 코드 내 secret 처리 방식 | reference 의 syntax (`op://vault/item/field`) 나 `op run`/`op inject` 의 정확한 동작은 본 인용에 명시 없음 — 별도 docs 필요 |
|
||
| 1PW-DEV-C2 | 1Password CLI 는 credential rotation 같은 반복 작업 자동화를 목적으로 제공 | [§CLI 사용] "Reduce complicated and repetitive tasks – like rotating credentials – using 1Password CLI." | `official-vendor-doc` | `op` CLI 도입 시 rotation 자동화 후보 | rotation 의 정확한 메커니즘 (수동 트리거 vs 스케줄) 은 본 인용 범위 밖 |
|
||
| 1PW-DEV-C3 | Service Accounts 는 인프라/애플리케이션 전반의 secret 중앙 저장·접근·공유 목적, on-prem/멀티 클라우드 환경 지원 | [§Service Accounts] + [§중앙 저장 / 멀티 환경] (verbatim 위 참조) | `official-vendor-doc` | 멀티 환경 / 멀티 클라우드 secret 중앙화 | service account 의 권한 모델 (role / scope) 정확한 동작은 본 인용에 없음 |
|
||
| 1PW-DEV-C4 | 배포 옵션 2가지: (a) Service Accounts + CLI 로 자동 secret 접근 (b) Connect 로 private REST API 를 통해 자기 인프라에 deploy/sync | [§배포 옵션 — Connect/REST] "Choose how you deploy: Automatically access secrets stored in 1Password with Service Accounts and the CLI, or use Connect to deploy and sync secrets within your own infrastructure using a private REST API." | `official-vendor-doc` | 1Password 도입 시 배포 모델 선택 (SaaS-pull vs self-hosted Connect) | Connect 의 high-availability / replication / sync latency 는 본 인용에 명시 없음 |
|
||
| 1PW-DEV-C5 | (부재) "Securely store, manage, automate, and share secrets..." 의 marketing 한 줄은 본 fetch 결과에 직접 등장 안 함 — 이전 기록의 인용은 페이지 다른 섹션/시점일 가능성 | (부재 자체가 메모) | `needs-confirmation` | 페이지 상단 hero copy 의 정확한 문구 | 본 자료의 직접 증명 범위 밖. 메모 섹션에서 보존하되 verbatim 으로 사용 금지 |
|
||
|
||
## Usage Boundaries / 적용 경계
|
||
|
||
- **이 자료가 직접 증명하는 것**:
|
||
- `1PW-DEV-C1` ~ `C4`: 1Password 의 secret reference 패턴, CLI rotation, Service Accounts, Connect REST API 배포 옵션이 vendor 가 직접 마케팅하는 기능
|
||
- **이 자료가 증명하지 않는 것**:
|
||
- `1PW-DEV-C5`: 페이지 다른 marketing hero copy 의 정확한 verbatim
|
||
- 1Password 가 AWS SM / GCP SM / Vault 보다 우수하다는 일반 결론
|
||
- audit log 의 정확한 detail (retention, 검색 가능 여부)
|
||
- SaaS outage 시 fallback 메커니즘 (local cache, offline mode)
|
||
- **내 프로젝트에 적용하려면 추가 확인이 필요한 것**:
|
||
- ca-tmpl 의 `.env` local-only 정책과 `op run`/`op inject` 의 양립성 (`.env` 안에 `op://` reference 가 들어가는지)
|
||
- Spring Boot 환경에서 `op run -- ./gradlew bootRun` 같은 wrapper 가 production deploy 와 어떻게 다른지
|
||
- vendor lock-in 비용 (1Password 단가, team 수 기준)
|
||
|
||
## 메모 / Notes (내 프로젝트 해석)
|
||
|
||
> 검증되지 않은 내 추론은 여기에 두지 말 것 — wiki source-summary 단계에서.
|
||
|
||
- **secret reference 패턴:**
|
||
- `.env` 내용: `DB_PASSWORD=op://vault/db/password` (실제 값 아님, 참조).
|
||
- 실행 시 `op run -- ./app` 또는 `op inject`가 reference를 실 값으로 치환.
|
||
- **plain `.env`에 실 값을 commit하지 않음** → ca-tmpl `__LOCAL_DEV_` sentinel과 비슷한 의도(local에서도 실 값 노출 방지).
|
||
- **vs ca-tmpl `.env` local-only:**
|
||
- ca-tmpl: local `.env` 허용 (plain 값). prod는 secret manager.
|
||
- 1Password 패턴: local `.env`도 reference만 → developer machine에 실 값 없음.
|
||
- 더 strict한 SaaS-기반 대안.
|
||
- **장점:**
|
||
- 개발자 onboarding 단순 (`op` 로그인만 하면 모든 secret 접근).
|
||
- rotation 시 reference는 그대로, value만 갱신.
|
||
- audit log (누가 언제 secret 조회).
|
||
- **단점:**
|
||
- vendor lock-in (1Password / Doppler / Akeyless 중 선택).
|
||
- SaaS outage 시 local 실행 불가.
|
||
- enterprise procurement 부담.
|
||
- **ca-tmpl이 SaaS를 baseline으로 채택하지 않은 이유 (추정):**
|
||
- skeleton은 cloud platform 중립 → 특정 SaaS 의존 금지.
|
||
- "external secret manager 또는 mounted env"라는 추상 layer에서 SaaS는 한 구현일 뿐.
|
||
|
||
## Related / 관련
|
||
|
||
- 같은 주제 다른 raw: (미수집 — Doppler / HashiCorp Vault / AWS Secrets Manager 후보)
|
||
- 인용하는 branch:
|
||
- [[raw/branch-notes/feature-secrets-config-source-contract]]
|
||
- 인용하는 project:
|
||
- [[raw/project-notes/ca-skeleton-operational-contract]] (Secrets Config Source Contract)
|
||
- 인용한 wiki 요약: (미작성)
|