GNU/Linux >> Znalost Linux >  >> Linux

Vytvářejte a ukládejte tajemství, jako jsou hesla, tokeny OAuth a klíče SSH v Kubernetes

V Kubernetes můžeme ukládat a spravovat citlivé informace, jako jsou hesla, tokeny OAuth a klíče ssh pomocí Kubernetes Secrets. V Kubernetes lze tajné klíče definovat jako objekty Kubernetes. Je bezpečnější ukládat přihlašovací údaje v Kubernetes Secrets než v Pods nebo v Docker Images.

V Kubernetes existuje několik způsobů generování tajných klíčů:

  1. Vytváření z textového souboru
  2. Vytváření ze souboru yml

Jakmile budou tajemství k dispozici, lze je použít následujícími způsoby:

  1. Proměnná prostředí
  2. Hlasitost
  3. Použití pole imagePullSecrets

Chcete-li se dozvědět více o Kubernetes Secrets, klikněte sem.

V tomto článku vytvoříme tajné klíče pomocí souboru .yml a zpřístupníme je v podu jako proměnné prostředí.

Předpoklady

  1. Cluster Kubernetes s alespoň 1 pracovním uzlem.
    Pokud se chcete naučit vytvářet cluster Kubernetes, klikněte sem. Tato příručka vám pomůže vytvořit cluster Kubernetes s 1 hlavním a 2 uzly na instancích AWS Ubuntu 18l04 EC2.

Co uděláme

  1. Vytvořte tajemství

Vytvořit tajemství

Chcete-li vytvořit nová tajemství v Kubernetes, nejprve je zašifrujte, jak je uvedeno níže, pomocí metody kódování base64.

Zde

uživatelské jméno=rahul a heslo=howtoforge123.

echo -n "rahul" | base64

echo -n "howtoforge123" | base64

Na výše uvedeném snímku obrazovky je vidět, že přihlašovací údaje byly zašifrovány.

Vytvořte tajný definiční soubor následovně, tento soubor obsahuje hodnotu base64 přihlašovacích údajů vygenerovaných ve výše uvedeném kroku.

vim my-secret.yml

apiVersion: v1
kind: Secret
metadata:
  name: mysecret
type: Opaque
data:
  username: cmFodWw=
  password: aG93dG9mb3JnZTEyMw==

Nyní vytvoříme modul, ve kterém budou tato tajemství a budou přístupná.

Vytvořte nový soubor, který bude obsahovat definici podu následovně.

vim my-pod.yaml

apiVersion: v1
kind: Pod
metadata:
  name: secrets-in-pod
spec:
  containers:
    - name: my-container
      image: redis
      env:
        - name: SECRET_USERNAME
          valueFrom:
            secretKeyRef:
              name: mysecret
              key: username
        - name: SECRET_PASSWORD
          valueFrom:
            secretKeyRef:
              name: mysecret
              key: password
  restartPolicy: Never

Vytvořme tajné klíče pomocí následujícího příkazu.

kubectl create -f my-secret.yml

kubectl získat tajemství | grep mysecret

Nyní vytvořte pod pomocí následující definice podu, abyste získali přístup k dříve vytvořeným tajemstvím.

kubectl create -f my-pod.yml

kubectl získat  pods | grep secrets-in-pod

Přihlaste se do modulu pomocí následujícího příkazu.

kubectl získat lusky | grep secrets-in-pod

kubectl exec -it secrets-in-pod /bin/bash

Jakmile se přihlásíte do modulu, můžete k tajným informacím přistupovat jako proměnná prostředí pomocí následujícího příkazu.

echo $SECRET_USERNAME

echo $SECRET_PASSWORD

Na výše uvedeném snímku obrazovky je vidět, že tajná jsou dostupná jako  proměnné prostředí.

Chcete-li zobrazit podrobnosti o tajném objektu, spusťte následující příkaz.

kubectl získat tajemství | grep mysecret

kubectl get secret mysecret -o yaml

Tyto sekrety lze také dekódovat z příkazového řádku pomocí následujících příkazů.

kubectl get secrets/mysecret --template={{.data.username}} | base64 -d

kubectl get secrets/mysecret --template={{.data.password}} | base64 -d

Na výše uvedeném snímku obrazovky je vidět, že přihlašovací údaje jsou extrahovány z Tajemství a dešifrovány na příkazovém řádku pomocí base64.

Závěr

V tomto článku jsme viděli kroky k vytvoření a uložení tajných klíčů v Kubernetes ze souboru .yml. Pokusili jsme se získat přístup k těmto tajemstvím v Pod jako proměnné prostředí. Také jsme viděli příkaz k dešifrování tajných klíčů na příkazovém řádku.


Linux
  1. Jak nastavit klíče SSH

  2. SSH – Generování a práce s ssh klíči

  3. Jak převést soubor PPK na klíče OpenSSH a přihlásit se pomocí SSH v Linuxu?

  1. Ssh a oprávnění k domovskému adresáři?

  2. Ssh – rozdíl mezi klíčem Openssh a klíčem Putty?

  3. ssh klíče ssh-agent bash a ssh-add

  1. Tajemství Kubernetes – Jak vytvářet, používat a přistupovat k tajemstvím

  2. Zkombinované heslo – Vytvářejte jedinečná ID a hesla v systému Linux

  3. Jak zajistit, aby sdílené klíče .ssh/authorized_keys a sudo spolupracovaly?