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

Vault on Kubernetes

gotoken
July 25, 2019

Vault on Kubernetes

gotoken

July 25, 2019
Tweet

More Decks by gotoken

Other Decks in Technology

Transcript

  1. Vault on Kubernetes
    gotoken
    @kennygt51

    View Slide

  2. 自己紹介
    gotoken Twitter:@kennygt51
    経歴:
     SIerで運用SE(5年)
      → Webの会社でインフラエンジニア(0.5年)
    業務内容:
     既存インフラのコンテナ化・クラウド化

    View Slide

  3. アジェンダ
    ・Vaultとは
    ・Vault Architecture
    ・Kubernetes上に構築する
    ・デプロイ時に秘匿情報を環境変数に展開する

    View Slide

  4. Vaultとは

    View Slide

  5. Vaultとは
    ・HashiCorp社の秘匿情報管理ソフトウェア
    ・Dynamic Secretsなど、様々な秘匿情報管理機能を持つ
    ・クライアント/サーバ型で動作する
    ・クライアントで秘匿情報の保存や取得コマンドを実行
    ・秘匿情報自体はサーバに保存
    ・ユースケースとしては、サービス(秘匿情報)が多数ある場合、namespaceを跨ぐ秘
    匿情報の共有が必要な場合、audit loggingなど

    View Slide

  6. Vault Architecture

    View Slide

  7. Client
    Vault storage backend
    Vault server
    Vault Architecture
    Seal / Unseal
    ・クライアント/サーバモデル
    ・Vault CLI / HTTP API でアクセス
    ・Storage Backendに暗号化したデータを保存
    詳細は以下
    https://www.vaultproject.io/docs/internals/architecture.html
    https://www.kennys.tech/read-vault-architecture/

    View Slide

  8. Kubernetes上に構築する

    View Slide

  9. ・Deployment
    ・Cluster IP Service
    ・AWS KMS(Auto-unsealing)
    ・DynamoDB(Storage Backend)

    View Slide

  10. デプロイ時に秘匿情報を環境変数に展開する

    View Slide

  11. envconsul
    ・consul / vaultから集めた環境変数と共に、サブプロセスを起動するツール

    View Slide

  12. # envconsul \
    > -config="./config.hcl" \
    > -secret="secret/myapp/config" \
    > env
    2019/07/20 05:11:57.423996 looking at vault
    secret/myapp/config
    ・・・
    secret_myapp_config_username=appuser
    # envconsul -secret secret/common_app -secret secret/a_app bundle exec rails s
    ユースケース
    ・特定のpath配下の秘匿情報を環境変数として展開し、アプリケーションを起動
    ・pathベースでの、アクセスコントロール(運用模索中。。)
    使い方

    View Slide

  13. ご清聴ありがとうございました
    @kennygt51

    View Slide