Menggunakan Rahasia untuk menyimpan data sensitif
Anda dapat menggunakan Secret untuk menyimpan informasi konfigurasi yang sensitif, seperti sandi dan kunci akses, di cluster GKE Anda. Halaman ini berisi penjelasan mengenai cara Config Connector menggunakan nilai Secret saat mengonfigurasi resource Google Cloud Anda.
Ringkasan
Bagian ini menyajikan ringkasan penggunaan Secret dengan Config Connector.
Menggunakan Secret saat membuat resource
Anda dapat menggunakan data di dalam Secret saat membuat resource. Pada bagian Meneruskan Secret ke resource, Anda membuat Secret yang berisi sandi, kemudian mereferensikan Secret tersebut untuk pengguna di database Cloud SQL.
Memperbarui Rahasia
Saat Anda menerapkan update pada Secret, Config Connector akan mengupdate resource saat berikutnya ia merekonsiliasi status yang diinginkan. Misalnya, jika Anda memperbarui Secret
yang dirujuk sebagai sandi untuk SQLUser
, Config Connector akan
memperbarui sandi pengguna.
Menghapus Rahasia
Jika Anda menghapus Secret yang digunakan oleh resource, Config Connector tidak akan menghapus referensi resource ke Secret tersebut. Misalnya, jika Anda membuat SQLUser dengan sandi yang merujuk ke Secret, lalu menghapus Secret tersebut, sandinya akan tetap berada di SQLUser.
Pemecahan masalah
Jika Anda membuat resource yang merujuk ke Secret yang tidak ada, Config Connector akan membuat Event DependencyNotFound
atau DependencyInvalid
.
Secret dan namespace Kubernetes
Karena Kubernetes tidak mengizinkan akses ke secret di seluruh Namespace, jika Anda menggunakan nilai secret yang sama untuk resource dari Namespace yang berbeda, Anda harus menerapkan secret di setiap Namespace.
Meneruskan Secret ke resource
Di bagian ini, Anda akan membuat server Cloud SQL dan menetapkan sandi pengguna default dengan sebuah Secret.
Sebelum memulai
Untuk menyelesaikan langkah-langkah ini, Anda memerlukan hal berikut:
- Config Connector yang diinstal di cluster Kubernetes
Cloud SQL Admin API diaktifkan di project Anda. Untuk mengonfirmasi bahwa API sudah diaktifkan, jalankan perintah
gcloud
berikut:gcloud services list --filter=sqladmin.googleapis.com
Jika perintah mencetak
Listed 0 items.
, Anda harus mengaktifkan API. Anda dapat mengaktifkan API dengan Config Connector dan Resource Manager API, atau perintahgcloud
.
Service Usage API
- Config Connector menggunakan Service Usage API untuk mengaktifkan API layanan. Untuk melakukan langkah-langkah ini, Anda harus mengaktifkan Service Usage API. Anda dapat mengaktifkan API ini dengan menggunakan Google Cloud CLI:
gcloud services enable serviceusage.googleapis.com
Salin YAML berikut ke dalam file bernama
enable-sql.yaml
apiVersion: serviceusage.cnrm.cloud.google.com/v1beta1 kind: Service metadata: name: sqladmin.googleapis.com
Terapkan
enable-sql.yaml
ke cluster Anda dengankubectl
:kubectl apply -f enable-sql.yaml --namespace CC_NAMESPACE
Ganti
CC_NAMESPACE
dengan Config Connector namespace yang mengelola resource.
gcloud
Untuk mengaktifkan SQL Admin API dengan Google Cloud CLI, jalankan perintah berikut:
gcloud services enable sqladmin.googleapis.com
Membuat Cloud SQL Server
Salin YAML di bawah ke dalam file bernama
sql-server-example.yaml
. Tindakan ini akan membuat server Cloud SQL bernamasqlserver-1
dan pengguna bernamasqluser-sample
. Sandi untuksqluser-sample
disetel oleh referensi resource ke secret bernamasecret-1
.apiVersion: sql.cnrm.cloud.google.com/v1beta1 kind: SQLInstance metadata: labels: label-one: "sql-server-example" name: sqlserver-1 spec: region: us-central1 databaseVersion: MYSQL_5_7 settings: tier: db-g1-small --- apiVersion: sql.cnrm.cloud.google.com/v1beta1 kind: SQLUser metadata: name: sqluser-sample spec: instanceRef: name: sqlserver-1 host: "%" password: valueFrom: secretKeyRef: name: secret-1 # Name of the Secret object to extract a value from key: password # Key that identifies the value to be extracted
Salin YAML di bawah ke dalam file bernama
example-secret.yaml
. Edit nilai untukpassword
sebelum menyimpan. Tindakan ini mendeklarasikansecret-1
, yang dirujuk di bagian sebelumnya.apiVersion: v1 kind: Secret metadata: name: secret-1 stringData: password: PASSWORD
Terapkan konfigurasi pada cluster Anda.
kubectl apply -n CC_NAMESPACE -f example-secret.yaml
kubectl apply -n CC_NAMESPACE -f sql-server-example.yaml
Ganti
CC_NAMESPACE
dengan Config Connector namespace yang mengelola resource.Config Connector membuat instance Cloud SQL dan pengguna dengan sandi yang Anda tentukan. Proses ini mungkin memerlukan waktu beberapa menit.
Tunggu beberapa menit, dan konfirmasi bahwa instance tersedia:
gcloud sql instances list --filter="name=sqlserver-1"
Output harus menyertakan server dengan
STATUS
berupaRUNNABLE
.Pastikan Anda dapat terhubung ke instance SQL:
gcloud sql connect sqlserver-1 --user=sqluser-sample
Anda akan diminta untuk memasukkan sandi.
Pembersihan
Jika Anda tidak ingin menyimpan instance, hapus instance, pengguna, dan secret Cloud SQL dengan kubectl
.
kubectl delete -n CC_NAMESPACE -f sql-server-example.yaml
kubectl delete -n CC_NAMESPACE -f example-secret.yaml
Ganti CC_NAMESPACE
dengan Config Connector namespace yang mengelola resource.
Langkah selanjutnya
Pelajari cara menentukan Referensi resource antar-resource Config Connector.
Pelajari Rahasia Kubernetes lebih mendalam.