【问题标题】:How to configure S3 as backend storage for hashicorp vault如何将 S3 配置为 hashcorp vault 的后端存储
【发布时间】:2021-01-24 16:36:08
【问题描述】:

我有一个正在运行的 EKS 集群我想使用 Terraform 在该集群上部署 Vault,我的代码在部署时运行良好。这是我的 main.tf

data "aws_eks_cluster" "default" {
  name = var.eks_cluster_name
}

data "aws_eks_cluster_auth" "default" {
  name = var.eks_cluster_name
}

resource "kubernetes_namespace" "vault" {
  metadata {
        name = "vault"
  }
}

resource "helm_release" "vault" {
  name      = "vault"
  repository = "https://helm.releases.hashicorp.com/"
  chart     = "vault"
  namespace = kubernetes_namespace.vault.metadata.0.name

values = [
    "${file("values.json")}"
  ]
}



provider "kubernetes" {
  host                   = data.aws_eks_cluster.default.endpoint
  cluster_ca_certificate = base64decode(data.aws_eks_cluster.default.certificate_authority.0.data)
  token                  = data.aws_eks_cluster_auth.default.token
  load_config_file       = false
}

provider "helm" {
  kubernetes {
    host                   = data.aws_eks_cluster.default.endpoint
    cluster_ca_certificate = base64decode(data.aws_eks_cluster.default.certificate_authority.0.data)
    token                  = data.aws_eks_cluster_auth.default.token
    load_config_file       = false
  }
}

这是 values.json

server:
  image:
    repository: vault
    tag: latest
  dataStorage:
    enabled: true
  auditStorage:
    enabled: true
  ha:
    enabled: true
    replicas: 1

        listener "tcp" {
          address         = "[::]:8200"
          cluster_address = "[::]:8201"
        }

        storage "s3" {
         access_key = "xxxxxxxxx"
         secret_key = "xxxxxxxxxx"
         bucket     = "xxxx-vault"
         region     = "xxxx-xxxx-x"
        }

        service_registration "kubernetes" {}
  extraVolumes:
    - type: secret
      name: tls
  extraEnvironmentVars:
    VAULT_ADDR: https://127.0.0.1:8200
    VAULT_SKIP_VERIFY: true
ui:
  enabled: true
  serviceType: LoadBalancer

但每次将文件系统作为未给定 S3 存储桶的存储时,它不会在部署后将我的 S3 存储桶作为存储。这里有什么问题?

【问题讨论】:

  • 为什么你的values.json文件是YAML格式的?即使这样,它也不是正确的 YAML 格式,因为文件中的 Vault 配置是 JSON 格式。
  • 更正,这是 YAML,除了 s3 之外,一切正常。
  • 更重要的一点是它甚至不是有效的 YAML,因为它中间有一个 JSON 块

标签: kubernetes terraform amazon-eks hashicorp-vault


【解决方案1】:

认为您错过了值文件中的一个键:

  ha:
    enabled: true
    replicas: 1
    config: |
      listener "tcp" {
        address         = "[::]:8200"
        cluster_address = "[::]:8201"
      }

      storage "s3" {
       access_key = "xxxxxxxxx"
       secret_key = "xxxxxxxxxx"
       bucket     = "xxxx-vault"
       region     = "xxxx-xxxx-x"
      }

      service_registration "kubernetes" {}

【讨论】:

    猜你喜欢
    • 2021-11-06
    • 1970-01-01
    • 1970-01-01
    • 2021-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-27
    • 2021-11-06
    相关资源
    最近更新 更多