Secrets Manager Kubernetes Operator
Bitwarden Secrets Manager Kubernetes Operator kommer att tillåta team att integrera Secrets Manager i Kubernetes arbetsflöden säkert och effektivt. Genom att använda operatören, som distribueras med Helm Package Manager, kan hemligheter lagras och hämtas från Secrets Manager.
Bitwarden Secrets Manager Kubernetes Operator
Sm-operatören
använder en styrenhet för att synkronisera Bitwarden-hemligheter till Kubernetes-hemligheter. Operatören registrerar den anpassade resursdefinitionen: BitwardenSecret
i Kubernetes-klustret. Klustret kommer att lyssna efter det nyregistrerade BitwardenSecret
och synkronisera på ett konfigurerbart intervall.
Krav
För att komma igång krävs en aktiv Bitwarden-organisation med Secrets Manager. Dessutom krävs en eller flera åtkomsttokens kopplade till ett maskinkonto.
Ytterligare beroenden
Lägg till förvaret i Helm
Lägg till Bitwarden Secrets Manager-diagramförrådet:
Plain Texthelm repo add bitwarden https://charts.bitwarden.com/
Uppdatera information om lokalt tillgängliga sjökort:
Plain Texthelm repo update
Installation
Skapa en konfigurationsfil
Skapa en anpassad värdefil som används för distribution:
Plain Texthelm show values bitwarden/sm-operator --devel > my-values.yaml
Uppdatera konfigurationsfilen
Leta upp my-values.yaml
och fyll i obligatoriska värden. Ett exempel kan finnas i Bitwarden-förvaret. Vi rekommenderar att följande värden justeras för din inställning:
Värde | Beskrivning |
---|---|
| Hur ofta hemligheterna synkroniseras (i sekunder). Minsta värde är 180. |
| Användare med egen värd inställd på molnregion |
| Endast för användare med egen värd. Detta är URL:en för ditt instans-API. |
| Endast för användare med egen värd. Det här är webbadressen till din instanss identitetstjänst. |
| Ställ in på Den här inställningen rekommenderas för de flesta vanliga fall som inte kräver eskalerande privilegier för att göra behållare restriktiva. Se Kubernetes dokumentation för mer information. |
note
To use a different operate image version than the one included with the chart, update:containers.manager.image.tag
.
Uppgradera roderdiagram
När filen values.yaml
har konfigurerats, uppgradera versionen till ett nytt diagram genom att köra:
Plain Texthelm upgrade sm-operator bitwarden/sm-operator -i --debug -n sm-operator-system --create-namespace --values my-values.yaml --devel
Detta kommando installerar eller uppgraderar en version med namnet sm-operator
, i namnområdet sm-operator-system
, med värdena från my-values.yaml
.
note
To see information for the helm install
or helm upgrade
commands, run helm install --help
or helm upgrade --help
.
Skapa Bitwarden-hemligheter
För att synkronisera hemligheter lagrade i Bitwarden Secrets Manager till Kubernetes-hemligheter måste vi skapa ett BitwardenSecret-objekt.
Skapa en Kubernetes-hemlighet att autentisera med Secrets Manager:
Plain Textkubectl create secret generic bw-auth-token -n <YOUR_NAMESPACE> --from-literal=token="<TOKEN_HERE>"
warning
This command is recorded in your shell history. To avoid exposing access token data, consider deploying with an ephemeral pipeline agent.
Distribuera BitwardenSecret
BitwardenSecret-objektet
är synkroniseringsinställningen som kommer att användas av operatören för att skapa och synkronisera en Kubernetes-hemlighet. Kubernetes-hemligheten tillhör ett namnområde och kommer att injiceras med data som Secrets Manager-maskinkontot har åtkomst till.
Exempel på BitwardenSecret-distribution med anpassad mappning:
Plain Textcat <<EOF | kubectl apply -n <YOUR_NAMESPACE> -f - apiVersion: k8s.bitwarden.com/v1 kind: BitwardenSecret metadata: labels: app.kubernetes.io/name: bitwardensecret app.kubernetes.io/instance: bitwardensecret-sample app.kubernetes.io/part-of: sm-operator app.kubernetes.io/managed-by: kustomize app.kubernetes.io/created-by: sm-operator name: bitwardensecret-sample spec: organizationId: "a08a8157-129e-4002-bab4-b118014ca9c7" secretName: bw-sample-secret onlyMappedSecrets: true # default is true map: - bwSecretId: 6c230265-d472-45f7-b763-b11b01023ca6 secretKeyName: container__registry__secret # - bwSecretId: d132a5ed-12bd-49af-9b74-b11b01025d58 # secretKeyName: test__secret__2 authToken: secretName: bw-auth-token secretKey: token EOF
I BitwardenSecret-implementeringsexemplet är det anpassade kartelementet
valfritt.
Miljö | Beskrivning |
---|---|
| Namnet på BitwardenSecret-objektet som du distribuerar. |
| Bitwardens organisations-ID som du hämtar Secrets Manager-data från. |
| Namnet på Kubernetes-hemligheten som kommer att skapas och injiceras med Secrets Manager-data. |
| Namnet på en hemlighet inuti Kubernetes-namnrymden som BitwardenSecrets-objektet distribueras till som innehåller auktoriseringstoken för Secrets Manager-maskinkonto som används över hemligheter. |
warning
Secrets Manager does not guarantee unique secret names across projects. By default, secrets will be created with the Secrets Manager secret UUID used as the Key.
För att göra genererade hemligheter enklare att använda kan du skapa en karta över Bitwarden Secrets ID:n till Kubernetes hemliga nycklar. Den genererade hemligheten kommer att ersätta Bitwardens hemliga ID:n med det mappade namnet du anger.
Tillgängliga kartinställningar:
Miljö | Beskrivning |
---|---|
| Detta är UUID (universellt unik identifierare) för hemligheten i Secrets Manager. Detta kan hittas under det hemliga namnet i Secrets Manager webbportal eller genom att använda Bitwarden Secrets Manager CLI. |
| Den resulterande nyckeln inuti Kubernetes-hemligheten som ersatte UUID. |
Exempel på användningsdiagram
Plain TextapiVersion: apps/v1 kind: Deployment metadata: name: my-deployment labels: app: my-deployment spec: selector: matchLabels: app: my-deployment template: metadata: labels: app: my-deployment spec: containers: - name: my-deployment image: <some-image> imagePullSecrets: - name: container__registry__secret envFrom: - secretRef: name: bw-sample-secret