Menggunakan Secret untuk menyimpan data sensitif
Anda dapat menggunakan Rahasia untuk menyimpan informasi konfigurasi yang sensitif, seperti {i>password<i} dan kunci akses, di cluster GKE Anda. Halaman ini menjelaskan cara Config Connector menggunakan nilai Secret saat mengonfigurasi resource Google Cloud.
Ringkasan
Bagian ini menampilkan ringkasan tentang penggunaan Secret dengan Config Connector.
Menggunakan Secret saat membuat resource
Anda dapat menggunakan data di dalam Secret saat membuat resource. Di beberapa Meneruskan Secret ke resource, Anda harus membuat Secret yang berisi {i>password<i}, kemudian mereferensikan Secret tersebut untuk pengguna di database Cloud SQL.
Memperbarui Secret
Saat Anda menerapkan update ke Secret, Config Connector akan memperbarui resource saat
berikutnya akan merekonsiliasi status
yang Anda inginkan. Misalnya, jika Anda memperbarui Secret
yang dirujuk sebagai sandi untuk SQLUser
, Config Connector akan
memperbarui {i>password<i} pengguna.
Menghapus Rahasia
Jika Anda menghapus Secret yang digunakan oleh resource, Config Connector akan tidak menghapus referensi resource ke Secret tersebut. Misalnya, jika Anda membuat SQLUser dengan {i>password<i} yang mereferensikan sebuah Secret dan kemudian menghapus Secret tersebut, kata sandi akan tetap berada di SQLUser.
Pemecahan masalah
Jika Anda membuat sumber daya yang mereferensikan
sebuah Secret yang tidak ada,
Config Connector akan membuat DependencyNotFound
atau DependencyInvalid
Peristiwa.
Secret dan namespace Kubernetes
Karena Kubernetes tidak mengizinkan akses ke secret di seluruh Namespace, jika Anda menggunakan nilai secret yang sama untuk resource dari berbagai Namespace, Anda dapat harus menerapkan secret di setiap Namespace.
Meneruskan Secret ke resource
Di bagian ini, Anda akan membuat server Cloud SQL dan menetapkan {i>password<i} pengguna dengan Secret.
Sebelum memulai
Untuk menyelesaikan langkah-langkah ini, Anda memerlukan hal berikut:
- Config Connector yang diinstal di cluster Kubernetes
Cloud SQL Admin API yang diaktifkan di project Anda. Untuk mengonfirmasi bahwa API 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, ataugcloud
perintah.
Service Usage API
- Config Connector menggunakan Service Usage API untuk mengaktifkan API layanan. Untuk melakukan
langkah-langkah ini, Anda harus mengaktifkan
Penggunaan Layanan
Compute Engine API. Anda dapat mengaktifkan API ini menggunakan Google Cloud CLI:
gcloud services enable serviceusage.googleapis.com
Salin YAML berikut ke 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
Mengganti
CC_NAMESPACE
dengan namespace Config Connector 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 file bernama
sql-server-example.yaml
. Ini 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 file bernama
example-secret.yaml
. Edit untukpassword
sebelum menyimpan. Tindakan ini mendeklarasikansecret-1
, yang direferensikan di bagian sebelumnya.apiVersion: v1 kind: Secret metadata: name: secret-1 stringData: password: PASSWORD
Terapkan konfigurasi tersebut ke cluster Anda.
kubectl apply -n CC_NAMESPACE -f example-secret.yaml
kubectl apply -n CC_NAMESPACE -f sql-server-example.yaml
Mengganti
CC_NAMESPACE
dengan namespace Config Connector mengelola resource.Config Connector membuat instance Cloud SQL dan pengguna dengan {i>password<i} yang Anda tentukan. Prosesnya mungkin perlu waktu beberapa menit.
Tunggu beberapa menit, dan pastikan instance tersedia:
gcloud sql instances list --filter="name=sqlserver-1"
Output harus menyertakan server dengan
STATUS
dariRUNNABLE
.Pastikan Anda dapat terhubung ke instance SQL:
gcloud sql connect sqlserver-1 --user=sqluser-sample
Anda diminta untuk memasukkan sandi.
Pembersihan
Jika Anda tidak ingin mempertahankan instance, hapus instance Cloud SQL,
dan secret dengan kubectl
.
kubectl delete -n CC_NAMESPACE -f sql-server-example.yaml
kubectl delete -n CC_NAMESPACE -f example-secret.yaml
Mengganti CC_NAMESPACE
dengan namespace Config Connector
mengelola resource.
Langkah selanjutnya
Pelajari cara menentukan Referensi resource di antara resource Config Connector.
Pelajari lebih dalam Secret Kubernetes.