HashiCorp Vault on AWS のCloudFormationのデプロイ、バージョン変更

### これはなに
AWSが公式が出しているAWS上にHashicorp Vaultサーバーを構築した時のメモとバージョン変更方法です。
### サイト
https://aws.amazon.com/jp/solutions/partners/vault/
### 構成図
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2957080/4c1fb7a9-eed4-9b3a-3ee7-e0091bc21e64.png)



## 注意点
構築するとEIPを4個作るので予め作れる環境か確認が必要です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2957080/ed430fcf-23d5-c69f-b7e4-893b97a38894.png)

## 導入方法
### 事前準備
バージョン変更をしたい場合は先に変更してください
デプロイ先のAWSアカウントにログインしておく
Vaultサーバー用のEC2 KeyPairを用意する
Route53のホストゾーンを作っておく

デプロイ方法の新規VPCを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2957080/14e32814-dd40-fe15-93ab-d641f6477943.png)

次へを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2957080/d312647b-59d3-6a1a-f336-c0a4973acf94.png)



 #### パラメーターを入力していく。


* スタックの名前

cloudformatinのスタックの名前です。
- Availability Zones

3個のAZを選択する
- VPC 、Private subnet 、Public subnet CIDR

導入環境に合わせて変更してください
- Permitted IP range

VaultにアクセスできるIPを決める。
どこからでもアクセスできるようにする場合は0.0.0.0/0 


- EC2 key pair

事前に作ったkey pairを選択

- Instance type

初期値がm5.largeで大きめなので注意

Load Balancer configuration

- Internal/external load balancer

externalを選択
Internalにすると外部からアクセスできなくなるので注意

- Load balancer DNS domain name

事前準備で作ったホストゾーン名を入力

- Hosted-zone ID

ホストゾーンのIDを入力

それ以外はデフォルト

次へを選択
変更無しで次へを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2957080/e0bcfa41-bca6-0b68-c5ef-176327debb56.png)


チェックマークを付けて送信で構築されます。
構築は時間がかかります。気長に待ちましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2957080/df0be154-0945-2dcd-e9e7-f68fe80da787.png)


設定したCloudFormationのスタックを選択し出力のタブをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2957080/69f1a6b9-b479-1639-68a2-e9915182c9ae.png)

するとVaultサーバーのURLがあるのでクリック
ログイン画面が表示されれば成功です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2957080/1da68891-73bb-6c5f-156d-ce3ca1c5a33c.png)

ログインパスワードはシークレットマネージャに格納されています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2957080/1543b229-2037-9ca0-e5eb-d5d0bd79e941.png)

シークレットの値を取得するをクリック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2957080/f5208cda-94b7-1ca3-9ba8-ed9502ef9523.png)


```
Recovery Key 1: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Recovery Key 2: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Recovery Key 3: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Recovery Key 4: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Recovery Key 5: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
                                      
Initial Root Token: xxxxxxxxxxxxxxxxxxxxxxxxxxxx

Success! Vault is initialized

Recovery key initialized with 5 key shares and a key threshold of 3. Please
securely distribute the key shares printed above.
```
Initial Root Tokenがログインパスワードです。

## バージョン変更
AWSが用意しているCloudFormationでは3バージョンしか選択できません。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2957080/e209997e-4899-fb5e-2081-8842a0f3155d.png)
これに導入したい任意のバージョンを追加する方法です。

 ### 導入
最新のバージョンの確認はこのサイトで行う
https://github.com/hashicorp/vault/releases
この記事を作った時は1.15.4
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2957080/988954a5-fa18-1920-72d8-30d8e677f7af.png)

VSCode等でダウンロードしたファイルを開く
検索で**Default: 1.10.3**を検索

**AllowedValues:** の下に任意のバージョンを追加するし保存する


次にこれをダウンロードする
https://aws-quickstart.s3.amazonaws.com/quickstart-hashicorp-vault/templates/quickstart-hashicorp-vault.template

VSCode等でダウンロードしたファイルを開く
検索で**Default: 1.10.3**を検索
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2957080/e8052494-b06b-3331-4bf9-a807640a7dbb.png)

**AllowedValues:** の下に任意のバージョンを追加するし保存する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2957080/cf6bfc3b-01ea-68eb-d3ac-770877a1509d.png)

S3バケットを作る 名前は任意で
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2957080/c3b3bc1a-6cb7-4c02-1f0e-24c6990d4767.png)

作ったS3にquickstart-hashicorp-vault.templateファイルをアップロードする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2957080/5ea083f9-476a-286b-c3b0-e1b257ebfaac.png)

入れたファイルのURLをコピーする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2957080/81f78457-4c37-4d10-9588-0917ee423dae.png)

quickstart-hashicorp-vault-master.templateファイル再度開き418行目をコピーしたURLに置き換え保存
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2957080/fd890980-cb45-b666-eb56-d8f68a0b9581.png)

HashiCorp Vault version で追加したバージョンを選択する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2957080/2be5f3a3-b605-7c82-1bb3-e5f247a002f6.png)

構築後、バージョンを確認する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2957080/9cb32439-1e93-aa71-b434-01fe6d5ddb14.png)