Nomad 시크릿 엔진
Nomad 시크릿 엔진
참고: 이 엔진은 TLS 또는 서명 검증의 일부로 외부 X.509 인증서를 사용할 수 있어요. SHA-1을 사용하는 X.509 인증서에 대한 서명 검증은 더 이상 사용되지 않으며, Vault 1.12부터는 해결 방법 없이는 더 이상 사용할 수 없어요. 자세한 내용은 deprecation notices를 참조하세요.
Nomad는 단순하고 유연한 스케줄러이자 워크로드 오케스트레이터예요. Vault용 Nomad 시크릿 엔진은 기존 Nomad ACL 정책을 기반으로 Nomad ACL 토큰을 동적으로 생성해요.
이 페이지는 이 시크릿 엔진에 대한 빠른 시작을 보여줘요. 모든 경로에 대한 자세한 문서는 시크릿 엔진을 마운트한 후 vault path-help를 사용하세요.
버전 정보(Version information) — ACL은 Nomad 0.7.0 이상에서만 사용할 수 있어요.
출처: 문서
본문
빠른 시작(Quick start)
Vault 시크릿 엔진을 사용하는 첫 단계는 활성화하는 것이에요.
$ vault secrets enable nomad
Successfully mounted 'nomad' at 'nomad'!
선택적으로 Vault가 생성한 자격 증명에 대한 리스 설정을 구성할 수 있어요. 이것은 config/lease 키에 작성해요:
$ vault write nomad/config/lease ttl=3600 max_ttl=86400
Success! Data written to: nomad/config/lease
빠른 시작을 위해 Nomad ACL 부트스트랩 프로세스가 제공하는 SecretID 토큰을 사용할 수 있지만, 프로덕션 배포에는 권장되지 않아요.
$ nomad acl bootstrap
Accessor ID = 95a0ee55-eaa6-2c0a-a900-ed94c156754e
Secret ID = c25b6ca0-ea4e-000f-807a-fd03fcab6e3c
Name = Bootstrap Token
Type = management
Global = true
Policies = n/a
Create Time = 2017-09-20 19:40:36.527512364 +0000 UTC
Create Index = 7
Modify Index = 7
권장 패턴은 Nomad ACL 가이드를 따라 Vault 전용 토큰을 생성하는 것이에요.
다음으로 Vault가 Nomad에 연결하는 방법을 알도록 구성해야 해요. 접근 정보를 작성해 이 작업을 해요:
$ vault write nomad/config/access \
address=http://127.0.0.1:4646 \
token=adf4238a-882b-9ddc-4a9d-5b6758e4159e
Success! Data written to: nomad/config/access
이 경우 Vault가 루프백 주소의 기본 포트에서 Nomad에 연결하도록 구성했어요. 또한 token 파라미터로 사용할 ACL 토큰을 제공했어요. Vault는 ACL 토큰을 생성하고 폐기할 수 있어야 하므로 management 유형 토큰이 있어야 해요.
다음 단계는 역할을 구성하는 것이에요. 역할은 자격 증명을 생성하는 데 사용되는 정책 이름 집합에 매핑되는 논리적 이름이에요. 예를 들어 "readonly" 정책에 매핑되는 "monitoring" 역할을 만들어요:
$ vault write nomad/role/monitoring policies=readonly
Success! Data written to: nomad/role/monitoring
시크릿 엔진은 단일 또는 쉼표로 구분된 정책 이름 목록을 기대해요.
새 Nomad ACL 토큰을 생성하려면 그 역할에서 간단히 읽어요:
$ vault read nomad/creds/monitoring
Key Value
--- -----
lease_id nomad/creds/monitoring/78ec3ef3-c806-1022-4aa8-1dbae39c760c
lease_duration 768h0m0s
lease_renewable true
accessor_id a715994d-f5fd-1194-73df-ae9dad616307
secret_id b31fb56c-0936-5428-8c5f-ed010431aba9
여기서 Vault가 우리를 위해 새 Nomad ACL 토큰을 생성한 걸 볼 수 있어요. 이 토큰을 Nomad에서(accessor로) 읽어 테스트할 수 있어요.
$ nomad acl token info a715994d-f5fd-1194-73df-ae9dad616307
Accessor ID = a715994d-f5fd-1194-73df-ae9dad616307
Secret ID = b31fb56c-0936-5428-8c5f-ed010431aba9
Name = Vault example root 1505945527022465593
Type = client
Global = false
Policies = [readonly]
Create Time = 2017-09-20 22:12:07.023455379 +0000 UTC
Create Index = 138
Modify Index = 138
튜토리얼(Tutorial)
단계별 튜토리얼은 Generate Nomad Tokens with HashiCorp Vault를 참조하세요.
API
Nomad 시크릿 엔진에는 완전한 HTTP API가 있어요. 자세한 내용은 Nomad Secrets Engine API를 참조하세요.
Terraform
Vault Terraform 프로바이더로 Nomad 시크릿 리소스를 프로그래밍 방식으로 관리할 수 있어요. 자세한 내용은 Terraform Registry 문서(Nomad 시크릿 엔진 백엔드 리소스, Nomad 시크릿 엔진 역할 리소스)를 참조하세요.
더 알아보기 (Learn more)
- Generate Nomad Tokens with HashiCorp Vault 튜토리얼을 확인해 보세요.
- Nomad Secrets Engine API 문서를 확인해 보세요.