Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
High Availability Vault Service on AWS Environment
Search
Gea-Suan Lin
March 17, 2022
Technology
7.3k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
High Availability Vault Service on AWS Environment
Gea-Suan Lin
March 17, 2022
More Decks by Gea-Suan Lin
See All by Gea-Suan Lin
用 AWS CodeDeploy 解決程式佈署
gslin
0
460
MySQL to NoSQL & Search Engine
gslin
0
2.3k
用 Vagrant 與 Docker 拯救世界
gslin
1
320
Startup IT infrastructure: Developing and Working with AWS
gslin
8
3.8k
Talk about Percona XtraDB Cluster
gslin
0
220
API Design Optimized for Mobile Platform
gslin
9
8.9k
Use Facebook::Graph to write desktop application
gslin
2
520
COSCUP 2012 - MySQL System Stability
gslin
17
12k
MySQL System Stability
gslin
4
6k
Other Decks in Technology
See All in Technology
[RSJ26] AnoleVLA: Lightweight Vision-Language-Action Model with Deep State Space Models for Mobile Manipulation
keio_smilab
PRO
0
120
APIセキュリティを組織で実現するには~注力する点と設計・実装に入れたい対策~
riiimparm
3
900
GuardDuty 検知対応を DevOps Agent で効率化しようとしている話 / GuardDuty Investigations with DevOps Agent
masahirokawahara
1
200
Claude Codeで開発以外の業務も爆速化しよう!
minorun365
PRO
12
9.5k
最新技術に積極チャレンジ!EKS共通基盤のこれまでとこれから
daitak
0
290
20260906 「AWS運用入門」著者が教える、運用業務への生成AI活用入門
masaruogura
0
170
Hub & Spoke 環境のネットワークルーティングを分解してみる
tsuyataku
1
510
【5分でわかる】セーフィー エンジニア向け会社紹介
safie_recruit
0
55k
[RSJ26] Flow as Flow: Modeling Robot Velocity Fields as Probability Velocity Fields
keio_smilab
PRO
0
180
Self Healing Rollouts: Automating Production Fixes with Agentic AI
kdubois
0
130
DINO-EdgeQuery:Edge-First Polygon Decoding for Building Footprint Extraction from Satellite Imagery
lehupa
0
130
PM領域でのAI Agentの活用
lycorptech_jp
PRO
0
230
Featured
See All Featured
Technical Leadership for Architectural Decision Making
baasie
3
550
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
Agile that works and the tools we love
rasmusluckow
331
22k
Exploring the relationship between traditional SERPs and Gen AI search
raygrieselhuber
PRO
2
4.3k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
880
Large-scale JavaScript Application Architecture
addyosmani
515
110k
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
330
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
10k
Max Prin - Stacking Signals: How International SEO Comes Together (And Falls Apart)
techseoconnect
PRO
0
430
Building Adaptive Systems
keathley
44
3.2k
The State of eCommerce SEO: How to Win in Today's Products SERPs - #SEOweek
aleyda
2
11k
sira's awesome portfolio website redesign presentation
elsirapls
0
390
Transcript
High Availability Vault Service on AWS Environment Gea-Suan Lin (DK)
Director of SW Platform and Infrastructures
Links • This slide: ◦ https://bit.ly/3igUbgh • AWS Summit Taiwan
2021: ◦ https://aws.amazon.com/tw/events/taiwan/2021summit/ • My wiki: ◦ https://wiki.gslin.org/wiki/Vault/Install (in Chinese)
Explain “Migo” • https://wiki.gslin.org/wiki/Migo
What is HashiCorp Vault? • “Manage secrets and protect sensitive
data” • Usually: ◦ Credentials ◦ Tokens ◦ … • Sometimes: ◦ Endpoint information ◦ …
Why do people need Vault? • Auditing. • Credentials/tokens versioning.
• We don’t want to put credentials into Ansible and/or GitLab…
Today’s objectives • High availability. ◦ But I don’t want
to manage HA by myself.
Technologies • Amazon EC2 (Multi-AZ) ◦ (or container-based services like
ECS/EKS) • Amazon DynamoDB • AWS KMS • AWS ELB • AWS ACM (optional)
Setup DynamoDB • Create a table called vault. ◦ Primary
key as Path. ◦ Sort key as Key.
None
Setup KMS • Create a key with SYMMETRIC_DEFAULT.
None
Setup EC2 • Create two t3a.nano or t4g.nano instances. •
We choose Ubuntu 20.04.
None
Install Vault curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -;
sudo apt-add-repository "deb https://apt.releases.hashicorp.com $(lsb_release -cs) main"; sudo apt update && sudo apt install vault
Setup Vault api_addr = "http://10.10.10.10:8200" cluster_addr = "http://10.10.10.10:8201" log_level =
"Info" ui = true listener "tcp" { address = "0.0.0.0:8200" cluster_address = "10.10.10.10:8201" tls_disable = "true" } seal "awskms" { region = "ap-southeast-1" access_key = "x" secret_key = "x" kms_key_id = "x" } storage "dynamodb" { ha_enabled = "true" region = "ap-southeast-1" table = "vault" access_key = "x" secret_key = "x" }
Setup EC2 IAM Role • Create an EC2 role. •
Attach two inline policies. • Attach to EC2 instances.
EC2 IAM Role - Policy-Vault-DynamoDB { "Version": "2012-10-17", "Statement": [
{ "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "dynamodb:BatchGetItem", "dynamodb:BatchWriteItem", "dynamodb:PutItem", "dynamodb:DescribeTable", "dynamodb:DeleteItem", "dynamodb:GetItem", "dynamodb:Scan", "dynamodb:ListTagsOfResource", "dynamodb:Query", "dynamodb:UpdateItem", "dynamodb:DescribeTimeToLive", "dynamodb:GetRecords" ], "Resource": [ "arn:aws:dynamodb:ap-southeast-1:123456789012:table/vault/stream/*", "arn:aws:dynamodb:ap-southeast-1:123456789012:table/vault/index/*", "arn:aws:dynamodb:ap-southeast-1:123456789012:table/vault" ] }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "dynamodb:DescribeReservedCapacityOfferings", "dynamodb:ListTables", "dynamodb:DescribeReservedCapacity", "dynamodb:DescribeLimits" ], "Resource": "*" } ] }
EC2 IAM Role - Policy-Vault-KMS { "Version": "2012-10-17", "Statement": [
{ "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:Encrypt", "kms:DescribeKey" ], "Resource": "arn:aws:kms:ap-southeast-1:123456789012:key/01234567-89ab-cdef-0123-456789abcdef" } ] }
None
Setup ELB • Choose ALB • /v1/sys/health as health check
path. • Backend in port 8200. • Frontend in port 80. ◦ Recommend to use ACM for HTTPS (port 443).
Start Vault sudo systemctl enable vault; sudo service vault start
Initialization # Remember to write down the root token vault
operator init \ -recovery-shares=1 \ -recovery-threshold=1 \ -address=http://127.0.0.1:8200
Now it’s working • http://vault.example.com/ ◦ https://vault.example.com/ (HTTPS)
Monitoring • Cloudwatch ◦ ELB (ALB) ◦ EC2 ◦ DynamoDB
◦ KMS
That’s it… • Q&A after sessions. • And we’re hiring!