AWS KMSでのゲートウェイ構成

AWS KMSにKeeperゲートウェイ構成を保存

概要

KeeperゲートウェイがAmazon Web Services (AWS) Elastic Compute Cloud (EC2) インスタンスにインストールされている場合、対応するゲートウェイ構成ファイルをAWS Secrets Mangerに保存して保護することができます。ここの方法により、構成ファイルをインスタンスに保存する必要がなくなり、代わりにAWS KMSに保護された状態で構成ファイルを保存できます。

AWSキー管理サービス (KMS) キー

AWS KMSは、データの暗号化と復号化に使用される暗号化キーを簡単に作成および制御できる、完全に管理されたサービスです。このサービスは他のAWSサービスと統合されているため、データの暗号化とキーの管理が簡単になります。このプロセスの一環としてAWS KMSキーが必要になります。このキーに権限を割り当てる際には、最小権限の原則に従うことをお勧めします。

要件

AWS KMSを使用してKeeperゲートウェイの構成シークレットを保護するには、IAMロールが適用されるEC2インスタンスにKeeperゲートウェイをインストールする必要があります。この方法は、DockerインストールおよびLinuxインストールの両方に対応しています。

構成を作成

プレビュー版Keeperボルトで、[Secrets Manager] > [アプリケーション]に進み、ゲートウェイが構成されたアプリケーションを選択します。その後、[ゲートウェイ]タブを開いて[ゲートウェイのプロビジョン]をクリックします。

ゲートウェイの初期化方法として[構成]を選択し、[次へ]をクリックします。

構成方式を選択
Base64構成をコピー

または、ワンタイムアクセストークンを生成し、Keeperゲートウェイのgateway ott-initコマンドを利用することも可能です。

gateway ott-init [ONE-TIME-TOKEN]

いずれの場合でも、base64エンコードされた構成が提供されます。以降の手順で使用しますので保存しておいてください。

AWS Secrets Managerでシークレットを作成

1. AWS Secrets Managerに移動

AWSコンソールから、Secrets Managerへ移動し、新しいシークレットを作成します。

  • [Other type of secret] (その他の種類のシークレット) を選択します。

  • [Plaintext] (プレーンテキスト) を選択してBase64の値をすべて貼り付けます。

  • [Next]をクリックします。

シークレットの名前と説明を入力してから、[Next] > [Next] > [Store]の順にクリックします。

シークレットの名前と説明
シークレットを閲覧

インスタンスロールにポリシーを割り当てる

EC2インスタンスのロールには、以下のように特定のAWS Secrets Managerキーに対する読み取りアクセスを提供するポリシーを割り当てる必要があります。

{
    "Sid": "SecretsManagerPermissions",
    "Effect": "Allow",
    "Action": [
        "secretsmanager:GetSecretValue"
     ],
     "Resource": "arn:aws:secretsmanager:us-west-1:XXX:secret:XXX"
}

アクセスを確認

EC2インスタンスから以下のコマンドを実行することで、ポリシーが適用されているかを確認できます。

aws secretsmanager get-secret-value --secret-id YourSecretName --query SecretString --output text

Keeperゲートウェイの構成

Dockerインストール方式

Dockerインストールの場合、GATEWAY_CONFIGエントリを削除し、AWS_KMS_SECRET_NAMEを追加して、その値にAWS Secrets Managerのシークレット名を指定します。

services:
      keeper-gateway:
        platform: linux/amd64
        image: keeper/gateway:preview
        shm_size: 2g
        security_opt:
          - "seccomp:docker-seccomp.json"
        environment:
          ACCEPT_EULA: Y
          AWS_KMS_SECRET_NAME: "YourSecretName"

その後、新しい環境変数でサービスを更新します。

docker compose pull
docker compose down
docker compose up -d

Linuxインストール方式

Keeperゲートウェイのサービスユニットファイルを開きます。

/etc/systemd/system/keeper-gateway.service

「ExecStart」行を以下のように変更し、「YourSecretName」を割り当てられた名前に置き換えます。

ExecStart=/bin/bash -c "/usr/local/bin/gateway start --service --aws-kms-secret-name="YourSecretName" --log-to-stdout"

サービスに変更を適用します。

sudo systemctl daemon-reload
sudo systemctl restart keeper-gateway

起動時にエラーが発生した場合は、以下のコマンドで確認できます。

systemctl status keeper-gateway.service

最終更新