Utangulizi wa Uidhinishaji wa Kubernetes wa Balozi wa Hashicorp

Utangulizi wa Uidhinishaji wa Kubernetes wa Balozi wa Hashicorp

Hiyo ni kweli, baada ya kutolewa Balozi wa Hashicorp 1.5.0 mwanzoni mwa Mei 2019, katika Balozi unaweza kuidhinisha maombi na huduma zinazoendeshwa katika Kubernetes asili.

Katika somo hili tutaunda hatua kwa hatua POC (Uthibitisho wa dhana, PoC) inayoonyesha kipengele hiki kipya. Unatarajiwa kuwa na ujuzi wa kimsingi wa Kubernetes na Mshauri wa Hashicorp. Ingawa unaweza kutumia mfumo wowote wa wingu au mazingira ya ndani ya majengo, katika mafunzo haya tutatumia Mfumo wa Wingu wa Google.

Pitia

Ikiwa tutaenda Nyaraka za balozi juu ya njia yake ya uidhinishaji, tutapata muhtasari wa haraka wa madhumuni yake na kesi ya matumizi, pamoja na baadhi ya maelezo ya kiufundi na muhtasari wa jumla wa mantiki. Ninapendekeza sana kuisoma angalau mara moja kabla ya kuendelea, kwani sasa nitakuwa nikielezea na kutafuna yote.

Utangulizi wa Uidhinishaji wa Kubernetes wa Balozi wa Hashicorp

Mchoro wa 1: Muhtasari rasmi wa mbinu ya idhini ya Balozi

Hebu tuangalie ndani hati za njia maalum ya idhini ya Kubernetes.

Hakika, kuna habari muhimu hapo, lakini hakuna mwongozo wa jinsi ya kuitumia yote. Kwa hivyo, kama mtu yeyote mwenye akili timamu, unatafuta mwongozo kwenye Mtandao. Na kisha ... Unashindwa. Inatokea. Hebu kurekebisha hili.

Kabla ya kuendelea na kuunda POC yetu, hebu turejee kwa muhtasari wa mbinu za uidhinishaji za Balozi (Mchoro 1) na tuiboreshe katika muktadha wa Kubernetes.

usanifu

Katika somo hili, tutaunda seva ya Balozi kwenye mashine tofauti ambayo itawasiliana na kikundi cha Kubernetes na mteja wa Balozi aliyesakinishwa. Kisha tutaunda programu yetu ya dummy kwenye ganda na kutumia njia yetu ya uidhinishaji iliyosanidiwa kusoma kutoka kwa ufunguo/duka la thamani la Balozi.

Mchoro ulio hapa chini unaelezea usanifu tunaounda katika mafunzo haya, pamoja na mantiki nyuma ya njia ya uidhinishaji, ambayo itaelezewa baadaye.

Utangulizi wa Uidhinishaji wa Kubernetes wa Balozi wa Hashicorp

Mchoro wa 2: Muhtasari wa Mbinu ya Uidhinishaji wa Kubernetes

Ujumbe wa haraka: seva ya Balozi haihitaji kuishi nje ya kundi la Kubernetes ili hii ifanye kazi. Lakini ndio, anaweza kufanya hivi na vile.

Kwa hivyo, kwa kuchukua mchoro wa muhtasari wa Balozi (Mchoro 1) na kutumia Kubernetes kwake, tunapata mchoro hapo juu (Mchoro wa 2), na mantiki hapa ni kama ifuatavyo.

  1. Kila ganda litakuwa na akaunti ya huduma iliyoambatishwa ndani yake iliyo na tokeni ya JWT iliyotolewa na inayojulikana na Kubernetes. Ishara hii pia imeingizwa kwenye ganda kwa chaguo-msingi.
  2. Programu au huduma yetu ndani ya ganda huanzisha amri ya kuingia kwa mteja wetu wa Balozi. Ombi la kuingia pia litajumuisha ishara na jina letu iliyoundwa maalum njia ya idhini (aina ya Kubernetes). Hatua hii # 2 inalingana na hatua ya 1 ya mchoro wa Balozi (Mpango 1).
  3. Mteja wetu wa Ubalozi basi atatuma ombi hili kwa seva yetu ya Balozi.
  4. UCHAWI! Hapa ndipo seva ya Balozi inapothibitisha uhalisi wa ombi, kukusanya taarifa kuhusu utambulisho wa ombi na kulilinganisha na sheria zozote zinazohusiana zilizobainishwa awali. Chini ni mchoro mwingine wa kuelezea hii. Hatua hii inalingana na hatua ya 3, 4 na 5 ya mchoro wa muhtasari wa Balozi (Mchoro 1).
  5. Seva yetu ya Ubalozi hutengeneza tokeni ya Ubalozi yenye vibali kulingana na kanuni zetu za mbinu maalum za uidhinishaji (ambazo tumezifafanua) kuhusu utambulisho wa mwombaji. Kisha itatuma ishara hiyo nyuma. Hii inalingana na hatua ya 6 ya mchoro wa Balozi (Mchoro 1).
  6. Mteja wetu wa Balozi hutuma tokeni kwa ombi au huduma inayoomba.

Programu au huduma yetu sasa inaweza kutumia tokeni hii ya Balozi kuwasiliana na data ya Balozi wetu, kama inavyobainishwa na mapendeleo ya tokeni.

Uchawi umefunuliwa!

Kwa wale ambao hamfurahishwi na sungura tu kutoka kwenye kofia na mnataka kujua jinsi inavyofanya kazi ... ngoja nikuonyeshe jinsi kina shimo la sungura'.

Kama ilivyoelezwa hapo awali, hatua yetu ya "uchawi" (Kielelezo 2: Hatua ya 4) ni pale seva ya Balozi inathibitisha ombi, kukusanya taarifa kuhusu ombi, na kuilinganisha na sheria zozote zinazohusiana zilizoainishwa awali. Hatua hii inalingana na hatua ya 3, 4 na 5 ya mchoro wa muhtasari wa Balozi (Mchoro 1). Chini ni mchoro (Mchoro wa 3), madhumuni yake ni kuonyesha wazi kile kinachotokea chini ya kofia njia maalum ya idhini ya Kubernetes.

Utangulizi wa Uidhinishaji wa Kubernetes wa Balozi wa Hashicorp

Mchoro wa 3: Uchawi umefunuliwa!

  1. Kama sehemu ya kuanzia, mteja wetu wa Ubalozi hutuma ombi la kuingia kwa seva yetu ya Ubalozi kwa tokeni ya akaunti ya Kubernetes na jina mahususi la mfano wa mbinu ya uidhinishaji ambayo iliundwa awali. Hatua hii inalingana na hatua ya 3 katika maelezo ya mzunguko uliopita.
  2. Sasa seva ya Balozi (au kiongozi) inahitaji kuthibitisha uhalisi wa ishara iliyopokelewa. Kwa hivyo, itashauriana na kundi la Kubernetes (kupitia mteja wa Balozi) na, kwa ruhusa zinazofaa, tutajua kama ishara hiyo ni ya kweli na ni ya nani.
  3. Ombi lililoidhinishwa hurejeshwa kwa kiongozi wa Balozi, na seva ya Balozi hutafuta mfano wa njia ya uidhinishaji na jina lililobainishwa kutoka kwa ombi la kuingia (na aina ya Kubernetes).
  4. Kiongozi wa balozi anabainisha mfano wa mbinu maalum ya uidhinishaji (ikipatikana) na kusoma seti ya sheria za kisheria ambazo zimeambatishwa kwayo. Kisha inasoma sheria hizi na kuzilinganisha na sifa za utambulisho zilizothibitishwa.
  5. TA-dah! Wacha tuendelee kwa hatua ya 5 katika maelezo ya mzunguko uliopita.

Endesha Consul-server kwenye mashine ya kawaida ya mtandaoni

Kuanzia sasa na kuendelea, nitakuwa nikitoa maelekezo ya jinsi ya kuunda POC hii, mara nyingi katika nukta za risasi, bila maelezo kamili ya sentensi. Pia, kama ilivyoonyeshwa hapo awali, nitatumia GCP kuunda miundombinu yote, lakini unaweza kuunda miundombinu sawa mahali pengine popote.

  • Anzisha mashine ya kawaida (mfano/seva).

Utangulizi wa Uidhinishaji wa Kubernetes wa Balozi wa Hashicorp

  • Unda sheria ya firewall (kikundi cha usalama katika AWS):
  • Ninapenda kupeana jina la mashine sawa kwa sheria na tepe ya mtandao, katika kesi hii "skywiz-consul-server-poc".
  • Tafuta anwani ya IP ya kompyuta yako na uiongeze kwenye orodha ya anwani za IP ili tuweze kufikia kiolesura cha mtumiaji (UI).
  • Fungua bandari 8500 kwa UI. Bofya Unda. Tutabadilisha ngome hii tena hivi karibuni [kiungo].
  • Ongeza sheria ya firewall kwa mfano. Rudi kwenye dashibodi ya VM kwenye Seva ya Balozi na uongeze "skywiz-consul-server-poc" kwenye uga wa lebo za mtandao. Bofya Hifadhi.

Utangulizi wa Uidhinishaji wa Kubernetes wa Balozi wa Hashicorp

  • Sakinisha Balozi kwenye mashine pepe, angalia hapa. Kumbuka unahitaji toleo la Mshauri β‰₯ 1.5 [kiungo]
  • Wacha tuunde Consul ya nodi moja - usanidi ni kama ifuatavyo.

groupadd --system consul
useradd -s /sbin/nologin --system -g consul consul
mkdir -p /var/lib/consul
chown -R consul:consul /var/lib/consul
chmod -R 775 /var/lib/consul
mkdir /etc/consul.d
chown -R consul:consul /etc/consul.d

  • Kwa mwongozo wa kina zaidi juu ya kusakinisha Balozi na kuanzisha nguzo ya nodi 3, ona hapa.
  • Unda faili /etc/consul.d/agent.json kama ifuatavyo [kiungo]:

### /etc/consul.d/agent.json
{
 "acl" : {
 "enabled": true,
 "default_policy": "deny",
 "enable_token_persistence": true
 }
}

  • Anzisha seva yetu ya Balozi:

consul agent 
-server 
-ui 
-client 0.0.0.0 
-data-dir=/var/lib/consul 
-bootstrap-expect=1 
-config-dir=/etc/consul.d

  • Unapaswa kuona rundo la matokeo na kuishia na "... sasisho lililozuiwa na ACL."
  • Pata anwani ya IP ya nje ya seva ya Balozi na ufungue kivinjari na anwani hii ya IP kwenye bandari 8500. Hakikisha kwamba UI inafungua.
  • Jaribu kuongeza ufunguo/thamani jozi. Lazima kuna kosa. Hii ni kwa sababu tulipakia seva ya Balozi na ACL na kulemaza sheria zote.
  • Rudi kwenye ganda lako kwenye seva ya Balozi na uanze mchakato nyuma au njia nyingine ya kuifanya iendeshe na uweke yafuatayo:

consul acl bootstrap

  • Pata thamani ya "SecretID" na urudi kwenye UI. Katika kichupo cha ACL, ingiza kitambulisho cha siri cha ishara uliyonakili. Nakili SecretID mahali pengine, tutaihitaji baadaye.
  • Sasa ongeza ufunguo/thamani jozi. Kwa POC hii, ongeza yafuatayo: ufunguo: "custom-ns/test_key", thamani: "Niko kwenye folda maalum-ns!"

Kuzindua kundi la Kubernetes kwa maombi yetu na mteja wa Balozi kama Daemoset

  • Unda nguzo ya K8s (Kubernetes). Tutaiunda katika eneo sawa na seva kwa ufikiaji wa haraka, na ili tuweze kutumia subnet sawa ili kuunganisha kwa urahisi na anwani za ndani za IP. Tutaiita "skywiz-app-with-consul-client-poc".

Utangulizi wa Uidhinishaji wa Kubernetes wa Balozi wa Hashicorp

  • Kama dokezo la kando, hapa kuna mafunzo mazuri niliyopata wakati nikianzisha nguzo ya Balozi wa POC na Consul Connect.
  • Pia tutakuwa tukitumia chati ya usukani ya Hashicorp iliyo na faili ya thamani iliyopanuliwa.
  • Sakinisha na usanidi Helm. Hatua za usanidi:

kubectl create serviceaccount tiller --namespace kube-system
kubectl create clusterrolebinding tiller-admin-binding 
   --clusterrole=cluster-admin --serviceaccount=kube-system:tiller
./helm init --service-account=tiller
./helm update

### poc-helm-consul-values.yaml
global:
 enabled: false
 image: "consul:latest"
# Expose the Consul UI through this LoadBalancer
ui:
 enabled: false
# Allow Consul to inject the Connect proxy into Kubernetes containers
connectInject:
 enabled: false
# Configure a Consul client on Kubernetes nodes. GRPC listener is required for Connect.
client:
 enabled: true
 join: ["<PRIVATE_IP_CONSUL_SERVER>"]
 extraConfig: |
{
  "acl" : {
 "enabled": true,   
 "default_policy": "deny",   
 "enable_token_persistence": true 
  }
}
# Minimal Consul configuration. Not suitable for production.
server:
 enabled: false
# Sync Kubernetes and Consul services
syncCatalog:
 enabled: false

  • Weka chati ya usukani:

./helm install -f poc-helm-consul-values.yaml ./consul-helm - name skywiz-app-with-consul-client-poc

  • Inapojaribu kufanya kazi, itahitaji ruhusa kwa seva ya Balozi, kwa hivyo wacha tuiongeze.
  • Kumbuka "Msururu wa Anwani za Pod" ulio kwenye dashibodi ya nguzo na urejelee sheria yetu ya ngome ya "skywiz-consul-server-poc".
  • Ongeza safu ya anwani ya ganda kwenye orodha ya anwani za IP na fungua bandari 8301 na 8300.

Utangulizi wa Uidhinishaji wa Kubernetes wa Balozi wa Hashicorp

  • Nenda kwa Consul UI na baada ya dakika chache utaona nguzo yetu ikitokea kwenye kichupo cha nodi.

Utangulizi wa Uidhinishaji wa Kubernetes wa Balozi wa Hashicorp

Kusanidi Mbinu ya Uidhinishaji kwa Kuunganisha Balozi na Kubernetes

  • Rudi kwenye ganda la seva ya Balozi na usafirishe tokeni uliyohifadhi hapo awali:

export CONSUL_HTTP_TOKEN=<SecretID>

  • Tutahitaji habari kutoka kwa nguzo yetu ya Kubernetes ili kuunda mfano wa njia ya uthibitishaji:
  • kubernetes-mwenyeji

kubectl get endpoints | grep kubernetes

  • kubernetes-service-account-jwt

kubectl get sa <helm_deployment_name>-consul-client -o yaml | grep "- name:"
kubectl get secret <secret_name_from_prev_command> -o yaml | grep token:

  • Ishara imesimbwa base64, kwa hivyo isimbue kwa kutumia zana unayopenda [kiungo]
  • kubernetes-ca-cert

kubectl get secret <secret_name_from_prev_command> -o yaml | grep ca.crt:

  • Chukua cheti cha "ca.crt" (baada ya kusimbua base64) na uandike kwenye faili ya "ca.crt".
  • Sasa thibitisha mbinu ya uthibitishaji, ukibadilisha vishikilia nafasi na thamani ulizopokea hivi punde.

consul acl auth-method create 
-type "kubernetes" 
-name "auth-method-skywiz-consul-poc" 
-description "This is an auth method using kubernetes for the cluster skywiz-app-with-consul-client-poc" 
-kubernetes-host "<k8s_endpoint_retrieved earlier>" 
[email protected] 
-kubernetes-service-account-
jwt="<decoded_token_retrieved_earlier>"

  • Ifuatayo tunahitaji kuunda sheria na kuiunganisha kwa jukumu jipya. Kwa sehemu hii unaweza kutumia Consul UI, lakini tutatumia mstari wa amri.
  • Andika sheria

### kv-custom-ns-policy.hcl
key_prefix "custom-ns/" {
 policy = "write"
}

  • Tumia kanuni

consul acl policy create 
-name kv-custom-ns-policy 
-description "This is an example policy for kv at custom-ns/" 
-rules @kv-custom-ns-policy.hcl

  • Pata kitambulisho cha sheria uliyounda kutoka kwa matokeo.
  • Unda jukumu kwa sheria mpya.

consul acl role create 
-name "custom-ns-role" 
-description "This is an example role for custom-ns namespace" 
-policy-id <policy_id>

consul acl binding-rule create 
-method=auth-method-skywiz-consul-poc 
-bind-type=role 
-bind-name='custom-ns-role' 
-selector='serviceaccount.namespace=="custom-ns"'

Mwishowe, mipangilio

Haki za upatikanaji

  • Unda haki za ufikiaji. Tunahitaji kumpa Balozi ruhusa ili kuthibitisha na kutambua utambulisho wa tokeni ya akaunti ya huduma ya K8s.
  • Andika yafuatayo kwenye faili [kiungo]:

###skywiz-poc-consul-server_rbac.yaml
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
 name: review-tokens
 namespace: default
subjects:
- kind: ServiceAccount
 name: skywiz-app-with-consul-client-poc-consul-client
 namespace: default
roleRef:
 kind: ClusterRole
 name: system:auth-delegator
 apiGroup: rbac.authorization.k8s.io
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
 name: service-account-getter
 namespace: default
rules:
- apiGroups: [""]
 resources: ["serviceaccounts"]
 verbs: ["get"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
 name: get-service-accounts
 namespace: default
subjects:
- kind: ServiceAccount
 name: skywiz-app-with-consul-client-poc-consul-client
 namespace: default
roleRef:
 kind: ClusterRole
 name: service-account-getter
 apiGroup: rbac.authorization.k8s.io

  • Wacha tuunde haki za ufikiaji

kubectl create -f skywiz-poc-consul-server_rbac.yaml

Inaunganisha kwa Mteja wa Balozi

  • Kama ilivyobainishwa hapaKuna chaguzi kadhaa za kuunganisha kwa daemoset, lakini tutaendelea kwa suluhisho rahisi lifuatalo:
  • Tumia faili ifuatayo [kiungo].

### poc-consul-client-ds-svc.yaml
apiVersion: v1
kind: Service
metadata:
 name: consul-ds-client
spec:
 selector:
   app: consul
   chart: consul-helm
   component: client
   hasDNS: "true"
   release: skywiz-app-with-consul-client-poc
 ports:
 - protocol: TCP
   port: 80
   targetPort: 8500

  • Kisha tumia amri ifuatayo ya ujenzi kuunda usanidi [kiungo]. Tafadhali kumbuka kuwa tunarejelea jina la huduma yetu, libadilishe ikiwa ni lazima.

cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: ConfigMap
metadata:
 labels:
   addonmanager.kubernetes.io/mode: EnsureExists
 name: kube-dns
 namespace: kube-system
data:
 stubDomains: |
   {"consul": ["$(kubectl get svc consul-ds-client -o jsonpath='{.spec.clusterIP}')"]}
EOF

Kujaribu njia ya uthibitishaji

Sasa hebu tuone uchawi ukifanya kazi!

  • Unda folda kadhaa muhimu zaidi na ufunguo sawa wa kiwango cha juu (k.m. /sample_key) na thamani ya chaguo lako. Unda sera na majukumu yanayofaa kwa njia mpya muhimu. Tutafanya vifungo baadaye.

Utangulizi wa Uidhinishaji wa Kubernetes wa Balozi wa Hashicorp

Jaribio maalum la nafasi ya majina:

  • Wacha tuunde nafasi yetu ya majina:

kubectl create namespace custom-ns

  • Hebu tuunde ganda katika nafasi yetu mpya ya majina. Andika usanidi wa ganda.

###poc-ubuntu-custom-ns.yaml
apiVersion: v1
kind: Pod
metadata:
 name: poc-ubuntu-custom-ns
 namespace: custom-ns
spec:
 containers:
 - name: poc-ubuntu-custom-ns
   image: ubuntu
   command: ["/bin/bash", "-ec", "sleep infinity"]
 restartPolicy: Never

  • Unda chini ya:

kubectl create -f poc-ubuntu-custom-ns.yaml

  • Mara tu chombo kinapoendesha, nenda huko na usakinishe curl.

kubectl exec poc-ubuntu-custom-ns -n custom-ns -it /bin/bash
apt-get update && apt-get install curl -y

  • Sasa tutatuma ombi la kuingia kwa Balozi kwa kutumia njia ya uidhinishaji tuliyounda awali [kiungo].
  • Kuangalia tokeni iliyoingizwa kutoka kwa akaunti yako ya huduma:

cat /run/secrets/kubernetes.io/serviceaccount/token

  • Andika yafuatayo kwa faili iliyo ndani ya chombo:

### payload.json
{
 "AuthMethod": "auth-method-test",
 "BearerToken": "<jwt_token>"
}

  • Ingia!

curl 
--request POST 
--data @payload.json 
consul-ds-client.default.svc.cluster.local/v1/acl/login

  • Ili kukamilisha hatua zilizo hapo juu katika mstari mmoja (kwani tutakuwa tukifanya majaribio mengi), unaweza kufanya yafuatayo:

echo "{ 
"AuthMethod": "auth-method-skywiz-consul-poc", 
"BearerToken": "$(cat /run/secrets/kubernetes.io/serviceaccount/token)" 
}" 
| curl 
--request POST 
--data @- 
consul-ds-client.default.svc.cluster.local/v1/acl/login

  • Inafanya kazi! Angalau inapaswa. Sasa chukua Kitambulisho cha Siri na ujaribu kufikia ufunguo/thamani tunayopaswa kupata.

curl 
consul-ds-client.default.svc.cluster.local/v1/kv/custom-ns/test_key --header β€œX-Consul-Token: <SecretID_from_prev_response>”

  • Unaweza kusimbua "Thamani" base64 na kuona kwamba inalingana na thamani katika custom-ns/test_key katika kiolesura. Ikiwa ulitumia thamani sawa hapo juu katika mafunzo haya, thamani yako iliyosimbwa itakuwa IkknbSBpbiB0aGUgY3VzdG9tLW5zIGZvbGRlciEi.

Jaribio la akaunti ya huduma ya mtumiaji:

  • Unda Akaunti ya Huduma maalum kwa kutumia amri ifuatayo [kiungo].

kubectl apply -f - <<EOF
apiVersion: v1
kind: ServiceAccount
metadata:
 name: custom-sa
EOF

  • Unda faili mpya ya usanidi kwa pod. Tafadhali kumbuka kuwa nilijumuisha usanikishaji wa curl ili kuokoa kazi :)

###poc-ubuntu-custom-sa.yaml
apiVersion: v1
kind: Pod
metadata:
 name: poc-ubuntu-custom-sa
 namespace: default
spec:
 serviceAccountName: custom-sa
 containers:
 - name: poc-ubuntu-custom-sa
   image: ubuntu
   command: ["/bin/bash","-ec"]
   args: ["apt-get update && apt-get install curl -y; sleep infinity"]
 restartPolicy: Never

  • Baada ya hayo, endesha shell ndani ya chombo.

kubectl exec -it poc-ubuntu-custom-sa /bin/bash

  • Ingia!

echo "{ 
"AuthMethod": "auth-method-skywiz-consul-poc", 
"BearerToken": "$(cat /run/secrets/kubernetes.io/serviceaccount/token)" 
}" 
| curl 
--request POST 
--data @- 
consul-ds-client.default.svc.cluster.local/v1/acl/login

  • Ruhusa imekataliwa. Lo, tulisahau kuongeza sheria mpya zinazofunga na ruhusa zinazofaa, tufanye hivyo sasa.

Rudia hatua zilizo hapo juu:
a) Tengeneza Sera inayofanana kwa kiambishi awali "custom-sa/".
b) Tengeneza Jukumu, liite "custom-sa-role"
c) Ambatanisha Sera kwenye Jukumu.

  • Unda Sheria ya Kufunga (inawezekana tu kutoka kwa cli/api). Kumbuka maana tofauti ya bendera ya kiteuzi.

consul acl binding-rule create 
-method=auth-method-skywiz-consul-poc 
-bind-type=role 
-bind-name='custom-sa-role' 
-selector='serviceaccount.name=="custom-sa"'

  • Ingia tena kutoka kwa chombo cha "poc-ubuntu-custom-sa". Mafanikio!
  • Angalia ufikiaji wetu kwa njia ya ufunguo maalum-sa/.

curl 
consul-ds-client.default.svc.cluster.local/v1/kv/custom-sa/test_key --header β€œX-Consul-Token: <SecretID>”

  • Unaweza pia kuhakikisha kuwa ishara hii haitoi ufikiaji wa kv katika "desturi-ns/". Rudia tu amri iliyo hapo juu baada ya kubadilisha "custom-sa" na kiambishi awali "desturi-ns".
    Ruhusa imekataliwa.

Mfano wa kuwekelea:

  • Inafaa kukumbuka kuwa ramani zote zinazofunga sheria zitaongezwa kwenye tokeni yenye haki hizi.
  • Chombo chetu "poc-ubuntu-custom-sa" kiko kwenye nafasi ya majina - kwa hivyo wacha tuitumie kwa ufungaji sheria tofauti.
  • Rudia hatua zilizopita:
    a) Unda Sera inayofanana kwa kiambishi awali cha ufunguo "chaguo-msingi/".
    b) Unda Jukumu, lipe jina "default-ns-jukumu"
    c) Ambatanisha Sera kwenye Jukumu.
  • Unda Sheria ya Kufunga (inawezekana tu kutoka kwa cli/api)

consul acl binding-rule create 
-method=auth-method-skywiz-consul-poc 
-bind-type=role 
-bind-name='default-ns-role' 
-selector='serviceaccount.namespace=="default"'

  • Rudi kwenye kontena letu la "poc-ubuntu-custom-sa" na ujaribu kufikia njia ya "default/" kv.
  • Ruhusa imekataliwa.
    Unaweza kuona vitambulisho vilivyobainishwa kwa kila tokeni kwenye kiolesura chini ya ACL > Tokeni. Kama unavyoona, ishara yetu ya sasa ina "jukumu la desturi" moja tu lililoambatishwa nayo. Tokeni tunayotumia kwa sasa ilitolewa tulipoingia na kulikuwa na sheria moja tu inayofungamana na wakati huo. Tunahitaji kuingia tena na kutumia tokeni mpya.
  • Hakikisha unaweza kusoma kutoka kwa njia zote mbili za "custom-sa/" na "default/" kv.
    Mafanikio!
    Hii ni kwa sababu "poc-ubuntu-custom-sa" yetu inalingana na kanuni za "desturi-sa" na "default-ns" kanuni.

Hitimisho

Tokeni ya TTL mgmt?

Wakati wa uandishi huu, hakuna njia jumuishi ya kuamua TTL kwa ishara zinazozalishwa na njia hii ya uidhinishaji. Itakuwa fursa nzuri ya kutoa otomatiki salama ya idhini ya Balozi.

Kuna chaguo la kuunda ishara mwenyewe na TTL:

Tunatumahi katika siku za usoni tutaweza kudhibiti jinsi tokeni zinatolewa (kwa sheria au njia ya uidhinishaji) na kuongeza TTL.

Hadi wakati huo, inapendekezwa kwamba utumie mwisho wa kuondoka kwenye mantiki yako.

Pia soma nakala zingine kwenye blogi yetu:

Chanzo: mapenzi.com

Kuongeza maoni