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:
Bashbws --help, -hLadda 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 Textdocker 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:
Bashexport 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älpbws hemlighet --hjälpbws-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:
Bashbws 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:
Bashbws 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.
Bashbws 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:
Bashbws secret create <KEY> <VALUE> <PROJECT_ID>Alternativt kan du lägga till en anteckning med --note<NOTE> alternativ. Till exempel:
Bashbws 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.
Bashbws secret delete <SECRET_IDS>Så här raderar du en enda hemlighet med id:t be8e0ad8-d545-4017-a55a-b02f014d4158:
Bashbws secret delete be8e0ad8-d545-4017-a55a-b02f014d4158För flera hemligheter där ID:n är 382580ab-1368-4e85-bfa3-b02e01400c9f och 47201c5c-5653-4e14-9007-b02f015b2d82:
Bashbws secret delete 382580ab-1368-4e85-bfa3-b02e01400c9f 47201c5c-5653-4e14-9007-b02f015b2d82Produktion:
Bash1 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.
Bashbws 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:
Bashbws 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:
Bashbws 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:
Bashbws secret get <SECRET_ID>Som standard kommer detta kommando att hämta det hemliga objektet med SECRET_ID.
Bashbws secret get be8e0ad8-d545-4017-a55a-b02f014d4158Som 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:
Bashbws secret listDu 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:
Bashbws secret list e325ea69-a3ab-4dff-836f-b02e013fe530Som 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.
Bashbws project create <NAME>I det här exemplet kommer ett projekt att skapas med namnet Mitt projekt.
Bashbws 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.
Bashbws project delete <PROJECT_IDS>För ett enskilt projekt där f1fe5978-0aa1-4bb0-949b-b03000e0402a representerar PROJECT_ID:
Bashbws project delete f1fe5978-0aa1-4bb0-949b-b03000e0402aFör flera projekt där 1c80965c-acb3-486e-ac24-b03000dc7318 och f277fd80-1bd2-4532-94b2-b03000e00c6c representerar PROJECT_IDS:
Bashbws project delete 1c80965c-acb3-486e-ac24-b03000dc7318 f277fd80-1bd2-4532-94b2-b03000e00c6cProduktion:
Bash1 project deleted successfully.
projektredigering
Med hjälp av kommandot edit kan du ändra namnet på ett projekt med följande inmatning:
Bashbws project edit <PROJECT_ID> --name <NEW_NAME>Till exempel kommer detta kommando att ändra projektnamnet till Mitt projekt 2.
Bashbws 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.
Bashbws 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:
Bashbws project get e325ea69-a3ab-4dff-836f-b02e013fe530Som 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:
Bashbws project listSom 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:
Bashbws config server-base https://my_hosted_server.com
# or
bws config server-base https://vault.bitwarden.eunote
If server_api and server_identity are not configured, the values will default to the server_base value. For example: https://serverbase.com/apihttps://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:
Bashbws config server-base http://other_hosted_server.com --profile devNä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:
Bashbws secret get 2863ced6-eba1-48b4-b5c0-afa30104877a --profile devconfig --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:
Bashbws config server-base http://third_hosted_server.com --config-file ~/.bws/alt_configDu kan kedja --config-file med --profile för att spara värden till alternativa profiler i alternativa konfigurationsfiler, till exempel:
Bashbws config server-base http://third_hosted_server.com --config-file ~/.bws/alt_config --profile alt_devNä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:
Bashbws secret get 2863ced6-eba1-48b4-b5c0-afa30104877a --config-file ~/.bws/alt_config --profile alt_devconfig --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 Textbws 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 Textdocker 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:
Bashbws secret get 2863ced6-eba1-48b4-b5c0-afa30104877a --output yamlkommer att returnera följande:
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
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:
Bashbws secret list --output envkommer att returnera följande:
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, --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:
Bashbws 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:
Bashbws secret get 2863ced6-eba1-48b4-b5c0-afa30104877a --profile devSe 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:
Bashbws secret get 2863ced6-eba1-48b4-b5c0-afa30104877a --config-file ~/.bws/alt_config --profile alt_devSe 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:
Bashbws list secrets --server-url http://my_hosted_server.comDet 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.