GCPのAlways FreeでVaultをHTTPSで起動するまで
やりたいこと
クレデンシャル情報のセキュアな管理がしたい。
HashiCorp Vaultを使ってやってみたい。
とりあえずGCPで無料でやりたい。
事前準備
HTTPS化するためにドメインを1つ取得しておいてください。
GCP
インフラの作成を実施してきます。
GCE
GCEとは、GCPのコンピューティングサービスです。AWSで言うところのEC2。
Always Freeのf1.micro in オレゴンリージョンで作成します。
ストレージも無料枠の30GBで作成します。
VaultのBackend StorageとしてGCSを利用するため、下記で権限を付与しておきます。
GCS
Vaultのbackend strageとしてGCSを利用するため、事前にバケットを作成しておきます。
Docker
環境構築はDockerコンテナで行っていきます。
curl -fsSL https://get.docker.com/ | sh
# sudoersに所属している必要があります
sudo usermod -aG docker $USER
# 非ルートユーザでdockerが実行できるようになります
sudo curl -L "https://github.com/docker/compose/releases/download/1.26.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
ここまできたら一度接続しなおしてください。
コンテナの構築
マシンが作成されたら、本命のVaultを構築します。HTTPS対応1するために、今回はCaddyを利用します。
DNS登録
Caddyで適切にLet's Encryptによる証明書発行をするために、事前にGCEのパブリックIPアドレスを、自分が所有するドメインのA/AAAAレコードに登録する必要があります。
ここは省略します。適宜、Route53やお名前ドットコムなどで設定してください。
VaultとCaddy
下記の定義で、起動しました。
.
├── caddy
│ └── Caddyfile
├── docker-compose.yml
└── vault
└── config
└── vault.json
version: "3"
volumes:
vault-data:
caddy-data:
services:
vault:
image: vault:1.4.3
container_name: vault
restart: unless-stopped
volumes:
- ./vault/config:/vault/config
- ./vault/policies:/vault/policies
- vault-data:/vault/data
expose:
- 8200
cap_add:
- IPC_LOCK
command: vault server -config=/vault/config/vault.json
caddy:
image: caddy:2.1.1-alpine
container_name: caddy
restart: unless-stopped
volumes:
- caddy-data:/data
- ./caddy:/etc/caddy
ports:
- 80:80
- 443:443
links:
- vault
# 下記を自身のドメイン名を記載してください。
# vault.example.com
# Set this path to your site's directory.
root * /usr/share/caddy
# Enable the static file server.
file_server
# Another common task is to set up a reverse proxy:
# reverse_proxy localhost:8080
reverse_proxy vault:8200
{
"ui": true,
"listener": {
"tcp": {
"address": "0.0.0.0:8200",
"tls_disable": "true"
}
},
"backend": {
"gcs": {
"bucket": "ここにGCSのバケット名を記載"
}
},
"default_lease_ttl": "168h",
"max_lease_ttl": "0h",
"api_addr": "http://0.0.0.0:8200"
}
ではコンテナを起動します。
docker-compose up -d
ブラウザからアクセスすると無事に画面が表示されました。
-
Feature Request: Support Let's Encrypt secret engine #4950 このissueがMergeされたらいらなくなるかもね! ↩
Author And Source
この問題について(GCPのAlways FreeでVaultをHTTPSで起動するまで), 我々は、より多くの情報をここで見つけました https://qiita.com/shinmai88/items/9d805885add90cffe332著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .