はじめに
ボールト 認証と承認に使用されるデータを保存、制御、および保護します。 Vaultは、パスワード、証明書、またはAPIへのアクセスを制限または承認するシークレットの管理システムです。また、データの暗号化、オンデマンドシークレット、および失効も提供します。
このチュートリアルでは、CentOSにVaultをインストールし、Vaultをサービスとして実行する方法を学びます。
前提条件
- CentOSLinuxシステム
- sudoのユーザーアカウント 特権
- コマンドライン/ターミナルウィンドウへのアクセス( Ctrl + Alt + F2 )
CentOSにバイナリからVaultをインストールする
1. Vaultをインストールする前に、mkirコマンドを使用してLinuxに新しいディレクトリを作成し、ソフトウェアに必要なバイナリパッケージとその他のデータを保存します。説明のために、「ディレクトリ」という名前を付け、次のコマンドを実行して作成します。
sudo mkdir -p /opt/vault/directory
2.ディレクトリを設定したら、Vaultの公式Webサイトからバイナリをダウンロードします。 Webサイトに移動し、青いダウンロードアイコンをクリックします。
3. CentOSオペレーティングシステム(Linux)に適したパッケージを見つけて、タイルをクリックします。
4.Linuxアイコンとダウンロードボタンが表示されます。ボタンを右クリックして、[リンクの場所をコピー]を選択します。
5.次に、コマンドラインに戻ります。 wget
を使用する コマンドと、バイナリをダウンロードするために前の手順でコピーしたリンクの場所:
sudo wget https://releases.hashicorp.com/vault/1.2.3/vault_1.2.3_linux_amd64.zip
6.次に、次のコマンドを使用してパッケージを解凍します。
unzip vault_1.2.3_linux_amd64.zip
7.解凍したら、次のように入力します。
sudo chown root:root vault
sudo mv vault /usr/local/bin/ (or to som other DIR that's present in your $PATH
8.次のコマンドを使用してVaultが実行されていることを確認します。
vault --version
出力には、システムで実行されているVaultのバージョンが表示されます。
詳細については、次のコマンドを使用してヘルプページにプロンプトを表示できます。
vault
Vaultの構成
Vaultのサービスユーザーを作成する
特権アカウントのセキュリティを検討し、Vaultサーバーを実行するための非特権システムユーザーを別に用意することをお勧めします。
次のコマンドを使用して、システムユーザーを作成し、インストールディレクトリの所有権を付与します。
sudo useradd --system -home /etc/vault.d - shell /bin/false vault
次のコマンドでサービスユーザーを正常に作成したかどうかを確認します。
sudo grep vault /etc/passwd
出力には、次の行のようなものが表示されます。
vault:x:997:995::/etc/vault.d:/bin/false
サービスとしてのVaultの実行
Vaultをサービスとして実行するには、新しいSystemdサービスファイルも作成する必要があります。
sudo 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.d/vault.hcl
StartLimitIntervalSec=60
StartLimitBurst=3
[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/local/bin/vault server -config=/etc/vault.d/vault.hcl
ExecReload=/bin/kill --signal HUP $MAINPID
KillMode=process
KillSignal=SIGINT
Restart=on-failure
RestartSec=5
TimeoutStopSec=30
StartLimitInterval=60
StartLimitIntervalSec=60
StartLimitBurst=3
LimitNOFILE=65536
LimitMEMLOCK=infinity
[Install]
WantedBy=multi-user.target
次のコマンドを使用してサービスを有効にして開始します:
sudo systemctl enable vault.service
sudo systemctl start vault.service
Vaultの管理の準備
次のステップは、次のコマンドを使用してVaultbinディレクトリをPATH環境変数に移動することです。
export PATH=$PATH:/opt/vault/bin
echo "export PATH=$PATH:/opt/vault/bin" >> ~/.bashrc
続いて、次のように入力してVaultの環境変数を設定します。
export VAULT_ADDRESS=http://10.128.0.2:8200
echo "export VAULT_ADDR=http://10.128.0.2:8200" >> ~/.bashrc
ボールトの初期化と開封
Vaultを初期化して開封するには、最初にVaultを開発モードのサーバーとして起動する必要があります。 。ただし、本番環境で開発サーバーを実行しないように注意してください。
次のコマンドを実行します:
vault server -dev
このコマンドは、サーバー構成を含む出力を生成します 、開封キー 、およびルートトークン 。次の手順で必要になるため、開封キーとルートトークンの値を保存します。
環境変数を設定することから始めます。このコマンドは、前の手順の出力の一部として表示されます。
export VAULT_ADDR=’http://127.0.0.1:8200’
次に、開発サーバーの出力からの情報を使用して次のコマンドを実行します。
export VAULT_DEV_ROOT_TOKEN_ID=”XXXXXXXXXXXXXXXX”
サーバーのステータスを確認します:
valut status
出力には、Vaultが初期化され、封印されていないことが表示されます。
Key Value
--- -----
Seal Type shamir
Initialized true
Sealed false
Total Shares 1
Threshold 1
Version 1.2.3
Cluster Name vault-cluster-18e6bce0
Cluster ID 16382125-eb14-f23a-8145-ad64eee072cf
HA Enabled false