Agent와 Vault의 버전이 일치하지 않을 때의 위험 이해하기
Agent와 Vault의 버전이 일치하지 않을 때의 위험 이해하기
Vault Agent와 Vault 서버를 동일한 버전으로 실행할 필요는 없습니다. 다른 버전을 실행해도 안전합니다. 다만 최신 버전의 Agent와 Vault 서버로 업그레이드하지 않으면 Vault의 모든 최신 기능을 활용하지 못할 수 있습니다.
Agent는 Agent와 Vault 서버 버전 사이의 불일치를 감지하면 로그에 메모를 기록합니다. 이 메모는 문제가 버전 불일치와 관련됐을 때 디버깅을 돕기 위한 순전히 정보 제공용입니다. 예를 들어 더 새로운 Agent 버전이 이전 버전의 Vault에서 제공되지 않는 기능을 기대할 때입니다.
이 문서는 일반적인 경우를 설명합니다. 의도적인 예외가 가끔 있을 수 있으며, 그런 경우 CHANGELOG의 CHANGES 섹션에서 명시합니다. 의도적이지 않거나 문서화되지 않은 경우 버그로 취급해 보고해야 합니다.
출처: 문서
본문
Vault Agent가 더 오래된 경우
대부분의 경우 Vault 서버 업그레이드는 이전 버전의 Vault Agent와 하위 호환이 됩니다. Vault 업그레이드가 하위 호환되지 않는 드문 경우에는 관련 정보를 Vault 업그레이드 가이드에 문서화합니다.
Auto-auth:
- Agent가 빌드된 이후에 도입된 새 인증 방법은 사용할 수 없습니다.
- 기존 인증 방법은 계속 정상적으로 동작해야 합니다.
Proxy:
- Agent는 들어오는 요청을 단순히 미러링하므로, 들어오는 요청이 해당 Agent 버전이 컴파일될 당시에 없던 엔드포인트를 사용하더라도 Agent의 요청 프록시 능력을 방해하지 않습니다.
Templating:
- Vault 서버와 상호작용하는 템플릿 언어 기능은 안정적인 Vault API를 사용해 시크릿을 검색·갱신합니다.
- 더 새로운 Vault 릴리스에서 새 시크릿 엔진 유형이 도입되더라도, 템플릿을 통해 접근하는 데 Agent 업그레이드가 필요하지 않아야 합니다.
Vault Agent가 더 새로운 경우
더 새로운 Vault Agent 버전은, Agent가 이전 Vault 서버 버전에 존재하지 않는 기능에 의존하면 이전 버전의 Vault와 동작하지 않습니다. 가능한 한 새 기능은 opt-in으로 출시하고, 이전 Vault 서버 인스턴스에 연결할 때 우아한 성능 저하(graceful degradation)를 제공합니다. 다만 변화가 관련될 때는(심각한 보안 결함 패치 같은 아주 좋은 이유가 없는 한) 새 기능이 필요할 수도 있습니다.
Auto-auth:
- Agent는 이전 버전의 Vault에서는 사용할 수 없는 인증 방법을 지원할 수 있습니다.
- Agent는 기존 인증 방법에 대해 더 새로운 기능을 사용할 수 있습니다.
Proxy:
- Agent는 들어오는 요청을 단순히 미러링하므로 프록시에서 비호환성이 드러날 가능성은 낮지만, 새 기능은 없을 수 있습니다.
- 예시: 클라이언트 제어 일관성 지원이 Agent에 추가됐을 때, Agent는 응답에서
X-Vault-Index헤더를 찾기 시작하고 프록시된 요청에X-Vault-Index헤더를 제공하기 시작했습니다. 이 헤더를 사용하지 않는 이전 Vault Enterprise 서버는 새 요청 헤더를 무시하고 이 헤더도 내보내지 않습니다. Agent 프록시 동작은 그대로 유지되어 새 기능을 활용할 수는 없지만, 기존 동작이 방해받지도 않았습니다.
Templating:
- Agent 템플릿과 이전 Vault 서버 사이의 비호환성은 예상하지 않습니다. 다만 업스트림 Vault 서버에서 제공되지 않는 기능을 요청하는 템플릿을 작성할 수는 있습니다. 예:
{{ with secret "secret/my-secret?some-new-option" }} - 기존 배포를 깨뜨리는 템플릿 변경을 의도적으로 만들지는 않습니다.