Slide 1

Slide 1 text

HCP Vault Secrets で シークレット管理を始めよう HashiTalks: Japan 2024-11-14 Taichi Nonoshita (@nnstt1)

Slide 2

Slide 2 text

自己紹介 埜下 太一 / Taichi Nonoshita 株式会社エーピーコミュニケーションズ Terraform, Vault, Azure, Kubernetes HashiCorp Ambassador 2024 Microsoft Top Partner Engineer Award 2024 @nnstt1

Slide 3

Slide 3 text

こんな方に聞いて欲しい ● 組織・個人開発にシークレット管理を導入したい方 ● Vault は知ってるけど HCP Vault Secrets は知らない方

Slide 4

Slide 4 text

HashiCorp Vault のおさらい

Slide 5

Slide 5 text

HashiCorp Vault とは ● データ暗号化 ● シークレット管理 クラウドやアプリケーションを跨がり、 インフラで必要なシークレットを一元管理 環境やワークロードを跨がり、 アプリケーションデータを暗号化して保護

Slide 6

Slide 6 text

● Vault Community Edition ○ シークレット管理/暗号化の基本機能を無償提供 ● Vault Enterprise ○ Namespace や 高可用性クラスタ などの企業向け機能を提供 ○ セキュリティ要件が高い組織向け ● HCP Vault Dedicated ○ Enterprise 相当のマネージド Vault クラスタを提供 ○ Azure/AWS とプライベートアクセス可能 少し前までの HashiCorp Vault の種類

Slide 7

Slide 7 text

Vault クラスタはオーバースペックな場合もある ● 組織が小規模・個人開発 ● Vault でシークレット管理以外の機能を使う予定がない ○ データ暗号化、証明書管理… ● Vault 自体の運用が不安 ○ アクセスコントロール、ポリシー、Namespace… ● 費用感が合わない

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

HCP Vault Secrets (HVS) の特徴 ● クラスタ管理は不要 ○ HCP 上で提供されるマネージドサービス ○ シークレット管理に注力 ● 機能はシークレット管理に限定 ○ スモールに始められる ○ 学習コストが低い ● シークレット数の課金 ○ 費用を予想しやすい ○ 用途に応じたプランあり

Slide 10

Slide 10 text

HCP Vault Secrets のはじめ方

Slide 11

Slide 11 text

HCP Vault Secrets のはじめ方 1. HCP (HashiCorp Cloud Platform) へログイン https://portal.cloud.hashicorp.com/sign-in

Slide 12

Slide 12 text

HCP Vault Secrets のはじめ方 2. Organization と Project を作成 Organization ● 請求、ユーザーアクセスの管理単位 ● 組織内で Organization 作成済みの場合は招待してもらう ○ 1アカウントで作れる Organization は1つだけ

Slide 13

Slide 13 text

HCP Vault Secrets のはじめ方 2. Organization と Project を作成 Organization Project “Stage” Project “Production” ● HCP リソースをまとめる単位 ● ワークロードや環境などで分割 ○ プロジェクト毎の費用が分かる ○ RBAC に影響してくる(後述)

Slide 14

Slide 14 text

HCP Vault Secrets のはじめ方 3. HCP Vault Secrets でアプリケーションを作成

Slide 15

Slide 15 text

HCP Vault Secrets のはじめ方 3. HCP Vault Secrets でアプリケーションを作成 Organization Project “Stage” Project “Production” App“foo” App“bar” App“foo” App“bar” ● シークレットを管理する単位 ● Kubernetes の Secret リソースに似ている

Slide 16

Slide 16 text

HCP Vault Secrets のはじめ方 4. アプリケーション内に Key-Value 形式でシークレットを登録 シークレット値は参 照可能

Slide 17

Slide 17 text

HCP Vault Secrets のはじめ方 4. アプリケーション内に Key-Value 形式でシークレットを登録 Organization Project “Stage” Project “Production” App“foo” App“bar” App“foo” App“bar” 🔑 🔑 🔑 🔑 🔑 🔑 🔑 🔑

Slide 18

Slide 18 text

HCP Vault Secrets の シークレットを使う

Slide 19

Slide 19 text

プッシュ型とプル型 シークレットの利用方法 App 🔑 🔑 AWS Secrets Manager CLI Azure Key Vault Google Cloud Secrets Manager GitHub Actions HCP Terraform Vercel API Kubernetes プッシュ プル

Slide 20

Slide 20 text

アプリケーション毎に「Secrets Sync」を設定 ● クラウドプロバイダーのシークレットマネージャーや CI ツールとシークレットを同期 ● 1アプリケーションに対して複数の同期先を設定できる ● 各サービスのシークレットを一元管理 プッシュ型 App 🔑 🔑 AWS Secrets Manager Azure Key Vault Google Cloud Secrets Manager GitHub Actions HCP Terraform Vercel Secrets Sync プッシュ

Slide 21

Slide 21 text

利用するユーザ/システム側からシークレットを取得 ● CLI は hcp コマンドを利用可能 ● Kubernetes は Vault Secrets Operator を利用可能 プル型 CLI API Kubernetes プル App 🔑 🔑

Slide 22

Slide 22 text

プラン 3種類のプラン毎に制約が異なる ● 登録できるシークレット数、Secrets Sync 設定数、シークレットの履歴 ● Plus プラン限定の機能 Free Standard Plus 料金 無料 $0.50/シークレット/月 $0.95/シークレット/月 アプリケーション 25 1,000 10,000 静的シークレット 25 2,500 25,000 Auto rotating シークレット - - 5,000 動的シークレット - - 5,000 シークレットのバージョン 5 50 50 Secrets Sync 5 200 2000

Slide 23

Slide 23 text

下にいくほど安全なシークレット シークレット管理のベストプラクティス Unmanaged secrets Vaulted Rotated Dynamic Short-lived + unique secret Medium-lived + shared secret Long-lived + shared secret

Slide 24

Slide 24 text

Auto rotating シークレット ● シークレットの存続期間を中程度に保つ ○ 30日 or 60日 or 90日でシークレットを自動更新 ○ AWS、Google Cloud、MongoDB Atlas、Twilio をサポート ○ Plus プラン限定 🔑 App AWS 1.ローテーション 2.シークレット参照 3.更新されたシーク レットで認証

Slide 25

Slide 25 text

動的シークレット (beta) ● Just In Time でシークレットを作成 ○ シークレットの存続期間が短い ○ AWS、Google Cloud をサポート、DB などは未サポート ○ Plus プラン限定 🔑 App AWS 2.シークレット作成 4.作成されたシーク レットで認証 1.シークレット参照 3.シークレット応答

Slide 26

Slide 26 text

HCP Vault Secrets を 使う上での注意点

Slide 27

Slide 27 text

注意点 ● API リミット ○ 6000 リクエスト/分 ○ プル型、特に Kubernetes の場合は上限に到達しやすい ● RBAC で細やかな設定は(まだ)できない ○ 組み込みロールは管理者と閲覧者のみ ○ 権限付与はプロジェクト単位 ● パブリックアクセスのみ ○ HCP Vault Dedicated のようなプライベートエンドポイントは 払い出されない

Slide 28

Slide 28 text

まとめ

Slide 29

Slide 29 text

まとめ HCP Vault Secrets はシークレット管理に特化した マネージドサービス 1 Secrets Sync でシークレットマネージャー/CIツールと 連携して一元管理 2 ベストプラクティスに対応したシークレット管理が可能 3

Slide 30

Slide 30 text

No content