플러그인 관리

플러그인 관리

외부 플러그인이 내장 플러그인보다 유리한 점은 별도의 프로세스에서 실행되므로 추가 환경 변수를 지정할 수 있다는 거예요.

출처: 문서

본문

플러그인 환경 변수

Vault 1.16.0은 플러그인별 환경 변수에 주어진 우선순위를 변경해 Vault의 환경보다 우선하도록 했어요. 전체 세부 사항은 업그레이드 노트를 참조하세요.

플러그인이 시작되어야 하는 환경 변수마다 -env 플래그를 한 번씩 사용하세요.

$ vault plugin register -sha256=<SHA256 Hex value of the plugin binary> \
    -env REGION=eu \
    -env TOKEN_FILE=/var/run/token \
    secret \                  # type
    passthrough-plugin

Success! Registered plugin: passthrough-plugin

플러그인별 HTTP 프록시 설정

많은 도구와 라이브러리는 Go 표준 라이브러리의 기본 HTTP 클라이언트를 포함해 HTTP_PROXY, HTTPS_PROXY, NO_PROXY 환경 변수를 자동으로 소비해 HTTP 프록시 설정을 구성해요. 이러한 환경 변수를 사용해 플러그인마다 다른 네트워크 프록시를 구성할 수 있어요.

커스텀 환경 변수를 활용하려면 외부 플러그인을 사용해야 해요. 내장 플러그인을 사용 중이라면 이 워크플로를 사용하기 위해 외부 버전을 다운로드해 등록할 수 있어요. 최신 사전 빌드 플러그인 바이너리는 HashiCorp 릴리스 페이지에서 확인하세요.

커뮤니티 플러그인

$ vault plugin register -sha256=<SHA256 Hex value of the plugin binary> \
    -env HTTP_PROXY=eu.example.com \
    auth \
    jwt-eu

Success! Registered plugin: jwt-eu

$ vault plugin register -sha256=<SHA256 Hex value of the plugin binary> \
    -env HTTP_PROXY=us.example.com \
    auth \
    jwt-us

Success! Registered plugin: jwt-us

엔터프라이즈 플러그인

$ vault plugin register -version=<version of the plugin> \
    -env HTTP_PROXY=example.com \
    secret \
    vault-plugin-secrets-keymgmt

Success! Registered plugin: vault-plugin-secrets-keymgmt

그런 다음 각 플러그인을 자체 경로에서 활성화하고, 그중 하나 또는 다른 하나와 연관되어야 하는 클라이언트를 적절히 구성할 수 있어요.

$ vault auth enable jwt-eu
Success! Enabled the jwt-eu auth method at: auth/jwt-eu/

$ vault auth enable jwt-us
Success! Enabled the jwt-us auth method at: auth/jwt-us/

$ vault secrets enable vault-plugin-secrets-keymgmt
Success! Enabled the vault-plugin-secrets-keymgmt secrets engine at: vault-plugin-secrets-keymgmt/

트러블슈팅

인식할 수 없는 원격 플러그인 메시지

플러그인 시크릿 엔진이나 인증 메서드를 활성화할 때 다음과 같은 오류가 발생하면:

Unrecognized remote plugin message:

This usually means that the plugin is either invalid or simply
needs to be recompiled to support the latest protocol.

Vault 프로세스에 mlock이 활성화되어 있는지 확인하고, 활성화되어 있다면 플러그인 바이너리에 대해 다음 명령을 실행하세요.

$ sudo setcap cap_ipc_lock=+ep <plugin-binary>

더 알아보기 (Learn more)