DocsSecrets ManagerDeveloper Tools

Secrets Manager CLI

Secrets Manager kommandoradsgränssnitt (CLI) är ett kraftfullt verktyg för att hämta och injicera dina hemligheter. Secrets Manager CLI kan användas för att organisera ditt valv med att skapa, ta bort, redigera och lista dina hemligheter och projekt. Secrets Manager CLI har två köralternativ:

Secrets Manager CLI är självdokumenterad. Lär dig mer om de tillgängliga kommandona från kommandoraden med:

Bash
bws --help, -h

Ladda ner och installera

CLI kan användas plattformsoberoende på Windows-, macOS- och Linux-distributioner. För att ladda ner och installera Secrets Manager CLI:

Ladda ner Secrets Manager CLI från https://github.com/bitwarden/sdk/releases.

note

When using the downloaded native executable, you'll need to add the executable to your PATH or else run commands from the directory the file is downloaded to.

Kör med Docker

Secrets Manager CLI kan också köras med Docker. Ett exempel på Dockerfile kan finnas i Bitwarden Secrets Manager SDK-förrådet.

Du kan köra Docker-bilden med följande:

Plain Text
docker run --rm -it bitwarden/bws --help
note

If you want to use identical config file paths on your host and in the container, the parent directory must exist on both.

Autentisering

Secrets Manager CLI kan loggas in med en åtkomsttoken som genereras för ett visst maskinkonto. Detta innebär att endast hemligheter och projekt som maskinkontot har tillgång till får interageras med hjälp av CLI. Det finns några sätt du kan autentisera en CLI-session på:

You can authenticate a CLI session by saving an environment variable BWS_ACCESS_TOKEN with the value of your access token, for example:

Bash
export BWS_ACCESS_TOKEN=0.48c78342-1635-48a6-accd-afbe01336365.C0tMmQqHnAp1h0gL8bngprlPOYutt0:B3h5D+YgLvFiQhWkIq6Bow==
warning

If your workflow uses many separate sessions (where each use of an access token to authenticate constitutes a "session") to make requests from the same IP address in a short span of time, you may encounter rate limits.

Kommandon

Kommandon används för att interagera med Secrets Manager CLI. Hemligheter och projekt kan läsas eller skrivas till beroende på vilka behörigheter som ges till din specifika åtkomsttoken. För ytterligare information om de kommandon som är tillgängliga för hemlighet och projekt, använd till exempel:

  • bws kör --hjälp

  • bws hemlighet --hjälp

  • bws-projektet --hjälp

note

As of the Secrets Manager version 0.3.0, CLI syntax has been changed. The command to list secrets, for example has changed from bws list secrets to bws secret list.

The old syntax will temporarily remain supported in the Secrets Manager CLI. If you are not sure what version of the Secrets Manager CLI you're using, enter bws --version.

sikt

Kommandot kör kör kommandon med hemligheter injicerade som miljövariabler, vilket gör att du enkelt kan anpassa befintliga utvecklingsprojekt och skript för att använda säker hemlighetshantering.

warning

Only execute commands that you trust. The run command executes the commands you specify in your shell, so you should not use it to execute binaries, shell scripts, or ad-hoc shell commands that you do not trust. Untrusted executables can contain command injections or other malicious behavior that would gain access to secrets when running inside of bws run.

You can execute single commands using bws run -- 'your-command':

Bash
# run an npm project with secrets injected bws run -- 'npm run start'
tip

Most command-line utilities are subject to the limitations of POSIX. POSIX-compliance requires that environment variable names only consist of alpha-numeric characters or underscores and may only begin with letters or an underscore.

The Secrets Manager CLI will still set secret names that are not POSIX-compliant as environment variables, however they may only be accessible from programs that are not limited by POSIX-compliance. Refer to the section describing the --uuids-as-keynames argument for an easy way to ensure POSIX-compliant environment variable names for your secrets.

kör --projekt-id

Använd alternativet --project-id med körkommandot för att injicera hemligheter från ett enskilt projekt, till exempel:

Bash
bws run --project-id 7b006643-89c1-4202-a5ca-90510f566030 -- echo "only secrets from the specified project will be available"

kör --shell

Kommandot kör använder som standard sh på Linux och macOS och PowerShell på Windows. Använd alternativet --shell med kommandot run för att köra med ett annat installerat skal, till exempel:

Bash
bws run --shell fish -- echo “running a command with the Fish shell”

kör --no-inherit-env

Använd alternativet --no-inherit-env med körkommandot för att köra din process utan att ärva de flesta miljövariabler från ditt skal, till exempel:

tip

While the --no-inherit-env argument attempts to drop environment variables from your shell, it will always inherit $PATH. Additionally, some environment variables ($PWD, $SHLVL, etc.) will be set automatically by the shell itself, and therefore likely be present.

Bash
bws run --no-inherit-env -- echo "running a command with a minimal environment"
warning

The --no-inherit-env argument is an easy way to drop environment variables from your shell that may conflict with the process being executed. This option does not create a sandbox. The process you execute will have the same access to your system that any other non-sandboxed applications would.

kör --uuids-som-nyckelnamn

Som standard kommer körkommandot att ta hemliga namn och ställa in dem som miljövariabler i processen som körs. Använd argumentet --uuids-as-keynames med runkommandot för att använda POSIX-kompatibla hemliga ID:n som miljövariabelnamn istället, till exempel:

Bash
# echo a secret’s value by its POSIX-compliant UUID bws run --uuids-as-keynames -- 'echo $_64246aa4_70b3_4332_8587_8b1284ce6d76'

Alternativt kan du ställa in BWS_UUIDS_AS_KEYNAMES=true som en miljövariabel för att ha samma effekt som att skicka argumentet.

tip

Since UUIDS contain hyphens, and sometimes begin with numbers, the --uuids-as-keynames argument will replace hyphens with underscores and always prepend an underscore to secret UUIDS to ensure POSIX-compliance. For example, as secret with the ID 64246aa4-70b3-4332-8587-8b1284ce6d76 is converted to _64246aa4_70b3_4332_8587_8b1284ce6d76.

hemlighet

Det hemliga kommandot används för att komma åt, manipulera och skapa hemligheter. Som med alla kommandon kan hemligheter och projekt utanför din åtkomsttokens åtkomstomfång inte läsas eller skrivas till.

hemligt skapa

Använd bws secret create för att skapa en ny hemlighet. Detta kommando kräver en KEY, VALUE och PROJECT_ID:

Bash
bws secret create <KEY> <VALUE> <PROJECT_ID>

Alternativt kan du lägga till en anteckning med --note<NOTE> alternativ. Till exempel:

Bash
bws secret create SES_KEY 0.982492bc-7f37-4475-9e60 f588b2f2-4780-4a78-be2a-b02d014d622f --note "API Key for AWS SES"

Detta kommando returnerar som standard ett JSON-objekt och sparar hemligheten i Secrets Manager. Du kan ändra utdataformatet med flaggan --output (läs mer).

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" }

hemlig radering

Använd bws secret delete för att ta bort en eller flera hemligheter som anges av SECRET_IDS.

Bash
bws secret delete <SECRET_IDS>

Så här raderar du en enda hemlighet med id:t be8e0ad8-d545-4017-a55a-b02f014d4158:

Bash
bws secret delete be8e0ad8-d545-4017-a55a-b02f014d4158

För flera hemligheter där ID:n är 382580ab-1368-4e85-bfa3-b02e01400c9f och 47201c5c-5653-4e14-9007-b02f015b2d82:

Bash
bws secret delete 382580ab-1368-4e85-bfa3-b02e01400c9f 47201c5c-5653-4e14-9007-b02f015b2d82

Produktion:

Bash
1 secret deleted successfully.

hemlig redigering

För att redigera en hemlighet kommer följande struktur att tillämpa ändringar på det valda värdet. Från CLI kan dessa kommandon redigera den hemliga KEY, VALUE, NOTE eller PROJECT_ID.

Bash
bws secret edit <SECRET_ID> --key <KEY> --value <VALUE> --note <NOTE> --project-id <PROJECT_ID>

Om du till exempel vill lägga till en anteckning till en befintlig hemlighet:

Bash
bws secret edit be8e0ad8-d545-4017-a55a-b02f014d4158 --note "I am adding a note"
note

Include quotation marks around the string when editing a NOTE containing spaces.

För att redigera flera fält där SES_KEY2 är den nya nyckeln och 0.1982492bc-7f37-4475-9e60 är det nya värdet:

Bash
bws secret edit be8e0ad8-d545-4017-a55a-b02f014d4158 --key SES_KEY2 --value 0.1982492bc-7f37-4475-9e60

Produktion:

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" }

hemlig få

Använd bws secret get för att hämta en specifik hemlighet:

Bash
bws secret get <SECRET_ID>

Som standard kommer detta kommando att hämta det hemliga objektet med SECRET_ID.

Bash
bws secret get be8e0ad8-d545-4017-a55a-b02f014d4158

Som standard returnerar get objekt som en JSON-array, som visas i följande exempel. Du kan ändra utdataformatet med flaggan --output (läs mer).

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" }

hemlig lista

För att lista hemligheterna som maskinkontot kan komma åt, använd följande kommando:

Bash
bws secret list

Du kan också lista bara hemligheterna i ett specifikt projekt genom att använda följande kommando, där e325ea69-a3ab-4dff-836f-b02e013fe530 representerar en projektidentifierare:

Bash
bws secret list e325ea69-a3ab-4dff-836f-b02e013fe530

Som standard returnerar list objekt som en JSON-array, som i följande exempel. Du kan ändra utdataformatet med flaggan --output (läs mer).

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" } ]

projekt

Projektkommandot används för att komma åt, manipulera och skapa projekt. Omfattningen av åtkomst som tilldelas ditt maskinkonto avgör vilka åtgärder som kan utföras med projektkommandot.

note

Projects can be created by a machine account with read-only access. However, existing projects that were not created by the machine account cannot be edited without read and write access.

projekt skapa

Använd bws project create för att skapa ett nytt projekt. Detta kommando kräver ett NAME.

Bash
bws project create <NAME>

I det här exemplet kommer ett projekt att skapas med namnet Mitt projekt.

Bash
bws project create "My project"

Som standard returnerar bws project create objekt som en JSON-array, som i följande exempel. Du kan ändra utdataformatet med flaggan --output (läs mer).

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" }

projekt radera

Använd bws project delete för att ta bort ett eller flera projekt som utsetts av PROJECT_IDS.

Bash
bws project delete <PROJECT_IDS>

För ett enskilt projekt där f1fe5978-0aa1-4bb0-949b-b03000e0402a representerar PROJECT_ID:

Bash
bws project delete f1fe5978-0aa1-4bb0-949b-b03000e0402a

För flera projekt där 1c80965c-acb3-486e-ac24-b03000dc7318 och f277fd80-1bd2-4532-94b2-b03000e00c6c representerar PROJECT_IDS:

Bash
bws project delete 1c80965c-acb3-486e-ac24-b03000dc7318 f277fd80-1bd2-4532-94b2-b03000e00c6c

Produktion:

Bash
1 project deleted successfully.

projektredigering

Med hjälp av kommandot edit kan du ändra namnet på ett projekt med följande inmatning:

Bash
bws project edit <PROJECT_ID> --name <NEW_NAME>

Till exempel kommer detta kommando att ändra projektnamnet till Mitt projekt 2.

Bash
bws project edit 1c80965c-acb3-486e-ac24-b03000dc7318 --name "My project 2"

Som standard kommer bws project edit att returnera objekt som en JSON-array, som i följande exempel. Du kan ändra utdataformatet med flaggan --output (läs mer).

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" }

projekt få

Kommandot get hämtar ett specifikt projekt som det inloggade maskinkontot kan komma åt från ditt valv. Objekt i ditt valv som maskinkontot inte har tillgång till kan inte hämtas.

Bash
bws project get <PROJECT_ID>

För att få ett specifikt projekt, använd följande kommando där e325ea69-a3ab-4dff-836f-b02e013fe530 representerar ett PROJECT_ID:

Bash
bws project get e325ea69-a3ab-4dff-836f-b02e013fe530

Som standard returnerar get objekt som en JSON-array, som i följande exempel. Du kan ändra utdataformatet med flaggan --output (läs mer).

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" }

projektlista

För att lista de projekt som detta maskinkonto har åtkomst till, använd följande kommando:

Bash
bws project list

Som standard returnerar list objekt som en JSON-array, som i följande exempel. Du kan ändra utdataformatet med flaggan --output (läs mer).

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

Kommandot config anger serverinställningar som Secrets Manager CLI ska använda. En primär användning av bws config är att ansluta CLI till en Bitwarden-server som är självvärd.

server

Tillgängliga bws-serverinställningar inkluderar server-bas, server-api och server-identitet, till exempel:

Bash
bws config server-base https://my_hosted_server.com # or bws config server-base https://vault.bitwarden.eu
note

If server_api and server_identity are not configured, the values will default to the server_base value. For example:
https://serverbase.com/api
https://serverbase.com/identity


När det är gjort på detta sätt kommer dina angivna servervärden att sparas till en standardprofil i en ~/.config/bws/config-fil. Du kan använda efterföljande alternativ för att skapa alternativa profiler och konfigurationsfiler:

config --profile

Använd alternativet --profile med kommandot config för att spara specificerade servervärden till alternativa profiler, till exempel:

Bash
bws config server-base http://other_hosted_server.com --profile dev

När du väl har skapat den kan du använda den profilen med andra kommandon för att dirigera förfrågningar till den angivna servern, till exempel:

Bash
bws secret get 2863ced6-eba1-48b4-b5c0-afa30104877a --profile dev

config --config-fil

Använd alternativet --config-file med kommandot config för att spara specificerade servervärden till alternativa konfigurationsfiler, till exempel för att spara värden till en standardprofil i en ny konfigurationsfil:

Bash
bws config server-base http://third_hosted_server.com --config-file ~/.bws/alt_config

Du kan kedja --config-file med --profile för att spara värden till alternativa profiler i alternativa konfigurationsfiler, till exempel:

Bash
bws config server-base http://third_hosted_server.com --config-file ~/.bws/alt_config --profile alt_dev

När du väl har skapat den kan du använda den profilen med andra kommandon för att dirigera förfrågningar till den angivna servern, till exempel:

Bash
bws secret get 2863ced6-eba1-48b4-b5c0-afa30104877a --config-file ~/.bws/alt_config --profile alt_dev

config --state

State-filer är helt krypterade filer som lagrar autentiseringstokens och ytterligare relevant data. Tillståndsfiler kan minska hastighetsbegränsningen under autentisering, med hjälp av lagrade tokens för autentisering. Tillståndskatalogens standardplats är ~/.config/bws/state. Tillståndsfilen måste anges med en absolut sökväg:

Plain Text
bws config state-dir /Users/user/Desktop/bws/state

Användare kan välja bort att använda tillståndsfiler genom att gå till ~/.config/bws/config och ställa in state_opt_out till värdena true eller 1.

Konfig Docker

Skicka in konfigurationsfilen till Docker-behållaren med körkommandot:

Plain Text
docker run -it -v /PATH/TO/YOUR/CONFIGFILE:/home/app/.bws/config -e BWS_ACCESS_TOKEN=<ACCESS_TOKEN_VALUE> bitwarden/bws secret list

Alternativ

-o, --utgång

Som standard returnerar Secrets Manager CLI ett JSON-objekt eller en array av JSON-objekt som svar på kommandon. Utdataformatet kan ändras så att det passar dina behov med hjälp av flaggan -o, --output tillsammans med ett av följande alternativ:

  • json: Standard. Utdata JSON.

  • yaml: Utdata YAML.

  • tabell: Mata ut en ASCII-tabell med nycklar som kolumnrubriker.

  • tsv: Mata ut tabbseparerade värden utan nycklar.

  • ingen: Skriv bara ut fel och varningar.

  • env: Utdatahemligheter i formatet KEY=VALUE.

Till exempel kommandot:

Bash
bws secret get 2863ced6-eba1-48b4-b5c0-afa30104877a --output yaml

kommer att returnera följande:

Bash
object: 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.470702Z
note

While using the env output format, if the key name is non-POSIX-compliant, that key value pair will be commented-out and a comment at the bottom of the output will be displayed indicating that the output has been modified.

Använda flaggan --output env, till exempel:

Bash
bws secret list --output env

kommer att returnera följande:

Bash
this_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, --färg

Utdata kan ytterligare anpassas genom att ange om du vill ha färgad utskrift. Tillgängliga värden för detta alternativ är ja, nej och auto.

--access-token

Du kan autentisera individuella CLI-förfrågningar med alternativet -t, --access-token med valfritt individuellt kommando, till exempel:

Bash
bws secret list --access-token 0.48c78342-1635-48a6-accd-afbe01336365.C0tMmQqHnAp1h0gL8bngprlPOYutt0:B3h5D+YgLvFiQhWkIq6Bow==

--profil

Använd alternativet --profile med listan eller hämta kommandon för att ange vilken profil som ska användas, till exempel:

Bash
bws secret get 2863ced6-eba1-48b4-b5c0-afa30104877a --profile dev

Se kommandot config (här) för hjälp med att förstå och ställa in alternativa profiler.

--config-fil

Använd alternativet --config-file med alternativet --profile och lista eller hämta kommandon för att ange vilken profil från vilken konfigurationsfil som ska användas, till exempel:

Bash
bws secret get 2863ced6-eba1-48b4-b5c0-afa30104877a --config-file ~/.bws/alt_config --profile alt_dev

Se config-kommandot (här) för hjälp med att förstå och ställa in alternativa konfigurationsfiler och profiler.

--server-url

Det här alternativet kan användas för att ställa in serverns URL som CLI:n skickar begäran som är kopplad till ett givet kommando till, till exempel:

Bash
bws list secrets --server-url http://my_hosted_server.com

Det här alternativet kommer att åsidosätta alla webbadresser som konfigurerats via kommandot config (se här).

--hjälp

Använd det här alternativet för att skriva ut hjälp för ett givet bws-kommando.

--version

Använd det här alternativet för att skriva ut versionen av bws-klienten du använder.