概要
HashiCorp VaultはPolicyを使って各APIの権限を設定します。
これによって権限を細かく設定することができますが、実際の運用ではどんな形で進めるのがいいのかがドキュメントでは分かりにくかったのでまとめした。
環境
- Vault 0.10.3
Policy付与のフロー
以下のようにPolicyを操作できるユーザがVaultに登録し、ユーザなどにマッピングします。
ref: Policies - Vault by HashiCorp
続きを読むHashiCorp VaultはPolicyを使って各APIの権限を設定します。
これによって権限を細かく設定することができますが、実際の運用ではどんな形で進めるのがいいのかがドキュメントでは分かりにくかったのでまとめした。
以下のようにPolicyを操作できるユーザがVaultに登録し、ユーザなどにマッピングします。
ref: Policies - Vault by HashiCorp
続きを読むAWSを運用しているとEC2のsshのキーペア管理が難しいです。
GCPであればメタデータにsshキーを登録すれば自動で各VMにsshできる仕組みがありますが、AWSは各インスタンスにsshのキーペアを1つだけ登録するようになっているため、複数人で運用するにはぱっと以下の方法が浮かびます。
しかしそれぞれ問題があります。秘密鍵の共有はセキュリティ的に大きな問題がありますし、後の2つは起動時に設定するのが非常に手間です。
仮にLambdaなどで新規サーバに対して設定する処理を自動化しても、あとからジョインしたメンバーは別途対応しなくてはいけません。
そこでsshを公開鍵認証でなく、CA認証を使うことで複数のメンバーでも管理しやすくします。
CA認証は以下の記事で非常に分かりやすく説明されています。
今回このCA認証を、Vaultを使って簡単&セキュアに構築します。
続きを読むHashicorp Vaultは起動時はsealed
というステータスになっており、リストを取得したりKey-Valueの値を取得することができません。
Vaultはセキュリティのため、データにアクセスする手段は知っていても起動時は復号の方法を知らないのです。
そこでUnsealというプロセスで復号用のマスターキーを複数の鍵から生成して復号できるようになっています。
ref: Rekeying & Rotating Vault | Vault - HashiCorp Learn
なぜこのような仕組みを導入しているのかを説明します。
続きを読むマイクロサービス化したシステムを運用する上で出てくる課題を解決するパターンとしてService Meshというものがあります。
このService Meshというものは以下の2つのコンポーネントで構成されます。
このData plane
のproxyはSidecarパターンという形で構築します。
今回はそれが生まれた背景などをEnvoyを用いて説明していこうと思います。
そもそもどういった問題背景から生まれたのかを考えます。
最初はシンプルな機能であったため、モノリシックなAPIで十分でした。
しかし機能が増え、チーム人数も増えたためドメイン毎に機能を分けてマイクロサービス化する事を考えます。
また通信のレイテンシを下げるため、gRPCの導入も考えます。