profileコマンド

Keeperシークレットマネージャーデバイスのプロファイルの設定と初期化

profileコマンド

説明: デバイスのプロファイルを初期化して切り替えます。同じデバイスで複数の環境をサポートするために、シークレットマネージャーデバイスのプロファイルを切り替えることもできます。

パラメータ

実行するサブコマンドとオプション

形式: ksm profile <サブコマンド>

サブコマンド

サブコマンド説明

init

新しいクライアントデバイスのプロファイルを初期化します

setup

外部ストレージから新しいプロファイルを設定します

list

作成されたプロファイルを一覧表示して、有効なプロファイルを示します

export

設定プロファイルをエクスポートします

import

エクスポートされた暗号化プロファイルから新しい設定を作成します

active

有効な設定プロファイルを指定します

init

クライアントデバイスのプロファイルを初期化します。

ksm profile init

keeper.ini ファイルが現在の作業ディレクトリに作成されます。WindowsまたはMac OSのバイナリアプリケーションの場合、keeper.iniは、ユーザーのホームディレクトリ (${HOME}環境変数または$env:USERPROFILE環境変数) に作成されます。keeper.iniは以下の場所に移動できます。

  • 環境変数KSM_INI_DIRで定義されたパス

  • 現在のディレクトリ

  • ユーザーのホームディレクトリ

    • ${HOME}

    • ${HOME}/.config/ksm

    • $env:USERPROFILE

  • 様々なシステムディレクトリ

    • /etc

    • /etc/ksm

    • /etc/keeper

    • $env:APPDATA/Keeper

    • $env:ProgamData/Keeper

    • $env:ProgramFiles/Keeper

パラメータ

  • -t、--token <トークン> ワンタイムアクセストークン

  • -h、--hostname <XX> 接続先のリージョン

    デフォルトはUSリージョンです。他のリージョンでホストされている場合、以下の値を設定する必要があります。

    • US (米国)

    • EU (ヨーロッパ)

    • AU (オーストラリア)

    • JP (日本)

    • CA (カナダ)

    • US_GOV (GovCloud)

  • --ini-file <ファイル名> 新しいプロファイルをこのファイルに保存します。

  • -p、--profile-name <名前> プロファイル名を設定します。 設定しない場合、プロファイルは「default」に設定されます。

通常KSM CLIを初期化する際には、以下のようにボルトまたはKeeperコマンダーで作成されたトークンを使用します。

$ ksm profile init --token XX:XXXXXXXX

トークンをコマンドライン上で露出させないようにするためには、以下のようにKSM_CLI_TOKEN環境変数を使用してください。

ksm profile init --ini-file=/tmp/custom.ini --profile=non_default

KSM_CLI_TOKEN 環境変数を使用してワンタイムトークンを提供することで、カスタムINIファイルやカスタムプロファイルを選択して作成・上書きすることが可能です。この設定はコマンドラインの--tokenオプションによって上書きすることもできます。

クイックスタートガイドに記載のように、まずコマンダーCLIかKeeperボルトインターフェイスでトークンを作成できます。

My Vault> secrets-manager client add --app MyApplicationName

setup

AWS Secrets Managerなどの外部ストレージからロードされる新しいプロファイルを設定します。これは、クラウドインスタンスから KeeperシークレットマネージャーCLIを使用する際に最適です。この認証方法を使用することで、追加のセキュリティ層が加わります。

AWSのような外部ストレージプロバイダーとの統合には以下の3つの方法があります。

  • EC2インスタンスロール (推奨)

  • AWSプロファイル認証情報

  • AWSカスタムキー

方法1: EC2インスタンスロール

この方法を使用するには、特定のAWS Secrets Managerのシークレットを読み取る権限を持つロールが設定されたEC2インスタンスに、KeeperシークレットマネージャーCLIをインストールする必要があります。特定のキーのみを読み取れる最小限の権限を持つEC2ロールポリシーを設定することを推奨します。 AWS Secrets Managerのアクセス制御についての詳細は、公式ドキュメントをご参照ください。

以下は、AWS EC2インスタンスロールを使用して、EC2インスタンス上でKSM CLIプロファイルを初期化する手順となります。

ksm profile setup --type=aws

これにより、以下のようにAWS内のシークレットキーを定義するkeeper.iniファイルが作成されます。

....

[_default]
storage = aws
provider = ec2instance
secret = ksm-config

デフォルトでは、シークレットキーはksm-configという名前であると仮定されます。異なるキー値を使用したい場合は、keeper.iniファイルを編集するか、--secretオプションを使用して指定します。

ksm profile setup --type=aws --secret my-ksm-config

方法2: AWSプロファイル認証情報

KSM CLI は、事前にこのデバイス上で aws configure コマンドを使用して初期化された特定の AWS プロファイルを利用するよう設定できます。

この方法では、AWS プロファイルの認証情報は、AWS Secrets Managerから特定のキーのみを読み取る権限を持つロールに割り当てる必要があります。AWS Secrets Managerのアクセス制御について、詳しくはこちらのウェブページをご参照ください。

ksm profile setup --type=aws --secret=ksm-config --credentials=profile --credentials-profile=default

方法3: AWSカスタムキー

KSM CLIで特定のAWSアクセスキーとシークレットキーのペアを使用するように設定できます。この場合、アクセスキーとシークレットキーはローカルのkeeper.iniファイルに保存されます。

ksm profile setup --type=aws --secret=ksm-config --credentials=keys --aws-access-key-id XXX --aws-secret-access-key XXX --region XXX

追加のフラグ --fallback を使用すると、初期の認証情報が失敗した場合に、デフォルトのAWSローカル設定からのプロファイルを使用するように指定できます。

KSM CLIのセットアップを完了

セットアップを完了するには、KeeperボルトインターフェースまたはKeeperコマンダーCLIからbase64形式のKSM設定値を生成する必要があります。これについては、クイックスタートガイドにも記載されています。

コマンダーCLIを使用すると、以下のようなコマンドを使用して生成できます。

My Vault> secrets-manager client add --app "My KSM App" --config-init b64

Successfully generated Client Device
====================================

Initialized Config: [Base64 Config....]

次の手順で使用するために、設定値をコピーします。

このKSMデバイスがKeeperシークレットマネージャーと認証するためには、base64形式のKSM設定値をAWS Secrets Managerに入力する必要があります。例えば、AWS CLIを使用して以下のように設定できます。

aws secretsmanager create-secret --name ksm-config --secret-string '[Base64 Config]'

KSM CLIが機能し、ボルトからシークレットにアクセスできることを確認するには、以下のコマンドを使用します。

ksm secret list

 UID                     Record Type          Title
 ----------------------- -------------------- --------------------------
 n9SdOX1cEyMj9Ttj3lsjYQ  pamUser              IAM Account: demouser
 WfxgS6E_bY_tzdIChYIsAA  login                Amazon AWS - john
 toAfybW5SsbhRT9LtZ7oyg  serverCredentials    QA Server

追加のセットアップオプション

--ini-file <ファイル名> 新しいプロファイルをこのファイルに保存します。 -p、--profile-name <名前> プロファイル名を設定します。設定しない場合、プロファイルは「default」として設定されます。

list

現在のクライアントデバイスで利用可能なすべてのプロファイルを一覧で表示します。

ksm profile list

$ ksm profile list

  Active   Profile
 ======== ===============
           Production
  *        Test Server 1
           Test Server 2
           Local Dev

export

現在のプロファイルをbase64でエンコードした文字列にエクスポートします。

ksm profile export [--plain] [--file-format] [プロファイル名]

オプションパラメータ

  • --plain 文字列をbase64でエンコードせずにプロファイルをエクスポートします。

  • --file-format プロファイルを特定のファイル形式にエクスポートします。利用できる形式は以下のとおりです。

    • ini CLIの別のインスタンスで使用されます。

    • json CLIおよびその他の開発者用SDKで使用できます。

$ ksm profile export my_profile

注: KSM構成に外部ストレージプロバイダを使用する場合、プロファイルはエクスポートできません。

import

暗号化されたbase64エンコード文字列からクライアントデバイスのプロファイルをインポートします。

ksm profile import [--output-file "INI filename"] <BASE64 CONFIG>

オプションパラメータ

  • --output-file <INIファイル名> INI設定ファイルの作成場所です。設定されていない場合は、現在のディレクトリに作成されます。

$ ksm profile import --output-file=my_profile BASE64_ENC_CONFIG

active

このクライアントデバイスの現在有効なプロファイルを設定します。

ksm profile active <プロファイル名>

$ ksm profile active production

production is now the active profile.

コンテナ内のプロファイル

コンテナ化された環境内でCLIを実行している場合、プロファイルを初期化できないことがあります。INI構成ファイルが見つからず、環境変数KSM_TOKENが見つかった場合、デフォルトプロファイルが自動生成されます。INI構成ファイルが作成され、現在の作業ディレクトリに格納されます。これは、環境変数KSM_INI_DIRで上書きできます。

デフォルトのINIファイル名

INIファイルのデフォルトの名前はkeeper.iniですが、KSM_INI_FILE環境変数を使用して上書きできます。KSM_INI_DIRおよびKSM_INI_FILE環境変数を使用すると、INI構成ファイルの場所と名前を完全に変更できます。

最終更新