Skip to content

hashicorp-japan/vault_on_k8s

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VaultをK8sにデプロイしてSecretをPodに挿入する

おそらくどのようなK8s環境でも試せる(と思います)。

事前準備

  • K8s環境を構築してください。なんでもよいです。
    • AKS (on Azure)
    • EKS (on AWS)
    • GKE (on GCP)
    • Minikube
    • kind
    • etc
  • kubectlのインストール
  • helmのインストール

kubectl config current-contextで準備したK8s環境が設定されているか確認ください。 もし別のK8s環境が設定されていた場合は、kubectl config set-context <使いたいK8s環境>で正しく設定ください。

手順

まずはこのRepositoryをCloneしてください。

とりあえず、このRepoに入っているScriptを順に実行していけば試せます。

各スクリプトが何をおこなうか

  1. HashiCorpのHelm repoを追加します
  2. Helmを使ってConsulをデプロイします。ConsulはVaultのStorage backendとして使用します。
  3. Helmを使ってVaultをデプロイします。
  4. Vaultの状態(Status)をチェックするスクリプトです。このスクリプトはいつでもVaultの状態をチェックしたい時に使ってください。
  5. VaultのUIへのLocal proxyを設立します。このスクリプトを実行している間は、http://localhost:8200 にアクセスすればVaultのUIにアクセスできます。
  6. Vaultを初期化します。初期化時のアウトプットは cluster-keys.json へ保管します。
  7. VaultをUnsealします。
  8. Root tokenでLoginしておきます。
  9. VaultのPodへShellアクセスします。Vaultコマンドを直接実行できます。試し終わったらVault podのshellからexitしてください。
  10. VaultのKVシークレットエンジンを有効化します。
  11. KVシークレットエンジンに任意のシークレットを登録します。値は自由に変更して構いません。
  12. VaultのKubernetes認証を有効化します。
  13. VaultのKubernetes認証の設定を行います。
  14. VaultへpolicyとKubernetes認証で使うRoleを設定します。
  15. Podの認証に使うService accountを作成します。
  16. 実際のアプリケーションをデプロイします。
    • ここでは例としてnginxをデプロイします。
    • この実習での目的はVaultがいかにしてPodへSecretを挿入するか、という事ですので、nginx以外の好きなコンテナを使用しても構いません。
    • もし、nginxが実際にデプロイされてるか確認したければ以下を試してください。
      • kubectl get services nginx-service で表示されるEXTERNAL-IPへブラウザやcurlでアクセスしてみてください。Nginxのデフォルトのページが表示されると思います。
  17. 15でデプロイしたPodにSecretが挿入されているか確認します。
    • deployment-nginx.ymlのAnnotationで指定されている通り、/vault/secrets/mysecret.txtにSecretが入っているか確認します。
  18. 15でデプロイしたPodへShellアクセスします。実際のファイルシステムなどを確認したいとき使ってください。

まとめ

上記の手順で、いかにしてVaultがK8sのPodを認証し、Secretを挿入するかが理解いただけたと思います。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 98.8%
  • HCL 1.2%