この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
はじめに
今回はVault Serverのストレージとしてファイルシステムを使ってみます。
やってみた
サーバ側の作業
Vault Server起動時に指定するConfigファイルを作成します。storage項目でfileを指定します。また前回同様にオレオレ証明書でTLSを有効にしています。
storage "file" {
path = "/home/ec2-user/vault"
}
listener "tcp" {
address = "EC2のプライベートIPアドレス:8200"
tls_cert_file = "/home/ec2-user/vault-server.crt"
tls_key_file = "/home/ec2-user/vault-server.key"
}
ファイルシステムを使う場合のパラメータはpathのみです。
Vault Serverを起動します。Storageがfileになっています。
$ sudo ./bin/vault server -config=config.hcl
==> Vault server configuration:
Cgo: disabled
Listener 1: tcp (addr: "172.31.30.249:8200", cluster address: "172.31.30.249:8201", tls: "enabled")
Log Level: info
Mlock: supported: true, enabled: true
Storage: file
Version: Vault v0.9.3
Version Sha: 7d73ac4c967b3b8726c71e00c017129e1d36ad3c
==> Vault server started! Log data will stream in below:
この時点ではファイルは何もありません。
$ ls -alF ./vault
合計 8
drwxrwxr-x 2 ec2-user ec2-user 4096 2月 13 01:31 ./
drwx------ 9 ec2-user ec2-user 4096 2月 13 01:31 ../
クライアント側の作業
Vault Serverのアドレスを環境変数に設定します。
$ export VAULT_ADDR='https://EC2のパブリックIPアドレス:8200'
initializeします。
$ vault operator init -tls-skip-verify
するとcoreとsysというディレクトリが作成されます。これらのディレクトリにはVault Serverの設定などが格納されています。
$ ls -alF ./vault
合計 16
drwxrwxr-x 4 ec2-user ec2-user 4096 2月 13 01:33 ./
drwx------ 9 ec2-user ec2-user 4096 2月 13 01:31 ../
drwx------ 4 root root 4096 2月 13 01:33 core/
drwx------ 4 root root 4096 2月 13 01:33 sys/
Unsealして使えるようにします。
$ vault operator unseal -tls-skip-verify
$ vault operator unseal -tls-skip-verify
$ vault operator unseal -tls-skip-verify
loginします。
$ vault login -tls-skip-verify 6bcc76e3-98d8-3d5d-a8e1-a15ad3cc9ac8
さて、それでは実際に値を格納してみます。
$ vault write -tls-skip-verify secret/sasakidaisuke value=smokeymonkey
Success! Data written to: secret/sasakidaisuke
するとlogicalというディレクトリが作成されます。
$ ls -alF
合計 20
drwxrwxr-x 5 ec2-user ec2-user 4096 2月 13 01:34 ./
drwx------ 9 ec2-user ec2-user 4096 2月 13 01:31 ../
drwx------ 4 root root 4096 2月 13 01:33 core/
drwx------ 3 root root 4096 2月 13 01:34 logical/
drwx------ 4 root root 4096 2月 13 01:33 sys/
この中にはアンダースコアとKeyをファイル名としたファイルが作成されています。
$ sudo tree ./vault/logical/
./vault/logical/
└── e402eb4a-b2db-3a04-46ec-8de6d339b7ec
└── _sasakidaisuke
ファイルの中身は暗号化されており読むことが出来ません。
$ sudo cat ./vault/logical/e402eb4a-b2db-3a04-46ec-8de6d339b7ec/_sasakidaisuke
{"Value":"AAAAAQJ3GrD1OIcDbdSwHb7fpSijzl/AL6rHKYHRiABXhoxdcuUubBJ4e+PYPKA8QmiVFLRqYsqT"}
さいごに
ファイルシステムをストレージにする場合はHigh Availability Modeがサポートされておりません。開発環境等で使用する分にはお気軽に使えるでしょう。