External Secrets Operator пайдалану
External Secrets Operator аддонын қолданып, VK Cloud құпия менеджері сақталған Kubernetes секреттерімен синхронизацияны баптаңыз.
- Жоқ болса жаңа нұсқасы бар кластер жасаңыз.
- Орнатыңыз және баптаңыз kubectl, егер бұрын жасалмаған болса.
- Қосылыңыз kubectl арқылы кластерге.
- External Secrets Operator аддонын орнатыңыз, егер бұрын жасалмаған болса.
- API арқылы қолжетімділікті қосыңыз, егер бұрын жасалмаған болса.
Жасаңыз external-secret идентификаторы бар секретті VK Cloud секреттер менеджерінде және оған кез келген кілттерді қосыңыз.
-
external-secrets-operatornamespace жасаңыз, егер бұрын жасалмаған болса:kubectl create namespace external-secrets-operator -
VK Cloud секреттер менеджеріне қол жеткізу паролін сақтайтын
password.yamlманифестін жасаңыз:apiVersion: v1kind: Secretmetadata:name: passwordnamespace: external-secrets-operatortype: Opaquedata:password: <ПАРОЛЬ_ОТ_ЛК>Мұнда
<ПАРОЛЬ_ОТ_ЛК>— VK Cloud жеке кабинетіңіздің паролі base64 кодтауымен. -
Жасалған манифестті кластерде қолданыңыз:
kubectl apply -f password.yaml
-
Өтіңіз VK Cloud жеке кабинетіне.
-
Беттің басындағы пайдаланушы атына басып, Жоба параметрлері таңдаңыз.
-
API арқылы қолжетімділік бетіне өтіп, келесі мәндерді көшіріп алыңыз:
- Project ID;
- User Domain Name;
- Username.
-
secretstore.yamlманифестін жасаңыз —SecretStoreтипті объект, бұл VK Cloud секреттер менеджеріне қалай қосылу керектігін сипаттайды:apiVersion: external-secrets.io/v1kind: SecretStoremetadata:name: secret-storenamespace: external-secrets-operatorspec:provider:vk:projectID: <PROJECT_ID>url: <AUTH_URL>auth:domain: <USER_DOMAIN_NAME>username: <USERNAME>password:key: passwordname: passwordМұнда:
<PROJECT_ID>,<USER_DOMAIN_NAME>және<USERNAME>— жоба параметрлерінен көшіріп алған мәндеріңіз.<AUTH_URL>— аймаққа байланысты мекенжай:https://msk.cloud.vk.comМәскеу аймағы үшін;https://kz.cloud.vk.comҚазақстан аймағы үшін.
-
Жасалған манифестті кластерде қолданыңыз:
kubectl apply -f secretstore.yaml
-
externalsecret.yamlманифестін жасаңыз —ExternalSecretтипті объект, бұл секретті қайSecretStore-дан жүктеу керектігін және оны қалай жаңарту керектігін сипаттайды:apiVersion: external-secrets.io/v1kind: ExternalSecretmetadata:name: external-secretnamespace: external-secrets-operatorspec:refreshInterval: 5msecretStoreRef:name: secret-storekind: SecretStoretarget:name: external-secretcreationPolicy: Ownerdata:- secretKey: <ИМЯ_КЛЮЧА_В_СЕКРЕТЕ>remoteRef:key: <ID_СЕКРЕТА>property: <КЛЮЧ_СЕКРЕТА>Мұнда:
<ИМЯ_КЛЮЧА_В_СЕКРЕТЕ>— жасалатын Kubernetes секретіндегі кілт аты. Мысалы:password.<ID_СЕКРЕТА>— VK Cloud секреттер менеджерінде бұрын жасаған секретіңіздің идентификаторы.<КЛЮЧ_СЕКРЕТА>— VK Cloud секреттер менеджеріндегі секреттегі кілт, оның мәнін Kubernetes секретімен синхронизациялау қажет.
Мысалы, VK Cloud секреттер менеджерінде
external-secretидентификаторы бар секретте мынадай жұптар сақталады:key1: value1,key2: value2,key3: value3. Егер Kubernetes секретіндеvalue2мәні жаңартылсын деп қаласаңыз,propertyөрісінеkey2жазыңыз:key: external-secretproperty: key2 -
Жасалған манифестті кластерде қолданыңыз:
kubectl apply -f externalsecret.yaml
Kubernetes-те external-secret аты бар жаңа Secret типті объект жасалады. Аддон әр бес минут сайын VK Cloud секреттер менеджеріндегі секреттегі көрсетілген өрістің мәнін тексереді. Егер мән өзгерсе, аддон оны автоматты түрде Kubernetes секретінде жаңартады.
-
externalsecretall.yamlманифестін жасаңыз. Оның көмегімен VK Cloud секреттер менеджерінде жасаған секретіңізден барлық жұп мәндерді синхронизациялай аласыз.apiVersion: external-secrets.io/v1kind: ExternalSecretmetadata:name: external-secret-allnamespace: external-secrets-operatorspec:refreshInterval: 5msecretStoreRef:name: secret-storekind: SecretStoretarget:name: external-secret-allcreationPolicy: OwnerdataFrom:- extract:key: <ID_СЕКРЕТА> -
Жасалған манифестті кластерде қолданыңыз:
kubectl apply -f externalsecretall.yaml
Kubernetes-те external-secret-all аты бар жаңа Secret типті объект жасалады. Аддон әр бес минут сайын VK Cloud секреттер менеджеріндегі секреттің барлық кілттерінің мәнін тексереді. Егер олардың мәндері өзгерсе, аддон оларды автоматты түрде Kubernetes секретінде жаңартады.
-
External Secrets Operator секреттерді синхронизалағанын мына командамен тексеріңіз:
kubectl -n external-secrets-operator get secretКоманда шығысында бұрын жасалған
external-secretжәнеexternal-secret-allаты бар секреттер болуы керек:NAME TYPE DATA AGEexternal-secret Opaque 1 ...external-secret-all Opaque 2 ...external-secrets-webhook Opaque 4 ...password Opaque 1 ... -
Секреттердің мазмұнын қараңыз:
kubectl -n external-secrets-operator get secret external-secret -o yamlkubectl -n external-secrets-operator get secret external-secret-all -o yaml
Жұмыс істеп тұрған кластер тарификацияланады және есептеу ресурстарын тұтынады. Егер External Secrets Operator аддонының жұмысын тексеру үшін жасалған Kubernetes ресурстары сізге қажет болмаса, оларды жойыңыз:
-
external-secrets-operatornamespace және оған байланысты ресурстарды жойыңыз:kubectl delete namespace external-secrets-operator -
Тоқтатыңыз жасалған кластерді, оны кейінірек пайдалану үшін, немесе жойыңыз оны біржола.