日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

linux检测hashicorp,在Ubuntu/CentOS/Debian上安装和配置Hashicorp Vault服务器的方法

發(fā)布時(shí)間:2024/1/23 linux 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux检测hashicorp,在Ubuntu/CentOS/Debian上安装和配置Hashicorp Vault服务器的方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本文介紹在Ubuntu 18.04/Debian 9/CentOS 7/Fedora上安裝Vault服務(wù)器(Hashicorp Vault Server)、配置Vault systemd服務(wù)、初始化Vault、配置Vault角色和策略及寫下并獲得Secrets。

簡介

Hashicorp Vault是一款免費(fèi)的開源工具,專為安全存儲和訪問機(jī)密而設(shè)計(jì),Secrets可以是密碼,API密鑰,證書等,Vault Server的工作是為任何存儲的Secret提供統(tǒng)一的接口,同時(shí)提供嚴(yán)格的訪問控制并記錄詳細(xì)的審計(jì)日志。

Vault具有Web用戶界面,你可以使用該界面與Vault進(jìn)行交互,通過UI可以輕松創(chuàng)建,更新,讀取和刪除Secrets,進(jìn)行身份驗(yàn)證,開封等操作。

附:Vault的功能

以下是Vault的主要功能:

Secure Secret Storage:默認(rèn)情況下,Vault會在將Secrets寫入持久存儲之前對其進(jìn)行加密。

Support for Dynamic Secrets:Vault可以按需生成Secrets,并在租約到期后撤銷它們。

Leasing and Renewal:Vault中的所有Secrets都有與之相關(guān)的租約,該secret在租約結(jié)束時(shí)自動撤銷,可以通過內(nèi)置續(xù)訂API進(jìn)行續(xù)訂。

Secrets Revocation:保險(xiǎn)柜不僅可以撤銷單個(gè)Secrets,還可以撤銷Secrets樹,例如特定用戶讀取的所有Secrets,或特定類型的所有Secrets。

在Ubuntu/Debian/CentOS/Fedora上安裝Vault

Vault是用Go編寫的,二進(jìn)制包可用于主要的Unix和Linux發(fā)行版,預(yù)編譯的Vault二進(jìn)制文件位于https://releases.hashicorp.com/vault/頁面,下面下載及使用1.0.3版本:

curl -sO https://releases.hashicorp.com/vault/1.0.3/vault_1.0.3_linux_amd64.zip

提取下載的文件:

unzip vault_1.0.3_linux_amd64.zip

sudo mv vault /usr/local/bin/

對版本的檢查應(yīng)與下載的版本匹配:

$ vault --version

Vault v1.0.3 ('85909e3373aa743c34a6a0ab59131f61fd9e8e43')

啟用命令自動完成:

vault -autocomplete-install

complete -C /usr/local/bin/vault vault

配置Vault systemd服務(wù)

安裝Vault后,讓我們配置systemd服務(wù)來管理其服務(wù),首先創(chuàng)建一個(gè)獨(dú)特的非特權(quán)系統(tǒng)用戶來運(yùn)行Vault。

創(chuàng)建Vault數(shù)據(jù)目錄:

sudo mkdir /etc/vault

sudo mkdir -p /var/lib/vault/data

然后創(chuàng)建名為vault的用戶:

sudo useradd --system --home /etc/vault --shell /bin/false vault

sudo chown -R vault:vault /etc/vault /var/lib/vault/

在/etc/systemd/system/vault.service上創(chuàng)建Vault服務(wù)文件:

cat <

[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.hcl

[Service]

User=vault

Group=vault

ProtectSystem=full

ProtectHome=read-only

PrivateTmp=yes

PrivateDevices=yes

SecureBits=keep-caps

AmbientCapabilities=CAP_IPC_LOCK

NoNewPrivileges=yes

ExecStart=/usr/local/bin/vault server -config=/etc/vault/config.hcl

ExecReload=/bin/kill --signal HUP

KillMode=process

KillSignal=SIGINT

Restart=on-failure

RestartSec=5

TimeoutStopSec=30

StartLimitBurst=3

LimitNOFILE=65536

[Install]

WantedBy=multi-user.target

EOF

創(chuàng)建Vault /etc/vault/config.hcl文件:

touch /etc/vault/config.hcl

將Vault的基本配置設(shè)置添加到/etc/vault/config.hcl文件:

cat <

disable_cache = true

disable_mlock = true

ui = true

listener "tcp" {

address ? ? ? ? ?= "0.0.0.0:8200"

tls_disable ? ? ?= 1

}

storage "file" {

path ?= "/var/lib/vault/data"

}

api_addr ? ? ? ? = "http://0.0.0.0:8200"

max_lease_ttl ? ? ? ? = "10h"

default_lease_ttl ? ?= "10h"

cluster_name ? ? ? ? = "vault"

raw_storage_endpoint ? ? = true

disable_sealwrap ? ? = true

disable_printable_check = true

EOF

你也可以使用Consul Storage后端,但首先你需要安裝Consul,參考在Ubuntu 18.04/16.04系統(tǒng)上設(shè)置Consul Cluster的方法。

Consul后端的配置類似于以下內(nèi)容:

storage "consul" {

address = "127.0.0.1:8500"

path ? ?= "vault"

}

啟動并啟用Vault服務(wù)以在系統(tǒng)引導(dǎo)時(shí)啟動:

sudo systemctl daemon-reload

sudo systemctl enable --now vault

檢查服務(wù)狀態(tài),運(yùn)行systemctl status vault命令,它應(yīng)顯示運(yùn)行狀態(tài):

初始化Vault服務(wù)器

在初始化Vault服務(wù)器之前導(dǎo)出VAULT_ADDR環(huán)境變量:

export VAULT_ADDR=http://127.0.0.1:8200

echo "export VAULT_ADDR=http://127.0.0.1:8200" >> ~/.bashrc

將127.0.0.1替換為Vault服務(wù)器IP地址。

通過運(yùn)行以下命令,使用默認(rèn)選項(xiàng)開始初始化:

sudo rm -rf ?/var/lib/vault/data/*

vault operator init > /etc/vault/init.file

訪問地址如http://serverip:8200/ui中的Vault UI:

將“Unseal Keys”逐個(gè)粘貼到Unseal Vault,你可以在/etc/vault/init.file上獲取密鑰:

$ cat /etc/vault/init.file

Unseal Key 1: bNxZRU3azPZtzXjeS0pfGHLoif3Scs64fFk9j/FFtUN7

Unseal Key 2: kChe6UJ5+BnkU6UjSzalvjIuh01dLX8v/OMabz+uPtly

Unseal Key 3: MIRYhY1zQXZyod05tWtbgAnc14qBXM7hPHrqyEVQ7tCi

Unseal Key 4: KBVhzztVDUJRqNi2LDYfRFHThQe/iDbNdEaOFkAztMDN

Unseal Key 5: GJplvpcPVu6IQeJ3lqa5xvPfXTDA3ftgcZJT6xhrAUUL

Initial Root Token: s.RcW0LuNIyCoTLWxrDPtUDkCw

Vault initialized with 5 key shares and a key threshold of 3. Please securely

distribute the key shares printed above. When the Vault is re-sealed,

restarted, or stopped, you must supply at least 3 of these keys to unseal it

before it can start servicing requests.

Vault does not store the generated master key. Without at least 3 key to

reconstruct the master key, Vault will remain permanently sealed!

It is possible to generate new unseal keys, provided you have a quorum of

existing unseal keys shares. See "vault operator rekey" for more information.

解封Vault后,使用“初始根令牌”登錄Vault:

你應(yīng)該會在下一頁中看到Vault Web管理面板:

你還可以從CLI查看Vault狀態(tài),運(yùn)行vault status命令:

使用curl測試HTTP API端點(diǎn)以檢查初始化狀態(tài):

$ curl http://127.0.0.1:8200/v1/sys/init

{"initialized":true}

配置Vault角色和策略

導(dǎo)出Vault根令牌:

export VAULT_TOKEN="s.RcW0LuNIyCoTLWxrDPtUDkCw"

將“s.BOKlKvEAxyn5OS0LvfhzvBur”替換為存儲在/etc/vault/init.file文件中的初始根令牌。

然后啟用approle auth方法,該方法允許計(jì)算機(jī)或應(yīng)用程序使用Vault定義的角色進(jìn)行身份驗(yàn)證:

$ vault auth enable approle

Success! Enabled approle auth method at: approle/

相同的命令可以用于其他身份驗(yàn)證方法,例如:

# vault auth enable kubernetes

Success! Enabled kubernetes auth method at: kubernetes/

# vault auth enable userpass

Success! Enabled userpass auth method at: userpass/

# vault auth enable ldap

Success! Enabled ldap auth method at: ldap/

使用vault auth list命令列出所有身份驗(yàn)證方法:

也可以從Web界面啟用其他身份驗(yàn)證方法:

可以從Web控制臺“策略(Policies)”部分管理ACL策略:

寫下并獲得Secrets

現(xiàn)在我們已經(jīng)安裝并配置了我們的Vault服務(wù)器,讓我們在Vault中編寫和檢索Secrets,我們使用vault kv來寫Secrets。

獲取Secrets引擎路徑,運(yùn)行vault secrets list命令:

給你的kv secret引擎寫一個(gè)secret:

$ vault kv put secret/databases/db1 username=DBAdmin

Success! Data written to: secret/databases/db1

$ vault kv put secret/databases/db1 password=StrongPassword

Success! Data written to: secret/databases/db1

你甚至可以使用單行命令來寫入多個(gè)數(shù)據(jù):

$ vault kv put secret/databases/db1 username=DBAdmin password=StrongPassword

Success! Data written to: secret/databases/db1

要獲得Secret,請使用vault get命令(vault kv get secret/databases/db1):

以json格式獲取數(shù)據(jù):

$ vault kv get -format=json secret/databases/db1

{

"request_id": "f99170b5-ac38-84ce-8668-1f280b0981c1",

"lease_id": "",

"lease_duration": 36000,

"renewable": false,

"data": {

"password": "StrongPassword",

"username": "DBAdmin"

},

"warnings": null

}

要僅打印給定字段的值,請使用:

$ vault kv get -field=username ?secret/databases/db1

DBAdmin

要?jiǎng)h除Secret,請使用:

$ vault kv delete ? secret/databases/db1

Success! Data deleted (if it existed) at: secret/databases/db1

$ vault kv get ? secret/databases/db1

No value found at secret/databases/db1

相關(guān)主題

總結(jié)

以上是生活随笔為你收集整理的linux检测hashicorp,在Ubuntu/CentOS/Debian上安装和配置Hashicorp Vault服务器的方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。