シークレットマネージャー CLI
シークレットマネージャーのコマンドラインインターフェイス(CLI)は、シークレットを取得し注入するための強力なツールです。シークレットマネージャーCLIは、あなたの保管庫を作成、削除、編集、そしてあなたの秘密とプロジェクトをリストするために使用できます。
シークレットマネージャーのCLIは自己文書化されています。コマンドラインから、以下を使用して利用可能なコマンドについて詳しく学びましょう:
Bashbws --help, -hダウンロードしてインストールしてください
CLIはWindows、macOS、およびLinuxディストリビューションでクロスプラットフォームとして使用することができます。シークレットマネージャー CLI をダウンロードしてインストールするには:
https://github.com/bitwarden/sdk/releasesからシークレットマネージャーCLIをダウンロードしてください。
認証
シークレットマネージャーのCLIは、特定のサービスアカウントに対して生成されたアクセストークンを使用してログインすることができます。これは、サービスアカウントがアクセスできるシークレットとプロジェクトのみがCLIを使用して操作できることを意味します。CLIセッションを認証する方法はいくつかあります:
あなたは環境変数BWS_ACCESS_TOKENにアクセストークンの値を保存することで、CLIセッションを認証することができます。例えば:
Bashexport BWS_ACCESS_TOKEN=0.48c78342-1635-48a6-accd-afbe01336365.C0tMmQqHnAp1h0gL8bngprlPOYutt0:B3h5D+YgLvFiQhWkIq6Bow==warning
あなたのワークフローが多くの別々のセッション(アクセストークンを使用して認証する各使用が「セッション」を構成する)を使用して、短時間で同じIPアドレスからリクエストを行う場合、レート制限に遭遇する可能性があります。
コマンド
コマンドは、シークレットマネージャーCLIと対話するために使用されます。シークレットとプロジェクトは、特定のアクセストークンに与えられた権限によって読み取りまたは書き込みが可能です。シークレットとプロジェクトに利用可能なコマンドに関する追加の詳細については、以下を使用してください:
bws secret --helpbwsプロジェクト --ヘルプ
note
シークレットマネージャーのバージョン0.3.0から、CLIの構文が変更されました。たとえば、シークレットをリストするコマンドは、bws list secretsからbws secret listに変更されました。
古い構文は一時的にシークレットマネージャーCLIでサポートされたままになります。あなたがどのバージョンのシークレットマネージャーCLIを使用しているのかわからない場合は、bws --versionを入力してください。
秘密
シークレットコマンドは、シークレットにアクセスし、操作し、作成するために使用されます。すべてのコマンドと同様に、アクセストークンのアクセス範囲外のプロジェクトや秘密は読み取りまたは書き込みができません。
秘密を作る
新しいシークレットを作成するには、bws secret createを使用してください。このコマンドは、キー、値、およびプロジェクトIDが必要です。
Bashbws secret create <KEY> <VALUE> <PROJECT_ID>必要に応じて、--note オプションを使用してメモを追加することができます。例えば:
Bashbws secret create SES_KEY 0.982492bc-7f37-4475-9e60 f588b2f2-4780-4a78-be2a-b02d014d622f --note "API Key for AWS SES"このコマンドは、デフォルトではJSONオブジェクトを返し、シークレットをシークレットマネージャーに保存します。出力形式は--outputフラグを使用して変更できます(詳細を学ぶ)。
Bash{
"object": "secret",
"id": "be8e0ad8-d545-4017-a55a-b02f014d4158",
"organizationId": "10e8cbfa-7bd2-4361-bd6f-b02e013f9c41",
"projectId": "e325ea69-a3ab-4dff-836f-b02e013fe530",
"key": "SES_KEY",
"value": "0.982492bc-7f37-4475-9e60",
"note": "API Key for AWS SES",
"creationDate": "2023-06-28T20:13:20.643567Z",
"revisionDate": "2023-06-28T20:13:20.643567Z"
}秘密の削除
bws secret 削除 を使用して、SECRET_IDSによって指定された1つまたは複数の秘密を削除します。
Bashbws secret delete <SECRET_IDS>id be8e0ad8-d545-4017-a55a-b02f014d4158の単一の秘密を削除するには:
Bashbws secret delete be8e0ad8-d545-4017-a55a-b02f014d4158複数の秘密について、IDは382580ab-1368-4e85-bfa3-b02e01400c9fと47201c5c-5653-4e14-9007-b02f015b2d82です:
Bashbws secret delete 382580ab-1368-4e85-bfa3-b02e01400c9f 47201c5c-5653-4e14-9007-b02f015b2d82出力:
Bash1 secret deleted successfully.
秘密の編集
秘密を編集するには、以下の構造が選択した値に変更を適用します。CLI からこのコマンドを使用して、シークレットKEY 、 VALUE 、 NOTE 、またはPROJECT_IDを編集できます。
Bashbws secret edit <SECRET_ID> --key <KEY> --value <VALUE> --note <NOTE> --project-id <PROJECT_ID>例えば、既存の秘密にメモを追加したい場合は:
Bashbws secret edit be8e0ad8-d545-4017-a55a-b02f014d4158 --note "I am adding a note"note
スペースを含むメモを編集するときは、文字列の周りに引用符を含めてください。
SES_KEY2 が新しいキーであり、0.1982492bc-7f37-4475-9e60が新しい値である複数のフィールドを編集するには:
Bashbws secret edit be8e0ad8-d545-4017-a55a-b02f014d4158 --key SES_KEY2 --value 0.1982492bc-7f37-4475-9e60
出力:
Bash{
"object": "secret",
"id": "be8e0ad8-d545-4017-a55a-b02f014d4158",
"organizationId": "10e8cbfa-7bd2-4361-bd6f-b02e013f9c41",
"projectId": "e325ea69-a3ab-4dff-836f-b02e013fe530",
"key": "SES_KEY2",
"value": "0.1982492bc-7f37-4475-9e60",
"note": "I am adding a note",
"creationDate": "2023-06-28T20:13:20.643567Z",
"revisionDate": "2023-06-28T20:45:37.46232Z"
}秘密を得る
特定のシークレットを取得するには、bws secret getを使用してください。
Bashbws secret get <SECRET_ID>デフォルトでは、このコマンドはSECRET_IDを使用してシークレットオブジェクトを取得します。
Bashbws secret get be8e0ad8-d545-4017-a55a-b02f014d4158デフォルトでは、getは次の例に示すように、オブジェクトをJSON配列として返します。出力形式は--outputフラグを使用して変更できます(詳細を学ぶ)。
Bash{
"object": "secret",
"id": "be8e0ad8-d545-4017-a55a-b02f014d4158",
"organizationId": "10e8cbfa-7bd2-4361-bd6f-b02e013f9c41",
"projectId": "e325ea69-a3ab-4dff-836f-b02e013fe530",
"key": "SES_KEY",
"value": "0.982492bc-7f37-4475-9e60",
"note": "",
"creationDate": "2023-06-28T20:13:20.643567Z",
"revisionDate": "2023-06-28T20:13:20.643567Z"
}秘密のリスト
サービスアカウントがアクセスできるシークレットをリストするには、次のコマンドを使用します:
Bashbws secret list次のコマンドを使用して、特定のプロジェクト内の秘密だけをリストにすることもできます。ここで、e325ea69-a3ab-4dff-836f-b02e013fe530はプロジェクト識別子を表します:
Bashbws secret list e325ea69-a3ab-4dff-836f-b02e013fe530デフォルトでは、listは次の例のようにJSON配列としてオブジェクトを返します。出力形式は--outputフラグを使用して変更できます(詳細を学ぶ)。
Bash[
{
"object": "secret",
"id": "382580ab-1368-4e85-bfa3-b02e01400c9f",
"organizationId": "10e8cbfa-7bd2-4361-bd6f-b02e013f9c41",
"projectId": "e325ea69-a3ab-4dff-836f-b02e013fe530",
"key": "Repository 1",
"value": "1234567ertthrjytkuy",
"note": "Main Repo",
"creationDate": "2023-06-27T19:25:15.822004Z",
"revisionDate": "2023-06-27T19:25:15.822004Z"
},
{
"object": "secret",
"id": "be8e0ad8-d545-4017-a55a-b02f014d4158",
"organizationId": "10e8cbfa-7bd2-4361-bd6f-b02e013f9c41",
"projectId": "e325ea69-a3ab-4dff-836f-b02e013fe530",
"key": "SES_KEY",
"value": "0.982492bc-7f37-4475-9e60",
"note": "",
"creationDate": "2023-06-28T20:13:20.643567Z",
"revisionDate": "2023-06-28T20:13:20.643567Z"
}
]
プロジェクト
プロジェクトコマンドは、プロジェクトにアクセスし、操作し、作成するために使用されます。あなたのサービスアカウントに割り当てられたアクセスの範囲は、プロジェクトコマンドで何が完了できるかを決定します。
note
プロジェクトは、読み取り専用アクセスを持つサービスアカウントによって作成することができます。しかし、サービスアカウントによって作成されていない既存のプロジェクトは、読み取りと書き込みのアクセス権がなければ編集することはできません。
プロジェクト作成
新しいプロジェクトを作成するには、bws project create を使用してください。このコマンドは名前が必要です。
Bashbws project create <NAME>この例では、マイプロジェクトという名前のプロジェクトが作成されます。
Bashbws project create "My project"デフォルトでは、bws project createは次の例のように、オブジェクトをJSON配列として返します。出力形式は--outputフラグを使用して変更できます(詳しくはこちら)。
Bash{
"object": "project",
"id": "1c80965c-acb3-486e-ac24-b03000dc7318",
"organizationId": "10e8cbfa-7bd2-4361-bd6f-b02e013f9c41",
"name": "My project",
"creationDate": "2023-06-29T13:22:37.942559Z",
"revisionDate": "2023-06-29T13:22:37.942559Z"
}プロジェクト削除
bws project 削除 を使用して、PROJECT_IDSで指定された1つまたは複数のプロジェクトを削除します。
Bashbws project delete <PROJECT_IDS>単一のプロジェクトについて、f1fe5978-0aa1-4bb0-949b-b03000e0402aはPROJECT_IDを表します:
Bashbws project delete f1fe5978-0aa1-4bb0-949b-b03000e0402a複数のプロジェクトにおいて、1c80965c-acb3-486e-ac24-b03000dc7318 と f277fd80-1bd2-4532-94b2-b03000e00c6c が PROJECT_IDS を表します:
Bashbws project delete 1c80965c-acb3-486e-ac24-b03000dc7318 f277fd80-1bd2-4532-94b2-b03000e00c6c出力:
Bash1 project deleted successfully.
プロジェクトの編集
編集コマンドを使用すると、次の入力でプロジェクトの名前を変更することができます:
Bashbws project edit <PROJECT_ID> --name <NEW_NAME>たとえば、このコマンドはプロジェクト名をマイプロジェクト2に変更します。
Bashbws project edit 1c80965c-acb3-486e-ac24-b03000dc7318 --name "My project 2"デフォルトでは、bwsプロジェクト編集は、次の例のようにオブジェクトをJSON配列として返します。出力形式は--outputフラグを使用して変更できます(詳細を学ぶ)。
Bash{
"object": "project",
"id": "1c80965c-acb3-486e-ac24-b03000dc7318",
"organizationId": "10e8cbfa-7bd2-4361-bd6f-b02e013f9c41",
"name": "My project 2",
"creationDate": "2023-06-29T13:22:37.942559Z",
"revisionDate": "2023-06-29T13:31:07.927829Z"
}プロジェクトを取得
getコマンドは、ログインしたサービス アカウントがコンテナーからアクセスできる特定のプロジェクトを取得します。サービスアカウントがアクセスできない保管庫内のオブジェクトは取得できません。
Bashbws project get <PROJECT_ID>特定のプロジェクトを取得するには、e325ea69-a3ab-4dff-836f-b02e013fe530がPROJECT_IDを表す次のコマンドを使用します:
Bashbws project get e325ea69-a3ab-4dff-836f-b02e013fe530デフォルトでは、getは次の例のようにJSON配列としてオブジェクトを返します。出力形式は--outputフラグを使用して変更できます(詳細を学ぶ)。
Bash{
"object": "project",
"id": "e325ea69-a3ab-4dff-836f-b02e013fe530",
"organizationId": "10e8cbfa-7bd2-4361-bd6f-b02e013f9c41",
"name": "App 1",
"creationDate": "2023-06-27T19:24:42.181607Z",
"revisionDate": "2023-06-27T19:24:42.181607Z"
}プロジェクトリスト
このサービスアカウントがアクセスできるプロジェクトをリストするには、次のコマンドを使用してください:
Bashbws project listデフォルトでは、listは次の例のようにJSON配列としてオブジェクトを返します。出力形式は--outputフラグを使用して変更できます(詳細を学ぶ)。
Bash[
{
"object": "project",
"id": "e325ea69-a3ab-4dff-836f-b02e013fe530",
"organizationId": "10e8cbfa-7bd2-4361-bd6f-b02e013f9c41",
"name": "App 1",
"creationDate": "2023-06-27T19:24:42.181607Z",
"revisionDate": "2023-06-27T19:24:42.181607Z"
}.
...
]設定
configコマンドは、シークレットマネージャーCLIが使用するサーバー設定を指定します。bws configの主な用途は、CLI をセルフホスト型 Bitwarden サーバに接続することです。
利用可能な設定には、例えば、server-base、server-api、server-IDが含まれます。
Bashbws config server-base https://my_hosted_server.comこの方法で行うと、指定したサーバーの値はデフォルトプロファイルに保存され、~/.bws/config ファイルに保存されます。次のオプションを使用して、代替のプロファイルと設定ファイルを作成することができます:
設定 --プロファイル
--profileオプションをconfigコマンドと一緒に使用して、指定されたサーバーの値を代替プロファイルに保存します。例えば:
Bashbws config server-base http://other_hosted_server.com --profile dev一度作成すると、そのプロファイルを他のコマンドと一緒に使用して、指定されたサーバーへのリクエストをルーティングすることができます。例えば:
Bashbws secret get 2863ced6-eba1-48b4-b5c0-afa30104877a --profile devconfig --config-file
--config-fileオプションをconfigコマンドと一緒に使用して、指定されたサーバー値を代替の設定ファイルに保存します。例えば、新しい設定ファイルのデフォルトプロファイルに値を保存するために使用します。
Bashbws config server-base http://third_hosted_server.com --config-file ~/.bws/alt_configあなたは--config-fileと--profileを連鎖させて、代替の設定ファイルの代替プロファイルに値を保存することができます。例えば:
Bashbws config server-base http://third_hosted_server.com --config-file ~/.bws/alt_config --profile alt_dev一度作成すると、そのプロファイルを他のコマンドと一緒に使用して、指定されたサーバーへのリクエストをルーティングすることができます。例えば:
Bashbws secret get 2863ced6-eba1-48b4-b5c0-afa30104877a --config-file ~/.bws/alt_config --profile alt_devオプション
-o、--output
デフォルトでは、シークレットマネージャーのCLIは、コマンドに対する応答としてJSONオブジェクトまたはJSONオブジェクトの配列を返します。出力形式は、以下のオプションのいずれかとともに-o、--outputフラグを使用して、あなたのニーズに合わせて変更することができます。
json: デフォルト。JSONを出力します。yaml: YAMLを出力します。テーブル: キーを列見出しとしてASCIIテーブルを出力します。tsv: キーなしでタブ区切りの値を出力します。none: エラーと警告のみを出力します。env: 秘密鍵をKEY=VALUE形式で出力します。
例えば、コマンド:
Bashbws secret get 2863ced6-eba1-48b4-b5c0-afa30104877a --output yaml次のものを返します:
Bashobject: secret
id: 2863ced6-eba1-48b4-b5c0-afa30104877a
organizationId: b8824f88-c57c-4a36-8b1a-afa300fe0b52
projectId: 1d0a63e8-3974-4cbd-a7e4-afa30102257e
key: Stripe API Key
value: osiundfpowubefpouwef
note: 'These are notes.'
creationDate: 2023-02-08T15:48:33.470701Z
revisionDate: 2023-02-08T15:48:33.470702Znote
env出力形式を使用している間、キー名がPOSIX準拠でない場合、そのキー値ペアはコメントアウトされ、出力が変更されたことを示すコメントが出力の最下部に表示されます。
--output envフラグを使用して、例えば:
Bashbws secret list --output env次のものを返します:
Bashthis_is_a_keyname="this is a key value"
CLOUDFLARE_API_TOKEN="123412341234123412341234"
# This is an invalid keyname="this will get commented-out"
# one or more secrets have been commented-out due to a problematic key name-c, --カラー
出力は、カラー化した出力を希望するかどうかを指定することでさらにカスタマイズできます。このオプションの利用可能な値は、はい、いいえ、そして自動です。
--アクセストークン
-t、--access-token オプションを使用して、個々のコマンドで個々のCLIリクエストを認証できます。例えば:
Bashbws secret list --access-token 0.48c78342-1635-48a6-accd-afbe01336365.C0tMmQqHnAp1h0gL8bngprlPOYutt0:B3h5D+YgLvFiQhWkIq6Bow==--プロフィール
--profileオプションをlistまたはgetコマンドと一緒に使用して、使用するプロファイルを指定します。例えば:
Bashbws secret get 2863ced6-eba1-48b4-b5c0-afa30104877a --profile dev代替プロファイルの理解と設定のために、configコマンド(ここ)を参照してください。
--設定ファイル
--config-fileオプションを--profileオプションとlistまたはgetコマンドと一緒に使用して、どの設定ファイルのどのプロファイルを使用するかを指定します。例えば:
Bashbws secret get 2863ced6-eba1-48b4-b5c0-afa30104877a --config-file ~/.bws/alt_config --profile alt_dev代替の設定ファイルとプロファイルの理解と設定についてのヘルプは、設定コマンド(ここ)を参照してください。
--サーバーURL
このオプションは、CLIが特定のコマンドに関連するリクエストを送信するサーバーURLを設定するために使用できます。例えば:
Bashbws list secrets --server-url http://my_hosted_server.comこのオプションは、configコマンド(こちらを参照)で設定されたURLを上書きします。
--ヘルプ
このオプションを使用して、指定されたbwsコマンドのヘルプを印刷します。
--バージョン
このオプションを使用して、使用中のbwsクライアントのバージョンを印刷します。