はじめに
ローカル環境とAWS EC2上にHashiCorp Vaultサーバーの環境を構築してみたときのメモです
どんなことができるの?
AWSのIAM ユーザーの動的に作成することができます。
インストール方法
ローカルで実行する
環境 WSL Ubuntu18.04
HashiCorp Vaultをインストール
sudo yum install vault
バージョン確認
vault version
開発サーバーの起動
vault server -dev
起動できるとこのような画面になる
そしてhttp: //127.0.0.1:8200 にアクセスすると管理画面にアクセスできる
ターミナルに表示されている Root Tokenを入力するとログインできる
ログイン後の画面
EC2上で実行 EIPからアクセスできるようにする
環境 Amazon Linux2
Vault用のEC2インスタンスに接続
ココからEC2で操作
HashiCorp Vaultをインストール
sudo yum install vault
バージョン確認
vault version
EIPでアクセスしたいためそれ専用のコンフィグファイルを作る
vi ~/config.hcl
コンフィグファイルに下記を入力
storage "inmem" {}
listener "tcp" {
address = "EC2のプライベート IPv4 アドレス:8200"
tls_disable = true
}
lsコマンド等で今いるディレクトリにconfig.hclがあることを確認
開発サーバーを起動
vault server -dev -config=config.hcl
ブラウザからアクセス
http:// EIPアドレス:8200/ にアクセス
ログイン画面が表示される
ターミナルに表示されている Root Tokenを入力するとログインできる
適当なアカウント発行してみる
AWSアカウントを連携
Access→Auth Methods→Enable new methodを選択
AWSを選択
Enable Methodを選択
Vaultを利用したい環境でVault専用のIAMを作ってそのアクセスキーとシークレットキーを入力
今回はテストのためVault専用のIAMにはadminロールを付けています。
Secrets → Secrets Engines → Enable new engine
AWSを選択
Enable Engineを選択
Create Roleを選択
今回は適当にs3の閲覧のみのポリシーを付ける →Create Role
使ったポリシー
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:ListAllMyBuckets",
"Resource": "arn:aws:s3:::*"
}
]
}
s3という名前のロールができた
右の方のGenerate credentialsを選ぶ
Generateを選択
アカウントが発行される
青いボタンのCopy credentialsを選ぶと動的に発行したアカウントのアクセスキーを取得できる
発行したアカウントを使ってs3を見てみる
問題なく表示できた
今回はここまで