Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Vaultに格納したシークレットをKubernetesから活用する方法

 Vaultに格納したシークレットをKubernetesから活用する方法

HashiCorpのWebinarで登壇した際の資料です。
Webinar動画はこちらから!
https://www.hashicorp.com/events/webinars/how-to-get-vault-secrets-into-kubernetes-jp

Kazuto Kusama

April 07, 2022
Tweet

More Decks by Kazuto Kusama

Other Decks in Technology

Transcript

  1. Kubernetesでアプリを作るとき Pod App Pod DB Cloud Services Access Key Secret

    Access Key Username Password Secret Access Key Secret Access Key Username Password
  2. KubernetesのSecret kind: Secret apiVersion: v1 data: username: YWRtaW4= password: MWYyZDFlMmU2N2Rm

    metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: { ... } creationTimestamp: 2016-01-22T18:41:56Z name: mysecret namespace: default resourceVersion: "164619" uid: cfee02d6-c137-11e5-8d73-42010af00002 type: Opaque
  3. KubernetesのSecret kind: Secret apiVersion: v1 data: username: YWRtaW4= password: MWYyZDFlMmU2N2Rm

    metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: { ... } creationTimestamp: 2016-01-22T18:41:56Z name: mysecret namespace: default resourceVersion: "164619" uid: cfee02d6-c137-11e5-8d73-42010af00002 type: Opaque “admin” “1f2d1e2e67df” 取扱注意!! Base64エンコードされているだけ。
  4. Secretのジレンマ ▪ Secretが大事なことは誰もが分かってる ▪ だから既存の自動化フローには載せず、特別対応 – 一部の人だけが手元で厳重に管理 – 権限を絞ったプライベートリポジトリで管理 –

    権限を絞ったSpreadsheetで管理 ▪ しかしこの特別対応こそが、Secret Sprawlを生みセキュリティを低 下させる – 人間が把握できる範囲には限界がある – 人間はミスをする
  5. Kubernetes Auth Method Service Account auth/kubernetes/login + service account token

    TokenReview API status.authenticated: true auth.client_token /v1/secret/foo Return secret
  6. Kubernetes & Vault アプリから 直接Vault Vault agent init container Vault

    agent sidecar Vault CSI Provider External Secret 公式 コミュニティ
  7. Vault CSI Provider Kubernetes Secrets Store CSI Driver Secretを、KubernetesのCSI (Container

    Storage Interface)を使っ て、ボリュームとしてPodにマウントする仕組み。 Vault CSI Provider ↑をHashiCorp Vaultで使うためのProvider Helmでインストール可能