Vault Secrets Store CSI provider 구성

Vault Secrets Store CSI provider 구성

다음 명령줄 인자는 Vault Secrets Store CSI provider가 지원합니다. 대부분의 설정은 우선순위가 오름차순으로 다음을 통해 설정을 지원합니다.

  • 환경 변수
  • 명령줄 인자
  • Secret Provider Class 매개변수

Helm 차트를 통해 설치한다면 예를 들어 --set "csi.extraArgs={-debug=true}"로 설정할 수 있습니다.

출처: 문서

본문

  • -cache-size (int: 1000) — 메모리에 캐시될 Vault 토큰의 최대 수를 설정합니다. 시크릿을 마운트하는 같은 노드의 각 파드에 대해 하나의 Vault 토큰이 저장됩니다. 0으로 설정하면 캐시를 비활성화하고 각 볼륨 마운트 요청이 Vault에 다시 인증하도록 강제합니다.
  • -debug (bool: false) — true로 설정하면 디버그 수준 로깅을 활성화합니다.
  • -endpoint (string: "/tmp/vault.sock") — provider가 드라이버로부터 gRPC 호출을 수신할 유닉스 소켓 경로.
  • -health-addr (string: ":8080") — 상태를 보고하는 HTTP 리스너의 주소.
  • -hmac-secret-name (string: "vault-csi-provider-hmac-key") — provider가 시크릿 버전 해시 생성을 위한 HMAC 키를 저장하기 위해 만드는 Kubernetes 시크릿 이름을 구성합니다.
  • -vault-addr (string: "https://127.0.0.1:8200") — Vault에 연결하기 위한 기본 주소. VAULT_ADDR 환경 변수로도 지정할 수 있습니다. 참고: Vault 주소는 Helm 차트 설치 시에만 설정하는 것을 강력히 권장합니다. Helm 차트는 캐싱·갱신을 위해 Vault Secrets Store CSI provider의 사이드카로 Vault Agent를 설치합니다. 여기에서 vaultAddress를 설정하면 Vault Secrets Store CSI provider가 Vault Agent 캐시를 우회하게 됩니다.
  • -vault-mount (string: "kubernetes") — Kubernetes 인증을 위한 기본 Vault 마운트 경로. Secret Provider Class 개체별로 재정의할 수 있습니다.
  • -vault-namespace (string: "") — (v1.1.0+) Vault 요청의 기본 Vault 네임스페이스. VAULT_NAMESPACE 환경 변수로도 지정할 수 있습니다.
  • -vault-tls-ca-cert (string: "") — (v1.1.0+) Vault에 대해 신뢰할 단일 PEM 인코딩 CA 인증서의 디스크 경로. -vault-tls-ca-directory보다 우선합니다. VAULT_CACERT 환경 변수로도 지정할 수 있습니다.
  • -vault-tls-ca-directory (string: "") — (v1.1.0+) Vault에 대해 신뢰할 PEM 인코딩 CA 인증서가 있는 디스크 디렉토리. VAULT_CAPATH 환경 변수로도 지정할 수 있습니다.
  • -vault-tls-server-name (string: "") — (v1.1.0+) TLS로 Vault에 연결할 때 SNI 호스트로 사용할 이름. VAULT_TLS_SERVER_NAME 환경 변수로도 지정할 수 있습니다.
  • -vault-tls-client-cert (string: "") — (v1.1.0+) Vault와 mTLS 통신을 위한 PEM 인코딩 클라이언트 인증서의 디스크 경로. 설정하면 -vault-tls-client-key도 필요합니다. VAULT_CLIENT_CERT 환경 변수로도 지정할 수 있습니다.
  • -vault-tls-client-key (string: "") — (v1.1.0+) Vault와 mTLS 통신을 위한 PEM 인코딩 클라이언트 키의 디스크 경로. 설정하면 -vault-tls-client-cert도 필요합니다. VAULT_CLIENT_KEY 환경 변수로도 지정할 수 있습니다.
  • -vault-tls-skip-verify (bool: false) — (v1.1.0+) TLS 인증서 검증 비활성화. VAULT_SKIP_VERIFY 환경 변수로도 지정할 수 있습니다.
  • -version (bool: false) — 버전 정보를 출력하고 종료합니다.

Secret Provider Class 매개변수

다음 매개변수는 Vault provider가 지원합니다. 각 매개변수는 SecretProviderClass 개체의 spec.parameters 아래 항목입니다. 전체 구조는 예시에 설명되어 있습니다.

  • roleName (string: "") — Vault 로그인 시 사용할 역할 이름.
  • vaultAddress (string: "") — Vault 서버의 주소. 참고: Vault 주소는 Helm 차트 설치 시에만 설정하는 것을 강력히 권장합니다. Helm 차트는 캐싱·갱신을 위해 Vault Secrets Store CSI provider의 사이드카로 Vault Agent를 설치합니다. 여기에서 vaultAddress를 설정하면 Vault Secrets Store CSI provider가 Vault Agent 캐시를 우회하게 됩니다.
  • vaultNamespace (string: "") — 사용할 Vault 네임스페이스.
  • vaultSkipTLSVerify (string: "false") — true로 설정하면 Vault 서버 인증서 검증을 건너뜁니다. 프로덕션에서는 true로 설정하는 것을 권장하지 않습니다.
  • vaultCACertPath (string: "") — Vault 서버 인증서 검증 시 Vault CA 인증서를 찾을 수 있는 디스크 경로.
  • vaultCADirectory (string: "") — Vault 서버 인증서 검증 시 Vault CA 인증서를 찾을 수 있는 디스크 디렉토리.
  • vaultTLSClientCertPath (string: "") — Vault와 mTLS 통신을 위한 클라이언트 인증서를 찾을 수 있는 디스크 경로.
  • vaultTLSClientKeyPath (string: "") — Vault와 mTLS 통신을 위한 클라이언트 키를 찾을 수 있는 디스크 경로.
  • vaultTLSServerName (string: "") — TLS로 연결할 때 SNI 호스트로 사용할 이름.
  • vaultAuthMountPath (string: "kubernetes") — 로그인에 사용하는 인증 마운트 이름. Kubernetes 또는 JWT 인증 마운트일 수 있습니다. vaultKubernetesMountPath와 상호 배타적입니다.
  • vaultKubernetesMountPath (string: "kubernetes") — 로그인에 사용하는 인증 마운트 이름. Kubernetes 또는 JWT 인증 마운트일 수 있습니다. vaultAuthMountPath와 상호 배타적입니다.
  • audience (string: "") — TokenRequest API로 생성되는 요청 파드의 서비스 계정 토큰에 대한 사용자 지정 audience를 지정합니다. 결과 토큰은 Vault에 인증하는 데 사용되므로, Kubernetes 인증 역할에 audience를 지정했다면 여기서 지정한 audience와 일치해야 합니다. 설정하지 않으면 토큰 audience는 Kubernetes 클러스터의 기본 API audience가 됩니다.
  • objects (array) — Vault에서 가져올 시크릿 배열.
    • objectName (string: "") — 시크릿 프로바이더 클래스 내에서 참조할 수 있고 시크릿 파일의 이름인 개체의 별칭.
    • method (string: "GET") — HTTP 요청 유형. 지원 값은 "GET"과 "PUT".
    • secretPath (string: "") — 시크릿이 위치한 Vault의 경로. HTTP GET 메서드로 가져오는 시크릿의 경우 secretPath에 선택적 URI 매개변수를 포함할 수 있습니다. 예를 들어 KV2 시크릿의 버전: secretPath: "secret/data/test?version=1".
    • secretKey (string: "") — 추출할 Vault 시크릿의 키. 생략하면 Vault의 전체 응답이 JSON으로 기록됩니다.
    • filePermission (integer: 0o644) — 이 시크릿의 파일에 설정할 파일 권한.
    • encoding (string: "utf-8") — 시크릿 값의 인코딩. utf-8(기본값), hex, base64 값 디코딩을 지원합니다.
    • secretArgs (map: {}) — 특정 시크릿에 대해 Vault로 보내는 추가 인자. 인자는 시크릿 엔진에 따라 다를 수 있습니다. 예: secretArgs: { common_name: 'test.example.com', ttl: '24h' }. secretArgs는 HTTP 요청 본문의 일부로 전송됩니다. 따라서 새 인증서 생성에 사용하는 요청 같은 HTTP PUT/POST 요청에만 효과가 있습니다. HTTP GET으로 가져오는 시크릿에 추가 매개변수를 제공하려면 secretPath에 선택적 URI 매개변수를 포함하세요.

더 알아보기 (Learn more)