External Secrets是如何更安全的使用k8s secret

背景

k8s secret是一种用于存储敏感信息的机制,但是它存在一些安全问题,因为他是内容固定且长期存在的

external-secrets是如何解决的

external-secret的元数据来自外部secretstore,比如aws secretsmanager,hashicorp vault等
external-secret通过ExternalSecret配置来创建k8s secret,如果其中配置了refreshPolicy为Periodic且refreshInterval大于0

需要配合程序热加载secret或者搭配https://github.com/stakater/Reloader来滚动更新pod

使用

来自文档https://external-secrets.io/main/introduction/getting-started/

安装

kubectl apply -k "https://raw.githubusercontent.com/external-secrets/external-secrets/v0.17.0/deploy/crds/bundle.yaml"

demo

创建SecretStore

apiVersion: external-secrets.io/v1
kind: SecretStore
metadata:
  name: secretstore-sample
spec:
  provider:
    aws:
      service: SecretsManager
      region: us-east-1
      auth:
        secretRef:
          accessKeyIDSecretRef:
            name: awssm-secret
            key: access-key
          secretAccessKeySecretRef:
            name: awssm-secret
            key: secret-access-key

创建ExternalSecret

apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
  name: example
spec:
  refreshInterval: 1h
  secretStoreRef:
    name: secretstore-sample
    kind: SecretStore
  target:
    name: secret-to-be-created
    creationPolicy: Owner
  data:
  - secretKey: secret-key-to-be-managed
    remoteRef:
      key: provider-key
      version: provider-key-version
      property: provider-key-property
  dataFrom:
  - extract:
      key: remote-key-in-the-provider
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容