Vault là gì ?
Trang chủ: https://www.vaultproject.io/ Vault là một công cụ của công ty HashiCorp với mục tiêu lưu trữ và truy xuất các thông tin bảo mật. Các thông tin dữ liệu bảo mật mà Vault phục vụ bao gồm: api key, mật khẩu, thông tin dưới dạng key-value, chứng chỉ,… Vault cung cấp các hình thức, kênh truy xuất dữ liệu này thông qua API, GUI, command line,… Bên cạnh đó còn có các cơ chế mã hoá dữ liệu lưu trữ và các cơ chế ACL quản lý quyền hạn khả năng truy xuất của người dùng. Như vậy Vault được thiết kế chạy như 1 dịch vụ độc lập để lưu trữ các thông tin nhạy cảm, phục vụ tích hợp cho các ứng dụng/dịch vụ/cloud khác sử dụng. Một số dịch vụ tương ứng như AWS KM, HSM, Keywhiz,.. để bạn tham khảo. Chúng ta sẽ không tìm hiểu nhiều về dịch vụ Vault trong bài viết này. Mà sẽ có một bài viết giới thiệu khác.1. Cài đặt chương trình Vault trên Linux
Vault cung cấp cho chúng ta một package Vault binary để chạy luôn không cần phải tiến hành biên dịch hay cài đặt từ các repo, điều này vô cùng tiện lợi và cũng là đặc trưng của các sản phẩm công ty HarshiCorp. Link download: https://releases.hashicorp.com/vault/# cd /opt/
# wget –no-check-certificate https://releases.hashicorp.com/vault/1.1.5/vault_1.1.5_linux_amd64.zip

# unzip vault_1.1.5_linux_amd64.zip -d .
# mv vault /usr/bin/
# chmod +x /usr/bin/vault

# vault -autocomplete-install
# complete -C /usr/bin/vault vault
# setcap cap_ipc_lock=+ep /usr/bin/vault
# vault -h

# useradd –system –home /etc/vault/ –shell /bin/false vault
# mkdir -p /etc/vault/
# mkdir -p /var/lib/vault/
# chown vault:vault -R /var/lib/vault/ /etc/vault/

# vi /etc/systemd/system/vault.service
[Unit] Description="HashiCorp Vault - A tool for managing secrets" Documentation=https://www.vaultproject.io/docs/ Requires=network-online.target After=network-online.target ConditionFileNotEmpty=/etc/vault/config.json [Service] User=vault Group=vault ProtectSystem=full ProtectHome=read-only PrivateTmp=yes PrivateDevices=yes SecureBits=keep-caps AmbientCapabilities=CAP_IPC_LOCK Capabilities=CAP_IPC_LOCK+ep CapabilityBoundingSet=CAP_SYSLOG CAP_IPC_LOCK NoNewPrivileges=yes ExecStart=/usr/bin/vault server -config=/etc/vault/config.json ExecReload=/bin/kill --signal HUP $MAINPID KillMode=process KillSignal=SIGINT Restart=on-failure RestartSec=5 TimeoutStopSec=30 StartLimitIntervalSec=60 StartLimitBurst=3 LimitNOFILE=65536 [Install] WantedBy=multi-user.target

# vi /etc/vault/config.json
{ "listener": [ { "tcp": { "address": "0.0.0.0:8200", "tls_disable": 1 } } ], "api_addr": "http://0.0.0.0:8200", "storage": { "file": { "path": "/var/lib/vault/" } }, "max_lease_ttl": "10h", "default_lease_ttl": "10h", "ui": true }

- ui : kích hoạt giao diện quản lý Vault.
- storage : lựa chọn hình thức lưu trữ dữ liệu Vault.
- api_addr : địa chỉ IP cung cấp cách thức access API Vault.
- listener : khai báo port listen cho API Vault và web.
# chown vault:vault -R /etc/vault/
# chmod 640 /etc/vault/config.json
# chmod 0644 /etc/systemd/system/vault.service
# systemctl daemon-reload
# systemctl enable vault.service
# systemctl start vault.service
# systemctl status vault

2. Cấu hình dịch vụ Vault cơ bản
Khi bạn sử dụng chương trình lệnh ‘vault‘ cli trên Linux, bạn cần export biến môi trường thể hiện thông tin địa chỉ máy chủ Vault . Ví dụ địa chỉ IP Local của máy chủ Vault của mình là “10.110.8.80“.# export VAULT_ADDR=http://10.110.8.80:8200
# echo “export VAULT_ADDR=http://10.110.8.80:8200” >> ~/.bashrc

# vault operator init | tee -a /etc/vault/init.config
Unseal Key 1: xXbiIqxGUNFpUG9oBi2AFGktXjaudjvp+rAbkhwDVgSi Unseal Key 2: P7dZfQQ5wK0ZFuDh01x8upXW/bK5pgR1DfSObm8im/Uc Unseal Key 3: 9ZwVyLFwib4tShY0HUoDtxTHCUpDHPzfQDqXcL44ohmY Unseal Key 4: FqtR4Uou7zBsau/dytuX0P7YjG5p4HAtsg0vC1bEF/XB Unseal Key 5: asC3Uxy170mcTnDYAEAKSmt9gOP1fxF3Yp0DMGtVf/Ef

- Dịch vụ Vault hoặc máy chủ Vault bị khởi động lại.
- Bị niêm phong bởi API
# vault operator unseal xXbiIqxGUNFpUG9oBi2AFGktXjaudjvp+rAbkhwDVgSi
# vault operator unseal P7dZfQQ5wK0ZFuDh01x8upXW/bK5pgR1DfSObm8im/Uc
# vault operator unseal 9ZwVyLFwib4tShY0HUoDtxTHCUpDHPzfQDqXcL44ohmY

# vault status


