概要
Keeper Secrets Managerは、DevOpsチームとエンジニアリングチームが特権アカウントへのアクセスを一元的に管理および制御するための、クラウドベースのゼロ知識プラットフォームです。以下は、Secrets Managerの一般的な使用例となります。
ソースコード、設定ファイル、CI/CDシステムからのハードコードされたクレデンシャルの削除
特権パスワード、APIキー、およびその他の管理対象シークレットへのアクセス保護
Keeper Secrets Managerでは、Keeperボルト内の特定のフォルダにアクセスする必要のある各対象環境に対して「アプリケーション」が作成されます。 アプリケーションに対して、ボルト内の1つまたは複数の共有フォルダや記録へのアクセス権を付与できます。アプリケーションは、1つまたは複数の「クライアント」から利用できます。クライアントはSecrets Managerインフラストラクチャによって個別に認証および管理されます。
たとえば、Keeperの「アプリケーション」が運用システムとなり、運用システム内の個々のウェブサーバーがクライアントになる場合もあります。各クライアントは、リクエストの署名に使用するクライアントIDと秘密鍵を使用して、Keeperボルトに対して認証されて通信します。
本ページのコマンドを使用して、Keeper Secrets Managerアプリケーションとクライアントデバイスを設定します。
アプリケーションを作成
secrets-manager app create <APPLICATION NAME>
My Vault> secrets-manager app create MyApplication
新しいシークレットを作成
ボルトのユーザーインターフェースから実行できますが、ここではシークレットを作成し、共有フォルダを作成してから、そのシークレットを共有フォルダに移動することにします。以下はコマンドの例です。
My Vault> add --login admin --pass "46$$625" --url "192.168.1.1" -t "Test Secret"
My Vault> mkdir -sf -a "My Shared Folder"
My Vault> mv "Test Secret" "My Shared Folder"
フォルダをSecrets Managerアプリケーションで共有
My Vault> secrets-manager share add --app MyApplication --secret n4QtaKjRjhWMz5aS7bT77Q
共有フォルダまたは記録UIDを検索するには、「ls -l」コマンドまたは「info」ダイアログのボルトのユーザーインターフェースを使用します。
クライアントにアプリケーションへのアクセスを許可
My Vault> secrets-manager client add MyApplication
このコマンドの出力から、クライアントで使用するワンタイムアクセストークンが得られます。
すべてのアプリケーションの一覧を取得
secrets-manager app list
My Vault> secrets-manager app list
List of all Applications
Title Uid
--------- ----------------------
PythonApp oXMfwo-hzZNRqMXGvJlccQ
TestApp KtU4eAzor5IpqRW3x4A8FA
個々のアプリケーションの詳細を表示
secrets-manager app get <APPLICATION NAME|APP UID>
My Vault> secrets-manager app get MyApplication
Secrets Manager Application
App Name:MyApplication
App UID: ji__h4gaY3xvQdatVY_ffA
Client Device 1
=============================
Name:Device1
Short ID: nWThUIbR
Created On:2021-10-11 16:26:21
First Access:2021-10-11 16:27:05
Last Access:2021-10-11 16:49:47
IP Lock:Disabled
IP Address: --
Application Access
Share Type UID Title Permissions
------------ ---------------------- ---------------------- -------------
FOLDER J6xMIXKiwMqIyYJL7kd3xw Secrets Editable
RECORD mux0ZaWKd-h8maggFzy1rw Database Login Read-Only
コマンド
Keeperコマンドリファレンス
対話型シェル、CLI、JSON設定ファイルのいずれを使用する場合でも、以下のコマンドがサポートされており、各コマンドでは追加のパラメータとオプションがご利用になれます。
特定のコマンドのヘルプを表示するには、次のコマンドを実行します。
help <command>
secrets-managerコマンド形式
Keeper Secrets Managerコマンドの形式は以下のとおりです。
secrets-manager <command> <sub command>
すべてのアプリを一覧表示するには、次のコマンドを使用します。
secrets-manager app list
以下はすべてのsecrets-managerコマンドとその詳細となります。
Keeper Secrets Managerに関連するすべてのコマンド
コマンド | 説明 |
---|
| |
| |
| |
| |
| シークレット (記録または共有フォルダ) をアプリケーションに追加します |
| シークレット (記録または共有フォルダ) をアプリケーションから削除します |
| |
| |
secrets-manager app createコマンド
コマンド: secrets-manager app create
詳細: クライアントをシークレットに関連付けるために使用する新しいアプリケーションを作成します
パラメータ:
アプリケーションの名前
例:
My Vault> secrets-manager app create PythonApp
Application was added successfully
secrets-manager app getコマンド
コマンド: secrets-manager app get
詳細: 指定したアプリケーションに関する情報を表示します
パラメータ:
アプリケーションの名前またはUID
例:
My Vault> secrets-manager app get PythonApp
Secrets Manager Application
App Name:PythonApp
App UID: ji__hxgaY3xvQdefVY_ffA
Client Device 1
=============================
Name:Device1
Short ID: nWThUIbR
Created On:2021-10-11 16:26:21
First Access:2021-10-11 16:27:05
Last Access:2021-10-11 16:49:47
IP Lock:Disabled
IP Address: --
Application Access
Share Type UID Title Permissions
------------ ---------------------- ---------------------- -------------
FOLDER J62WIXgJwMqIyYJL7kd3xw Secrets Editable
RECORD mux0ZaWKd-vpmaggFzLkrw Database Login Read-Only
secrets-manager app removeコマンド
コマンド: secrets-manager app remove
詳細: アプリケーションを削除します
パラメータ:
アプリケーションの名前またはUID
例:
My Vault> secrets-manager app remove PythonApp
This Application (uid:2lj-PaoQp281mTV7GWK5Bw) has 5 client(s), 1 shared folder(s), and 10 record(s).
Are you sure you want to delete this application [y/n]: >? y
>? y
Removed Application uid:2lj-PaoQp281mTV7GWK5Bw
My Vault> secrets-manager app remove KtU4eAzor5IpqRW3x4A8FA
This Application (uid:KtU4eAzor5IpqRW3x4A8FA) has 12 client(s), 1 shared folder(s), and 4 record(s).
Are you sure you want to delete this application [y/n]: >? y
>? y
Removed Application uid:KtU4eAzor5IpqRW3x4A8FA
secrets-manager app listコマンド
コマンド: secrets-manager app list
詳細: すべての作成済みアプリケーションを一覧表示します
例:
My Vault> secrets-manager app list
List of all Applications
Title Uid
--------- ----------------------
PythonApp oXMfwo-hzZNRqMXGvJlccQ
TestApp KtU4eAzor5IpqRW3x4A8FA
secrets-manager share addコマンド
コマンド: secrets-manager share add
詳細: シークレット (記録または共有フォルダ) をアプリケーションに追加します
スイッチ:
--secret、-s <シークレットのUID> 共有するシークレット。フォルダまたはUID記録を指定できます
--app、-a 共有先のアプリケーション
--editable、-e 記録の編集を許可します
例:
My Vault> secrets-manager share add --app PythonApp --secret="-XMfwo-hzZNRqMXGvJlccQ"
Successfully added new record uid=E7YS6Yqmhsip52DzwdC9gw to app uid=oXMfwo-hzZNRqMXGvJlccQ
secrets-manager share removeコマンド
コマンド: secrets-manager share remove
詳細: シークレット (記録または共有フォルダ) をアプリケーションから削除します
スイッチ:
--secret、-s <シークレットのUID> 共有するシークレット。フォルダまたはUID記録を指定できます
--app、-a 共有先のアプリケーション
例:
My Vault> secrets-manager share remove --app PythonApp --secret="-XMfwo-hzZNRqMXGvJlccQ"
Secret share was successfully removed from the application
secrets-manager client addコマンド
コマンド: secrets-manager client add
詳細: アプリケーションへの接続に使用するクライアントをアプリケーションに追加します。このコマンドの出力は、Secrets Manager SDKを使用してクライアントデバイスを初期化するために使用するワンタイムトークンです。
スイッチ:
--name <クライアント名> クライアント名 (デフォルトはランダムな10文字)
--first-access-expires-in-min <分> 初回アクセスの有効期間 (デフォルトは60
、最大は1440)
--access-expire-in-min <分> クライアントアクセスの有効期間 (デフォルトは無期限)
--unlock-ip 最初に要求するデバイスに対してIPアドレスをロックしません
--count <数> 生成するトークンの数 (デフォルトは1)
--config-init <{json、b64、k8s}> ワンタイムトークンから設定文字列を初期化します
--name <名前> クライアントの名前
例 1: 「Test 1」という名前の新しいデバイスを作成し、ワンタイムアクセストークンを生成します。
My Vault> sm client add --app Ansible --name "Test 1"
Successfully generated Client Device
====================================
One-Time Access Token:US:_wYNCeeLmBSdDgkcE77NyMcO-6DqLutNO1NylWVyco
Name:Test 1
IP Lock:Enabled
Token Expires On:2021-09-30 22:52:46
App Access Expires on:Never
例 2: 「Test 2」という名前の新しいデバイスを作成し、IPロックなしの完全に初期化されたJSON設定ファイルを生成します。この設定ファイルは、デバイスに直接読み込めます。
My Vault> sm client add --app Ansible --name "Test 2" --unlock-ip --config-init=json
Successfully generated Client Device
====================================
Initialized Config: {"hostname": "keepersecurity.com","clientId":"XXX","privateKey":"XXX","serverPublicKeyId":"10","appKey":"XXX"}
Name:Test 2
IP Lock:Disabled
Token Expires On:2021-09-30 22:54:11
App Access Expires on:Never
例 3: 「Test 3」という名前の新しいデバイスを作成し、IPロックなしの完全に初期化されたbase64設定文字列を生成します。この設定ファイルは、JSON設定ファイルを使用する代わりに、単一の文字列としてデバイスに読み込めます。
My Vault> sm client add --app Ansible --name "Test 3" --unlock-ip --config-init=b64
Initialized Config: eyJob3N0bmFtJjbGllbnRJZCI6I3lHbXZodUZFITEhBbDhBRmVHK1owSDcrN2czOVMvNGkvTU1lcVhhVi92cTc4S3FqM2VuZkdtQkQzNmhsQT09IiweXFHU000OUFnRUdDQ3FHU000OUF3RUhCRzB3YXdJQkFRUWdqN2diVXM2bXVl0bXA0WjlnR0ttaFJBTkNBQVNrdTZCN3dPclpXSGdhR1lzNE1uRGNyZE5xdXYyRkYmNQWTF3S090ZHppME03c05PTnA4cXppU0VLejhUUGVTIiwic2VydmVyUHVibGljS2V5SWQiOiAiMTAiLCJhcHBLZXkiOiAiUFlqdlcrVTqdUljdUh6UzJHcz0ifQ==
Name:Test 3
IP Lock:Disabled
Token Expires On:2021-09-30 22:59:09
App Access Expires on:Never
例 4: 「Test 4」という名前の新しいデバイスを作成し、IPロックなしの完全に初期化されたKubernetes設定を生成します。YAML出力は、ファイルにカットアンドペーストして適用し、Kubernetesシークレットとして作成できます。
My Vault> sm client add --app Nginx --name "Test 4" --unlock-ip --config-init=k8s
apiVersion: v1
data:
config: eyJob3N0bmFtJjbGllbnRJZCI6I3lHbXZodUZFITEhBbDhBRmVHK1owSDcrN2czOVMvNGkvTU1lcVhhVi92cTc4S3FqM2VuZkdtQkQzNmhsQT09IiweXFHU000OUFnRUdDQ3FHU000OUF3RUhCRzB3YXdJQkFRUWdqN2diVXM2bXVl0bXA0WjlnR0ttaFJBTkNBQVNrdTZCN3dPclpXSGdhR1lzNE1uRGNyZE5xdXYyRkYmNQWTF3S090ZHppME03c05PTnA4cXppU0VLejhUUGVTIiwic2VydmVyUHVibGljS2V5SWQiOiAiMTAiLCJhcHBLZXkiOiAiUFlqdlcrVTqdUljdUh6UzJHcz0ifQ==
kind:Secret
metadata:
name: ksm-config
namespace: default
type:Opaque
Name:Test 4
IP Lock:Disabled
Token Expires On:2021-09-30 22:59:09
App Access Expires on:Never
secrets-manager client removeコマンド
コマンド: secrets-manager client remove
詳細: アプリケーションからクライアントを削除します
スイッチ:
--client アプリケーションから削除するクライアント
--app、-a アプリケーション
--force 承認を求めません
例:
My Vault> secrets-manager client remove --app PythonApp --client MyClient
Are you sure you want to delete 3 matching clients from this application? [y/n]:
>? y
Client removal was successful