GNU/Linux >> Belajar Linux >  >> Linux

Buat dan Simpan Rahasia seperti Kata Sandi, Token OAuth, dan Kunci SSH di Kubernetes

Di Kubernetes, kita dapat menyimpan dan mengelola informasi sensitif, seperti kata sandi, token OAuth, dan kunci ssh menggunakan Rahasia Kubernetes. Di Kubernetes, rahasia dapat didefinisikan sebagai Objek Kubernetes. Lebih aman menyimpan kredensial di Rahasia Kubernetes daripada di Pod atau di Gambar Docker.

Ada beberapa cara untuk menghasilkan rahasia di Kubernetes:

  1. Membuat dari file teks
  2. Membuat dari file yml

Setelah rahasia tersedia, rahasia dapat digunakan dengan cara berikut:

  1. Variabel Lingkungan
  2. Volume
  3. Menggunakan bidang imagePullSecrets

Untuk mengetahui lebih lanjut tentang Rahasia Kubernetes, klik di sini.

Dalam artikel ini, kita akan membuat rahasia menggunakan file .yml dan mengaksesnya di Pod sebagai Variabel Lingkungan.

Prasyarat

  1. Cluster Kubernetes dengan setidaknya 1 node pekerja.
    Jika Anda ingin belajar membuat Cluster Kubernetes, klik di sini. Panduan ini akan membantu Anda membuat cluster Kubernetes dengan 1 Master dan 2 Node di Instans AWS Ubuntu 18l04 EC2.

Apa yang akan kita lakukan

  1. Buat Rahasia

Buat rahasia

Untuk membuat rahasia baru di Kubernetes, enkripsi terlebih dahulu seperti yang ditunjukkan di bawah ini menggunakan metode pengkodean base64.

Di sini,

nama pengguna=rahul dan kata sandi=howtoforge123.

echo -n "rahul" | base64

echo -n "howtoforge123" | base64

Pada tangkapan layar di atas, dapat dilihat bahwa kredensial telah dienkripsi.

Buat file definisi rahasia sebagai berikut, file ini menyimpan nilai base64 dari kredensial yang dihasilkan pada langkah di atas,.

vim my-secret.yml

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

Sekarang, mari kita buat pod di mana rahasia-rahasia ini dapat diakses.

Buat file baru yang akan berisi definisi pod sebagai berikut.

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

Mari kita buat rahasia menggunakan perintah berikut.

kubectl create -f my-secret.yml

kubectl dapatkan rahasia | ambil rahasiaku

Sekarang, buat pod menggunakan definisi pod berikut untuk mengakses rahasia yang dibuat sebelumnya.

kubectl create -f my-pod.yml

kubectl dapatkan  pod | grep secret-in-pod

Masuk ke dalam pod menggunakan perintah berikut.

kubectl dapatkan pod | grep secret-in-pod

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

Setelah Anda login ke pod, rahasia dapat diakses sebagai Variabel Lingkungan menggunakan perintah berikut.

gema $SECRET_USERNAME

echo $SECRET_PASSWORD

Pada tangkapan layar di atas, dapat dilihat bahwa rahasia tersedia sebagai  Variabel lingkungan.

Untuk melihat detail objek rahasia, jalankan perintah berikut.

kubectl dapatkan rahasia | ambil rahasiaku

kubectl get secret mysecret -o yaml

Sekresi ini juga dapat didekode dari baris perintah menggunakan perintah berikut.

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

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

Pada tangkapan layar di atas, terlihat bahwa kredensial diekstraksi dari Rahasia dan didekripsi pada baris perintah menggunakan base64.

Kesimpulan

Dalam artikel ini, kita melihat langkah-langkah untuk membuat dan menyimpan rahasia di Kubernetes dari file .yml. Kami mencoba mengakses rahasia ini di Pod sebagai variabel Lingkungan. Kami juga melihat perintah untuk mendekripsi rahasia di baris perintah.


Linux
  1. Cara Mengatur Kunci SSH

  2. Ssh Dan Izin Direktori Rumah?

  3. Bagaimana cara membuat Shared Keys .ssh/authorized_keys dan sudo bekerja sama?

  1. SSH – Menghasilkan dan Bekerja dengan kunci ssh

  2. Bagaimana Mengonversi File PPK ke OpenSSH Keys dan Login menggunakan SSH di Linux?

  3. kunci ssh ssh-agent bash dan ssh-add

  1. Rahasia Kubernetes – Cara Membuat, Menggunakan, dan Mengakses Rahasia

  2. Ssh – Perbedaan Antara Kunci Openssh dan Kunci Putty?

  3. Jumble Password – Buat ID dan Kata Sandi Unik di Linux