Vault를 시크릿 백엔드로 사용한 WAN 페더레이션

Vault를 시크릿 백엔드로 사용한 WAN 페더레이션 (WAN Federation with Vault Backend)

이 문서는 Vault를 시크릿 백엔드로 사용해 여러 Kubernetes 클러스터를 페더레이션하는 방법을 설명해요. 기본 데이터센터(dc1)에 Vault 서버를 두고, Vault 인젝터·Kubernetes 인증 메서드 구성부터 데이터 통합까지 dc1·dc2 클러스터를 연결하는 과정을 다룰게요.

출처: 문서

본문

이 페이지는 Vault를 시크릿 백엔드로 사용해 여러 Kubernetes 클러스터를 페더레이션하는 방법을 설명합니다. 사용 사례와 작동 방식에 대한 자세한 내용은 멀티 클러스터 개요를 참조하세요.

Kubernetes 시크릿 사용과 Vault 사용의 차이 (Differences Between Using Kubernetes Secrets vs. Vault)

Kubernetes 클러스터 간 페더레이션 페이지는 Kubernetes 시크릿을 시크릿 백엔드로 사용하는 메시 게이트웨이 기반 WAN 페더레이션의 개요를 제공합니다. Vault를 시크릿 백엔드로 사용할 때는 서로 다른 시스템과 데이터 통합 구성이 있는데, 이 페이지의 사용법 (Usage) 섹션에서 설명합니다. 또 다른 주요 차이는 Vault를 사용할 때 각 데이터센터에서 페더레이션 시크릿 (Federation Secret)을 내보내고 가져올(exports and imports) 필요가 없다는 점입니다.

사용법 (Usage)

예상되는 사용 사례는 Kubernetes 클러스터에서 WAN 페더레이션을 만드는 것입니다. 다음 절차는 두 클러스터 dc1과 dc2 사이에 Vault를 시크릿 백엔드로 사용하는 WAN 페더레이션을 만듭니다. dc1은 기본 Consul 클러스터 역할을 하며 Vault 서버 설치도 포함합니다. dc2는 보조 Consul 클러스터입니다.

각 클러스터의 Vault 인젝터는 클러스터의 모든 파드에 Vault 에이전트가 주입되도록 보장합니다.

각 Consul 파드의 Vault 에이전트는 외부에서 접근 가능한 엔드포인트에서 Vault와 직접 통신합니다. Consul 파드에는 또한 파드가 필요로 하는 시크릿과 Vault 에이전트가 해당 시크릿을 로컬로 저장해야 하는 경로를 구성하는 Vault 어노테이션도 구성됩니다.

두 데이터센터는 메시 게이트웨이를 사용해 페더레이션됩니다. 이 통신 토폴로지는 멀티 클러스터 페더레이션 개요의 메시 게이트웨이를 통한 WAN 페더레이션 섹션에서도 설명합니다.

Vault 설치 (Install Vault)

이 설정에서는 기본 데이터센터(dc1) Kubernetes 클러스터에 Vault 서버를 배포합니다. 이 클러스터는 기본 Consul 데이터센터이기도 합니다. 보조 데이터센터(dc2) Kubernetes 클러스터의 Vault Helm 설치를 외부 서버로 사용하도록 구성합니다. 이렇게 하면 두 Consul 데이터센터가 사용하는 단일 Vault 서버 클러스터가 생깁니다.

참고: 데모 목적으로 다음 예제는 dev 모드로 Vault 서버를 배포합니다. 프로덕션 설치에는 dev 모드를 사용하지 마세요. 프로덕션에서 Vault를 설치하는 방법에 대한 안내는 Vault 배포 가이드를 참조하세요.

  1. 현재 Kubernetes 컨텍스트를 기본 데이터센터(dc1)를 대상으로 변경합니다.

    $ kubectl config use-context <context for dc1>
    
  2. 이제 Helm 설치에 아래 값 파일을 사용합니다.

    vault-dc1.yaml:

    server:
      dev:
        enabled: true
      service:
        enabled: true
        type: LoadBalancer
    ui:
      enabled: true
    
    $ helm install vault-dc1 --values vault-dc1.yaml hashicorp/vault --wait
    

로컬 환경 구성 (Configuring your local environment)

  1. 가십 키를 생성할 수 있도록 Consul을 로컬에 설치합니다. Consul 설치 페이지의 사전 컴파일된 바이너리 (Precompiled Binaries) 섹션을 참조하세요.

  2. VAULT_TOKEN을 기본값으로 설정합니다.

    $ export VAULT_ADDR=root
    
  3. Vault 서버 로드 밸런서의 외부 IP 또는 DNS 이름을 가져옵니다.

    EKS

    GKE

    AKS

    EKS에서는 다음 명령으로 Vault 서버 로드 밸런서의 호스트 이름을 가져올 수 있습니다:

    $ export VAULT_SERVER_HOST=$(kubectl get svc vault-dc1 -o jsonpath='{.status.loadBalancer.ingress[0].hostname}')
    

    GKE에서는 다음 명령으로 Vault 서버 로드 밸런서의 IP 주소를 가져올 수 있습니다:

    $ export VAULT_SERVER_HOST=$(kubectl get svc vault-dc1 -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
    

    AKS에서는 다음 명령으로 Vault 서버 로드 밸런서의 IP 주소를 가져올 수 있습니다:

    $ export VAULT_SERVER_HOST=$(kubectl get svc vault-dc1 --output jsonpath='{.status.loadBalancer.ingress[0].ip}')
    
  4. VAULT_ADDR 환경 변수를 설정합니다.

    $ export VAULT_ADDR=http://${VAULT_SERVER_HOST}:8200
    

시스템 통합 (Systems Integration)

Kubernetes에서 Vault를 서비스 메시 인증서 제공자로 활성화하는 주요 절차는 두 가지입니다.

다음 단계는 한 번만 완료합니다:

  1. Vault KV 시크릿 엔진 - 버전 2 활성화.
  2. Vault PKI 엔진 활성화.

클러스터의 각 데이터센터에 대해 다음 단계를 반복합니다:

  1. Consul 데이터센터 설치에 Vault 인젝터 설치하기.
  2. Consul 데이터센터의 작업을 인증·승인하도록 Vault에서 Kubernetes 인증 메서드 구성하기.
  3. Consul 데이터센터에서 Vault를 시크릿 백엔드로 활성화하기.

Vault 시크릿 엔진 구성 (Configure Vault Secrets engines)

  1. 가십 암호화 키와 ACL 복제 토큰(global.acls.replicationToken)을 저장하기 위해 Vault KV 시크릿 엔진 - 버전 2를 활성화합니다.

    $ vault secrets enable -path=consul kv-v2
    
  2. Consul 서버 TLS 인증서 발급에 Vault를 활용하기 위해 Vault PKI 엔진을 활성화합니다.

    $ vault secrets enable pki
    
    $ vault secrets tune -max-lease-ttl=87600h pki
    

기본 데이터센터 (dc1) (Primary Datacenter)

  1. Vault에서 시크릿에 접근하는 데 사용되는 Vault 인젝터를 Consul Kubernetes 클러스터(dc1)에 설치합니다.

    참고: 기본 데이터센터(dc1)에서는 Vault 서버가 같은 기본 데이터센터(dc1) 클러스터에 있으므로 injector.externalvaultaddr 값을 구성할 필요가 없습니다.

    vault-dc1.yaml:

    server:
      dev:
        enabled: true
      service:
        enabled: true
        type: LoadBalancer
    injector:
      enabled: true
      authPath: auth/kubernetes-dc1
    ui:
      enabled: true
    

    다음으로 Kubernetes 클러스터에 Vault를 설치합니다.

    $ helm upgrade vault-dc1 --values vault-dc1.yaml hashicorp/vault --wait
    
  2. 기본 데이터센터(dc1)에 대한 Kubernetes 인증 메서드를 Vault에서 구성합니다.

    $ vault auth enable -path=kubernetes-dc1 kubernetes
    

    Consul은 Vault와 같은 데이터센터 클러스터에 있으므로 Vault 인증 메서드는 자체 CA 인증서와 JWT를 사용해 Consul dc1 서비스 계정 요청을 인증할 수 있습니다. 따라서 dc1 Kubernetes 인증 메서드에 token_reviewer와 kubernetes_ca_cert를 설정할 필요가 없습니다.

  3. Kubernetes API 호스트로 인증 메서드를 구성합니다.

    $ vault write auth/kubernetes-dc1/config kubernetes_host=https://kubernetes.default.svc
    
  4. 기본 데이터센터(dc1)에서 Vault를 시크릿 백엔드로 활성화합니다. 하지만 아직 Helm 설치 명령은 적용하지 않습니다. 데이터 통합 (Data Integration) 섹션 후에 Helm 업그레이드 명령을 발행합니다.

    consul-dc1.yaml:

    global:
      secretsBackend:
        vault:
          enabled: true
    

보조 데이터센터 (dc2) (Secondary Datacenter)

  1. 보조 데이터센터(dc2)에 Vault 인젝터를 설치합니다.

    보조 데이터센터(dc2)에서는 기본 데이터센터(dc1)의 Vault 서버 외부 주소를 가리키도록 externalvaultaddr 값을 구성합니다.

    Kubernetes 컨텍스트를 보조 데이터센터(dc2)를 대상으로 변경합니다:

    $ kubectl config use-context <context for dc2>
    

    vault-dc2.yaml:

    server:
      enabled: false
    injector:
      enabled: true
      externalVaultAddr: ${VAULT_ADDR}
      authPath: auth/kubernetes-dc2
    

    다음으로 Kubernetes 클러스터에 Vault를 설치합니다.

    $ helm install vault-dc2 --values vault-dc2.yaml hashicorp/vault --wait
    
  2. 데이터센터에 대한 Kubernetes 인증 메서드를 Vault에서 구성합니다.

    $ vault auth enable -path=kubernetes-dc2 kubernetes
    
  3. 보조 데이터센터(dc2)에 Kubernetes API에 접근할 수 있는 서비스 계정을 만듭니다. 보조 데이터센터(dc2) 인증 메서드의 경우 먼저 기본 데이터센터(dc1) 클러스터의 Vault 서버가 보조 데이터센터(dc2) 클러스터의 Kubernetes API와 통신할 수 있게 하는 서비스 계정을 만들어야 합니다.

    $ cat <<EOF >> auth-method-serviceaccount.yaml
    # auth-method.yaml
    apiVersion: rbac.authorization.k8s.io/v1
    kind: ClusterRoleBinding
    metadata:
      name: vault-dc2-auth-method
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: system:auth-delegator
    subjects:
    - kind: ServiceAccount
      name: vault-dc2-auth-method
      namespace: default
    ---
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: vault-dc2-auth-method
      namespace: default
    EOF
    
    $ kubectl apply --values auth-method-serviceaccount.yaml
    
  4. 다음으로 그 서비스 계정 시크릿에서 토큰과 CA 인증서를 가져와야 합니다.

    $ export K8S_DC2_CA_CERT="$(kubectl get secret `kubectl get serviceaccounts vault-dc2-auth-method --output jsonpath='{.secrets[0].name}'` --output jsonpath='{.data.ca\.crt}' | base64 --decode)"
    
    $ export K8S_DC2_JWT_TOKEN="$(kubectl get secret `kubectl get serviceaccounts vault-dc2-auth-method --output jsonpath='{.secrets[0].name}'` --output jsonpath='{.data.token}' | base64 --decode)"
    
  5. 서비스 계정의 JWT 토큰으로 인증 메서드를 구성합니다. 먼저 보조 Kubernetes 클러스터에 있는 보조 Consul 데이터센터(dc2)의 외부에서 접근 가능한 주소를 가져옵니다. 그런 다음 인증 메서드 구성에 kubernetes_host를 설정합니다.

    $ export KUBE_API_URL_DC2=$(kubectl config view --output jsonpath="{.clusters[?(@.name == \"$(kubectl config current-context)\")].cluster.server}")
    
    $ vault write auth/kubernetes-dc2/config \
      kubernetes_host="${KUBE_API_URL_DC2}" \
      token_reviewer_jwt="${K8S_DC2_JWT_TOKEN}" \
      kubernetes_ca_cert="${K8S_DC2_CA_CERT}"
    
  6. 보조 Consul 데이터센터(dc2)에서 Vault를 시크릿 백엔드로 활성화합니다. 하지만 아직 Helm 설치 명령은 적용하지 않습니다. 데이터 통합 (Data Integration) 섹션 후에 Helm 업그레이드 명령을 발행합니다.

    values-dc2.yaml:

    global:
      secretsBackend:
        vault:
          enabled: true
    

데이터 통합 (Data Integration)

Kubernetes에서 Vault를 서비스 메시 인증서 제공자로 사용하는 주요 절차는 두 가지입니다.

다음 단계는 한 번만 완료합니다:

  1. 시크릿을 Vault에 저장합니다.
  2. 시크릿에 원하는 수준의 접근을 승인하는 Vault 정책을 만듭니다.

클러스터의 각 데이터센터에 대해 다음 단계를 반복합니다:

  1. 정책을 접근이 필요한 각 Consul on Kubernetes 서비스 계정에 연결하는 Vault Kubernetes 인증 역할을 만듭니다.
  2. Consul on Kubernetes Helm 차트를 업데이트합니다.

시크릿과 정책 (Secrets and Policies)

  1. ACL 부트스트랩·복제 토큰, 가십 암호화 키, 루트 CA 인증서 시크릿을 Vault에 저장합니다.

    $ vault kv put consul/secret/gossip key="$(consul keygen)"
    
    $ vault kv put consul/secret/bootstrap token="$(uuidgen | tr '[:upper:]' '[:lower:]')"
    
    $ vault kv put consul/secret/replication token="$(uuidgen | tr '[:upper:]' '[:lower:]')"
    
    $ vault write pki/root/generate/internal common_name="Consul CA" ttl=87600h
    
  2. 시크릿에 원하는 수준의 접근을 승인하는 Vault 정책을 만듭니다.

    $ vault policy write gossip - <<EOF
    path "consul/data/secret/gossip" {
      capabilities = ["read"]
    }
    EOF
    
    $ vault policy write bootstrap-token - <<EOF
    path "consul/data/secret/bootstrap" {
      capabilities = ["read"]
    }
    EOF
    
    $ vault policy write replication-token - <<EOF
    path "consul/data/secret/replication" {
      capabilities = ["read"]
    }
    EOF
    
    $ vault policy write ca-policy - <<EOF
    path "pki/cert/ca" {
      capabilities = ["read"]
    }
    EOF
    

기본 데이터센터 사전 설치 (dc1) (Pre-installation for Primary Datacenter)

  1. Kubernetes 컨텍스트를 기본 데이터센터(dc1)를 대상으로 변경합니다:

    $ kubectl config use-context <context for dc1>
    

기본 데이터센터 (dc1) (Primary Datacenter)

  1. 서버 TLS 및 서비스 메시 인증서 정책을 만듭니다.

    $ vault policy write consul-cert-dc1 - <<EOF
    path "pki/issue/consul-cert-dc1"
    {
      capabilities = ["create","update"]
    }
    EOF
    
    $ vault policy write connect-ca-dc1 - <<EOF
    path "/sys/mounts" {
      capabilities = [ "read" ]
    }
    path "/sys/mounts/connect_root" {
      capabilities = [ "create", "read", "update", "delete", "list" ]
    }
    path "/sys/mounts/dc1/connect_inter" {
      capabilities = [ "create", "read", "update", "delete", "list" ]
    }
    path "/connect_root/*" {
      capabilities = [ "create", "read", "update", "delete", "list" ]
    }
    path "/dc1/connect_inter/*" {
      capabilities = [ "create", "read", "update", "delete", "list" ]
    }
    EOF
    
  2. 정책을 접근이 필요한 각 Consul on Kubernetes 서비스 계정에 연결하는 Vault Kubernetes 인증 역할을 만듭니다. Vault의 각 인증 메서드에 대해 Consul 서버, Consul 클라이언트, server-acl-init 잡, Consul 서버 CA용 역할이 필요합니다.

    $ vault write auth/kubernetes-dc1/role/consul-server \
            bound_service_account_names=consul-server \
            bound_service_account_namespaces="default" \
            policies="gossip,connect-ca-dc1,consul-cert-dc1" \
            ttl=24h
    
    $ vault write auth/kubernetes-dc1/role/consul-client \
            bound_service_account_names=consul-client \
            bound_service_account_namespaces="default" \
            policies="gossip" \
            ttl=24h
    
    $ vault write auth/kubernetes-dc1/role/server-acl-init \
            bound_service_account_names=consul-server-acl-init \
            bound_service_account_namespaces="default" \
            policies="bootstrap-token,replication-token" \
            ttl=24h
    
    $ vault write auth/kubernetes-dc1/role/consul-ca \
            bound_service_account_names="*" \
            bound_service_account_namespaces="default" \
            policies=ca-policy \
            ttl=1h
    
  3. 서버 TLS 인증서 역할을 만듭니다.

    $ vault write pki/roles/consul-cert-dc1 \
      allowed_domains="dc1.consul,consul-server,consul-server.default,consul-server.default.svc" \
      allow_subdomains=true \
      allow_bare_domains=true \
      allow_localhost=true \
      generate_lease=true \
      max_ttl="720h"
    
  4. 기본 데이터센터(dc1)에서 Consul을 구성하고 설치합니다.

    consul-dc1.yaml:

    global:
      datacenter: "dc1"
      name: consul
      secretsBackend:
        vault:
          enabled: true
          consulServerRole: consul-server
          consulClientRole: consul-client
          consulCARole: consul-ca
          manageSystemACLsRole: server-acl-init
          connectCA:
            address: http://vault-dc1.default:8200
            rootPKIPath: connect_root/
            intermediatePKIPath: dc1/connect_inter/
            authMethodPath: kubernetes-dc1
      tls:
        enabled: true
        enableAutoEncrypt: true
        caCert:
          secretName: pki/cert/ca
      federation:
        enabled: true
        createFederationSecret: false
      acls:
        manageSystemACLs: true
        createReplicationToken: true
        bootstrapToken:
          secretName: consul/data/secret/bootstrap
          secretKey: token
        replicationToken:
          secretName: consul/data/secret/replication
          secretKey: token
      gossipEncryption:
        secretName: consul/data/secret/gossip
        secretKey: key
    server:
      replicas: 1
      serverCert:
        secretName: "pki/issue/consul-cert-dc1"
    connectInject:
      replicas: 1
      enabled: true
    meshGateway:
      enabled: true
      replicas: 1
    

    다음으로 기본 Kubernetes 클러스터(dc1)에 Consul을 설치합니다.

    $ helm install consul-dc1 --values consul-dc1.yaml hashicorp/consul
    

보조 데이터센터 사전 설치 (dc2) (Pre-installation for Secondary Datacenter)

  1. Consul on Kubernetes Helm 차트를 업데이트합니다. 보조 데이터센터(dc2)의 경우 기본 데이터센터(dc1) 클러스터에서 메시 게이트웨이의 주소를 가져와야 합니다.

    Kubernetes 컨텍스트가 dc1을 대상으로 유지되도록 하고, 보조 데이터센터(dc2)용 Consul Helm 차트에서 사용할 MESH_GW_HOST 환경 변수를 설정합니다.

    $ kubectl config use-context <context for dc1>
    

    다음으로 메시 게이트웨이 주소를 가져옵니다:

    EKS

    GKE

    AKS

    $ export MESH_GW_HOST=$(kubectl get svc consul-mesh-gateway --output jsonpath='{.status.loadBalancer.ingress[0].hostname}')
    
    $ export MESH_GW_HOST=$(kubectl get svc consul-mesh-gateway --output jsonpath='{.status.loadBalancer.ingress[0].ip}')
    
    $ export MESH_GW_HOST=$(kubectl get svc consul-mesh-gateway --output jsonpath='{.status.loadBalancer.ingress[0].ip}')
    
  2. Kubernetes 컨텍스트를 보조 데이터센터(dc2)를 대상으로 변경합니다:

    $ kubectl config use-context <context for dc2>
    

보조 데이터센터 (dc2) (Secondary Datacenter)

  1. 서버 TLS 및 서비스 메시 인증서 정책을 만듭니다.

    $ vault policy write consul-cert-dc2 - <<EOF
    path "pki/issue/consul-cert-dc2"
    {
      capabilities = ["create","update"]
    }
    EOF
    
    $ vault policy write connect-ca-dc2 - <<EOF
    path "/sys/mounts" {
      capabilities = [ "read" ]
    }
    path "/sys/mounts/connect_root" {
      capabilities = [ "create", "read", "update", "delete", "list" ]
    }
    path "/sys/mounts/dc2/connect_inter" {
      capabilities = [ "create", "read", "update", "delete", "list" ]
    }
    path "/connect_root/*" {
      capabilities = [ "create", "read", "update", "delete", "list" ]
    }
    path "/dc2/connect_inter/*" {
      capabilities = [ "create", "read", "update", "delete", "list" ]
    }
    EOF
    
  2. 정책을 접근이 필요한 각 Consul on Kubernetes 서비스 계정에 연결하는 Vault Kubernetes 인증 역할을 만듭니다. Vault의 각 인증 메서드에 대해 Consul 서버, Consul 클라이언트, server-acl-init 잡, Consul 서버 CA용 역할이 필요합니다.

    $ vault write auth/kubernetes-dc2/role/consul-server \
            bound_service_account_names=consul-server \
            bound_service_account_namespaces="default" \
            policies="gossip,connect-ca-dc2,consul-cert-dc2,replication-token" \
            ttl=24h
    
    $ vault write auth/kubernetes-dc2/role/consul-client \
            bound_service_account_names=consul-client \
            bound_service_account_namespaces="default" \
            policies="gossip" \
            ttl=24h
    
    $ vault write auth/kubernetes-dc2/role/server-acl-init \
            bound_service_account_names=consul-server-acl-init \
            bound_service_account_namespaces="default" \
            policies="replication-token" \
            ttl=24h
    
    $ vault write auth/kubernetes-dc2/role/consul-ca \
            bound_service_account_names="*" \
            bound_service_account_namespaces="default" \
            policies=ca-policy \
            ttl=1h
    
  3. 서버 TLS 인증서 역할을 만듭니다.

    $ vault write pki/roles/consul-cert-dc2 \
      allowed_domains="dc2.consul,consul-server,consul-server.default,consul-server.default.svc" \
      allow_subdomains=true \
      allow_bare_domains=true \
      allow_localhost=true \
      generate_lease=true \
      max_ttl="720h"
    
  4. 보조 데이터센터(dc2)에서 Consul을 구성하고 설치합니다.

    참고: 보조 데이터센터에서 Vault를 서비스 메시(connect) CA로 구성하려면 루트 CA 경로가 동일한지 확인해야 합니다. 중간(intermediate) 경로는 데이터센터마다 다릅니다. 보조 데이터센터의 connectCA Helm 구성에서는 예를 들어 이 구성이 의도된 데이터센터로 접두사가 붙은(예: dc2/connect-intermediate) intermediatePKIPath를 지정할 수 있습니다.

    consul-dc2.yaml:

    global:
      datacenter: "dc2"
      name: consul
      secretsBackend:
        vault:
          enabled: true
          consulServerRole: consul-server
          consulClientRole: consul-client
          consulCARole: consul-ca
          manageSystemACLsRole: server-acl-init
          connectCA:
            address: ${VAULT_ADDR}
            rootPKIPath: connect_root/
            intermediatePKIPath: dc2/connect_inter/
            authMethodPath: kubernetes-dc2
      tls:
        enabled: true
        enableAutoEncrypt: true
        caCert:
          secretName: "pki/cert/ca"
      federation:
        enabled: true
        primaryDatacenter: dc1
        k8sAuthMethodHost: ${KUBE_API_URL_DC2}
        primaryGateways:
        - ${MESH_GW_HOST}:443
      acls:
        manageSystemACLs: true
        replicationToken:
          secretName: consul/data/secret/replication
          secretKey: token
      gossipEncryption:
        secretName: consul/data/secret/gossip
        secretKey: key
    server:
      replicas: 1
      serverCert:
        secretName: "pki/issue/consul-cert-dc2"
    connectInject:
      replicas: 1
      enabled: true
    controller:
      enabled: true
    meshGateway:
      enabled: true
      replicas: 1
    

    다음으로 consul Kubernetes 클러스터(dc2)에 Consul을 설치합니다.

    $ helm install consul-dc2 -f consul-dc2.yaml hashicorp/consul
    

다음 단계 (Next steps)

Vault를 시크릿 백엔드로 사용해 보조 데이터센터(dc2)를 기본 데이터센터(dc1)와 페더레이션하는 과정을 완료했습니다. 모든 것이 올바르게 구성되었는지 검증하려면 두 데이터센터의 모든 파드가 실행(running) 상태인지 확인하세요.

Vault에 저장할 수 있는 특정 Consul 시크릿에 대한 추가 정보는 Vault를 시크릿 백엔드로 사용하기 문서의 데이터 통합 (Data Integration)을 참조하세요.

더 알아보기 (Learn more)