Pasiuna sa Hashicorp Consul's Kubernetes Authorization

Pasiuna sa Hashicorp Consul's Kubernetes Authorization

Mao na, pagkahuman sa pagpagawas Hashicorp Consul 1.5.0 sa sinugdanan sa Mayo 2019, ang Consul mahimong lumad nga magtugot sa mga aplikasyon ug serbisyo nga nagdagan sa Kubernetes.

Niini nga panudlo, maghimo kami nga lakang sa lakang POC (Proof of concept, PoC) nga nagpakita niining bag-ong feature. Gilauman nga aduna kay batakang kahibalo sa Kubernetes ug Hashicorp's Consul. Ug samtang makagamit ka sa bisan unsang cloud platform o lokal nga palibot, niining tutorial, gamiton namo ang Cloud Platform sa Google.

kinatibuk-ang paghulagway

Kung kita moadto sa Dokumentasyon sa konsul sa paagi sa pagtugot niini, makakuha kami usa ka mubo nga pagtan-aw sa katuyoan ug kaso sa paggamit niini, ingon man ang pipila ka mga teknikal nga detalye ug usa ka kinatibuk-ang pagtan-aw sa lohika. Girekomenda nako nga basahon kini bisan usa ka beses sa dili pa magpadayon, tungod kay akong ipasabut ug i-chewing kini tanan karon.

Pasiuna sa Hashicorp Consul's Kubernetes Authorization

Scheme 1: Opisyal nga overview sa pamaagi sa pagtugot sa Consul

Atong tan-awon sa dokumentasyon alang sa usa ka piho nga pamaagi sa pagtugot sa Kubernetes.

Siyempre, adunay mapuslanon nga impormasyon didto, apan walay giya kon unsaon paggamit ang tanan niini. Busa, sama sa bisan kinsang tawong buotan, imong gisuhid ang Internet alang sa giya. Ug unya... Mapildi. Kini mahitabo. Ayuhon nato ni.

Sa dili pa kita mopadayon sa paghimo sa atong POC, mobalik kita sa kinatibuk-ang panglantaw sa mga pamaagi sa pagtugot sa Konsul (Diagram 1) ug pinohon kini sa konteksto sa Kubernetes.

arkitektura

Sa kini nga panudlo, maghimo kami usa ka server sa Consul sa usa ka bulag nga makina nga makig-uban sa usa ka cluster sa Kubernetes nga na-install ang kliyente sa Consul. Buhaton namo ang among dummy app sa pod ug gamiton ang among gi-configure nga paagi sa pagtugot sa pagbasa gikan sa among Consul key/value store.

Ang dayagram sa ubos nagpakita sa detalye sa arkitektura nga atong gihimo niini nga panudlo, ingon man usab sa lohika nga pamaagi sa pagtugot, nga ipasabut sa ulahi.

Pasiuna sa Hashicorp Consul's Kubernetes Authorization

Diagram 2: Kinatibuk-ang Pamaagi sa Pagtugot sa Kubernetes

Usa ka dali nga nota: ang Consul server dili kinahanglan nga magpuyo sa gawas sa Kubernetes cluster aron kini molihok. Apan oo, mahimo niya ang bisan unsang paagi.

Busa, ang pagkuha sa schema sa kinatibuk-ang panglantaw sa Consul (Scheme 1) ug pag-apply sa Kubernetes niini, makuha nato ang scheme sa ibabaw (Scheme 2), ug dinhi ang lohika mao ang mosunod:

  1. Ang matag pod adunay account sa serbisyo nga gilakip niini, nga adunay JWT token nga gihimo ug nahibal-an sa Kubernetes. Kini nga timaan gisulod usab sa pod sa default.
  2. Ang among aplikasyon o serbisyo sa sulod sa usa ka pod magsugod sa usa ka login command sa among Consul client. Ang hangyo sa pag-login maglakip usab sa among timaan ug ngalan espesyal nga gibuhat paagi sa pagtugot (sama sa Kubernetes). Kini nga lakang #2 katumbas sa lakang 1 sa Consul circuit (Diagram 1).
  3. Ang among kliyente sa Consul ipasa kini nga hangyo sa among server sa Consul.
  4. MAGIC! Dinhi ang Consul server nagpamatuod sa hangyo, nagkolekta sa identidad sa hangyo, ug nagtandi niini batok sa bisan unsang kauban nga gitakda nang daan nga mga lagda. Sa ubos mao ang laing diagram aron ihulagway kini. Kini nga lakang katumbas sa mga lakang 3, 4 ug 5 sa Consul overview diagram (Diagram 1).
  5. Ang among Consul server nagmugna og usa ka Consul token nga adunay mga pagtugot sumala sa mga lagda sa pamaagi sa pagtugot nga among gipiho (nga among gipasabut) mahitungod sa pagkatawo sa nangayo. Ipadala dayon kana nga token balik. Kini katumbas sa lakang 6 sa laraw sa Consul (Diagram 1).
  6. Gipasa sa among kliyente sa Consul ang token sa nangayo nga aplikasyon o serbisyo.

Ang among aplikasyon o serbisyo mahimo nang magamit kini nga Consul token aron makigkomunikar sa among data sa Consul, ingon nga gipasabut sa mga pribilehiyo sa token.

Ang salamangka gipadayag!

Para sa inyo nga wala malipay sa usa lang ka kuneho gikan sa kalo ug gusto mahibal-an kung giunsa kini molihok ... tuguti ako "ipakita kanimo kung unsa ka lawom lungag sa koneho".

Sama sa nahisgutan sa sayo pa, ang among "magic" nga lakang (Skema 2: Lakang 4) alang sa Consul server aron mapamatud-an ang hangyo, magtigum og kasayuran bahin sa hangyo, ug itandi kini sa bisan unsang kauban nga gitakda nang daan nga mga lagda. Kini nga lakang katumbas sa mga lakang 3, 4 ug 5 sa Consul overview diagram (Diagram 1). Sa ubos mao ang usa ka diagram (Skema 3), ang katuyoan niini mao ang tin-aw nga pagpakita kung unsa ang tinuod nga nahitabo sa ilalum sa hood piho nga pamaagi sa pagtugot sa Kubernetes.

Pasiuna sa Hashicorp Consul's Kubernetes Authorization

Diagram 3: Ang salamangka gipadayag!

  1. Isip usa ka punto sa pagsugod, gipasa sa among kliyente sa Consul ang hangyo sa pag-login sa among server sa Consul nga adunay token sa account sa Kubernetes ug ang espesipikong ngalan sa instance sa paagi sa pagtugot nga among gihimo sa sayo pa. Kini nga lakang katumbas sa lakang 3 sa miaging katin-awan sa diagram.
  2. Karon ang Consul server (o lider) kinahanglan nga magpamatuod sa pagkatinuod sa nadawat nga token. Busa, mokonsulta kini sa Kubernetes cluster (pinaagi sa Consul client) ug, uban sa angay nga mga permiso, atong mahibal-an kung ang token tinuod ug kinsa ang tag-iya niini.
  3. Ang gi-validate nga hangyo ibalik sa lider sa Consul, ug ang server sa Consul gipangita alang sa usa ka paagi sa pagtugot nga pananglitan nga adunay piho nga ngalan gikan sa hangyo sa pag-login (ug tipo sa Kubernetes).
  4. Gitino sa lider sa Konsul ang espesipikong paagi sa pagtugot nga pananglitan (kung makit-an) ug gibasa ang hugpong sa mga lagda nga nagbugkos nga gilakip niini. Gibasa dayon niini ang mga lagda ug gitandi kini sa napamatud-an nga mga kinaiya sa pagkatawo.
  5. TA-dah! Adto sa lakang 5 sa miaging katin-awan sa sirkito.

Pagdalag Consul-server sa usa ka normal nga virtual machine

Sugod karon, mag-una na ko sa paghatag ug mga instruksyon sa paghimo niini nga POC, kasagaran sa mga paragraph, nga walay pagpatin-aw sa tibuok nga mga tudling-pulong. Usab, sama sa nahisgotan na sa sayo pa, akong gamiton ang GCP sa paghimo sa tibuok nga imprastraktura, apan makahimo ka sa samang imprastraktura bisan asa.

  • Pagsugod sa virtual machine (instance / server).

Pasiuna sa Hashicorp Consul's Kubernetes Authorization

  • Paghimo usa ka lagda sa firewall (usa ka grupo sa seguridad sa AWS):
  • Gusto ko nga i-assign ang parehas nga ngalan sa makina sa lagda ug tag sa network, sa kini nga kaso "skywiz-consul-server-poc".
  • Pangitaa ang IP address sa imong lokal nga kompyuter ug idugang kini sa lista sa tinubdan nga mga IP address aron ma-access namo ang user interface (UI).
  • Ablihi ang port 8500 para sa UI. I-klik ang Paghimo. Usbon namo kini nga firewall sa dili madugay [link].
  • Pagdugang usa ka lagda sa firewall sa pananglitan. Balik sa VM dashboard sa Consul server ug idugang ang "skywiz-consul-server-poc" sa network tags field. I-klik ang Save.

Pasiuna sa Hashicorp Consul's Kubernetes Authorization

  • I-install ang Consul sa usa ka virtual machine, susiha dinhi. Hinumdumi kinahanglan nimo ang bersyon sa Consul β‰₯ 1.5 [link]
  • Maghimo kita og usa ka node nga Consul - ang configuration mao ang mosunod.

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

  • Para sa mas detalyado nga giya sa pag-install sa Consul ug pag-set up sa 3-node cluster, tan-awa dinhi.
  • Paghimo og file /etc/consul.d/agent.json nga sama niini [link]:

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

  • Sugdi ang among Consul server:

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

  • Kinahanglan nimo nga makita ang usa ka hugpong sa mga output ug sa katapusan "... update gibabagan sa ACLs".
  • Pangitaa ang eksternal nga IP address sa Consul server ug ablihi ang usa ka browser nga adunay kana nga IP address sa port 8500. Siguroha nga ang UI moabli.
  • Sulayi ang pagdugang usa ka pares nga yawe/bili. Kinahanglang adunay sayop. Kini tungod kay gikarga namo ang Consul server og ACL ug gibalibaran ang tanang lagda.
  • Balik sa imong kabhang sa Consul server ug sugdi ang proseso sa background o uban pang paagi aron kini molihok ug i-type ang mosunod:

consul acl bootstrap

  • Pangitaa ang "SecretID" nga kantidad ug balik sa UI. Sa ACL tab, isulod ang sekretong token ID nga bag-o lang nimong gikopya. Kopyaha ang SecretID sa laing dapit, kinahanglan namo kini sa ulahi.
  • Karon pagdugang usa ka pares nga yawe/bili. Alang niini nga POC, idugang ang mosunod: yawe: "custom-ns/test_key", bili: "Naa ko sa custom-ns folder!"

Pagsugod ug Kubernetes cluster para sa among aplikasyon sa Consul client isip Daemonset

  • Paghimo ug K8s (Kubernetes) cluster. Himoon namo kini sa samang sona sa server para sa mas paspas nga pag-access ug aron magamit namo ang samang subnet aron daling makonektar sa mga internal nga IP. Atong nganlan kini nga "skywiz-app-with-consul-client-poc".

Pasiuna sa Hashicorp Consul's Kubernetes Authorization

  • Ingon usa ka nota sa kilid, ania ang usa ka maayong giya nga akong nakit-an sa pag-set up sa usa ka cluster sa Consul POC nga adunay Consul Connect.
  • Gamiton usab namo ang tsart sa timon sa Hashicorp nga adunay taas nga kantidad nga file.
  • I-install ug i-configure ang Helm. Mga lakang sa pag-configure:

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

  • Ibutang ang tsart sa timon:

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

  • Sa diha nga kini mosulay sa pagdagan, kini magkinahanglan og mga pagtugot alang sa Consul server, mao nga atong idugang sila.
  • Matikdi ang "Pod address range" nga nahimutang sa cluster dashboard ug balik sa among "skywiz-consul-server-poc" nga lagda sa firewall.
  • Idugang ang hanay sa address alang sa pod sa lista sa mga IP address ug bukas nga mga pantalan 8301 ug 8300.

Pasiuna sa Hashicorp Consul's Kubernetes Authorization

  • Adto sa Consul UI ug sa pipila ka minuto imong makita ang among cluster nga makita sa nodes tab.

Pasiuna sa Hashicorp Consul's Kubernetes Authorization

Pag-customize sa paagi sa pagtugot pinaagi sa paghiusa sa Consul sa Kubernetes

  • Balik sa Consul server shell ug i-export ang token nga imong gitipigan kaniadto:

export CONSUL_HTTP_TOKEN=<SecretID>

  • Nagkinahanglan kami og impormasyon gikan sa among Kubernetes cluster aron ma-instantiate ang auth method:
  • kubernetes host

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:

  • Ang token kay base64 nga naka-encode, busa decrypt kini gamit ang imong paborito nga himan [link]
  • kubernetes-ca-cert

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

  • Kuhaa ang "ca.crt" nga sertipiko (pagkahuman sa base64 decoding) ug ibutang kini sa "ca.crt" file.
  • Karon i-instantiate ang pamaagi sa pag-auth, ilisan ang mga placeholder sa mga kantidad nga bag-o lang nimo nadawat.

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>"

  • Sunod, kinahanglan namon nga maghimo usa ka lagda ug ilakip kini sa bag-ong papel. Alang niini nga bahin, mahimo nimong gamiton ang Consul UI, apan among gamiton ang command line.
  • Pagsulat ug lagda

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

  • Ibutang ang lagda

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

  • Pangitaa ang ID sa lagda nga imong gibuhat gikan sa output.
  • Paghimo usa ka tahas nga adunay bag-ong lagda.

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"'

Mga pag-configure sa katapusan

Mga katungod sa pag-access

  • Paghimo og mga permiso. Kinahanglan nga hatagan namon ang pagtugot sa Consul sa pag-verify ug pag-ila sa pagkatawo sa token sa account sa serbisyo sa K8.
  • Isulat ang mosunod sa file [link]:

###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

  • Maghimo kita og mga katungod sa pag-access

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

Pagkonektar sa Consul Client

  • Ingon sa nahisgutan dinhi, adunay daghang mga kapilian sa pagkonektar sa daemonset, apan magpadayon kami sa sunod nga yano nga solusyon:
  • Ibutang ang mosunod nga file [link].

### 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

  • Dayon gamita ang mosunod nga built-in nga command aron makahimo og configmap [link]. Timan-i nga among gipasabot ang ngalan sa among serbisyo, usba kini kung gikinahanglan.

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

Pagsulay sa pamaagi sa pag-auth

Karon atong tan-awon ang salamangka sa aksyon!

  • Paghimo og pipila pa nga mga yawe nga folder nga adunay parehas nga taas nga lebel nga yawe (ie. /sample_key) ug usa ka bili nga imong gipili. Paghimo sa angay nga mga palisiya ug mga tahas alang sa bag-ong yawe nga mga agianan. Buhaton namo ang mga binding unya.

Pasiuna sa Hashicorp Consul's Kubernetes Authorization

Custom nga namespace nga pagsulay:

  • Maghimo ta ug kaugalingong namespace:

kubectl create namespace custom-ns

  • Magbuhat ta pod sa atong bag-ong namespace. Isulat ang configuration para sa pod.

###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

  • Paghimo ubos sa:

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

  • Sa diha nga ang sudlanan anaa na ug nagdagan, adto didto ug i-install ang curl.

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

  • Magpadala na kami og hangyo sa pag-login sa Consul gamit ang paagi sa pagtugot nga among gibuhat kaniadto [link].
  • Aron tan-awon ang gisulod nga token gikan sa imong service account:

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

  • Isulat ang mosunod sa usa ka file sulod sa sudlanan:

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

  • Sulod!

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

  • Aron mapadagan ang mga lakang sa ibabaw sa usa ka linya (tungod kay magpadagan kami daghang mga pagsulay), mahimo nimo ang mosunod:

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

  • Obra! Kinahanglan, labing menos. Karon kuhaa ang SecretID ug sulayi nga ma-access ang yawe / bili nga kinahanglan namon nga ma-access.

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

  • Mahimo nimong i-decode ang "Value" base64 ug tan-awa nga kini mohaum sa bili sa custom-ns/test_key sa UI. Kung gigamit nimo ang parehas nga kantidad nga gihatag sa sayo pa niini nga giya, ang imong gi-encode nga kantidad mahimong IkknbSBpbiB0aGUgY3VzdG9tLW5zIGZvbGRlciEi.

Pagsulay sa Account sa Serbisyo sa Gumagamit:

  • Paghimo og usa ka kostumbre nga ServiceAccount nga adunay mosunod nga sugo [link].

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

  • Paghimo og bag-ong configuration file para sa pod. Palihug timan-i nga gilakip nako ang pag-install sa curl aron makatipig sa trabaho :)

###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

  • Human niana, sugdi ang usa ka kabhang sa sulod sa sudlanan.

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

  • Sulod!

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

  • Gibalibaran ang pagtugot. Oh, nakalimot mi sa pagdugang ug bag-ong lagda nga nagbugkos sa angay nga mga permiso, ato na kanang buhaton karon.

Balika ang miaging mga lakang sa ibabaw:
a) Paghimo ug parehas nga Polisiya para sa prefix nga "custom-sa/".
b) Paghimo usa ka Papel, nganli kini nga "custom-sa-role"
c) Ilakip ang Polisiya sa Papel.

  • Paghimo og Rule-Binding (posible lang gikan sa cli/api). Matikdi ang lain-laing bili sa selector flag.

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

  • Sulayi pag-usab ang pag-log in gikan sa "poc-ubuntu-custom-sa" nga sudlanan. Kalampusan!
  • Susiha ang among access sa custom-sa/ key path.

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

  • Mahimo usab nimo nga masiguro nga kini nga timaan dili maghatag access sa kv sa "custom-ns/". Balika lang ang sugo sa ibabaw human ilisan ang "custom-sa" sa "custom-ns" prefix.
    Gibalibaran ang pagtugot.

Pananglitan sa overlay:

  • Angay nga hinumdoman nga ang tanan nga mga posporo nga nagbugkos sa lagda idugang sa token nga adunay kini nga mga katungod.
  • Ang among "poc-ubuntu-custom-sa" nga sudlanan naa sa default namespace - busa gamiton nato kini alang sa lain nga paggapos sa lagda.
  • Balika ang miaging mga lakang:
    a) Paghimo ug parehas nga Polisiya para sa "default/" key prefix.
    b) Paghimo usa ka Papel, nganli kini nga "default-ns-role"
    c) Ilakip ang Polisiya sa Papel.
  • Paghimo og Rule-Binding (posible lang gikan sa 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"'

  • Balik sa among "poc-ubuntu-custom-sa" nga sudlanan ug pagsulay sa pag-access sa "default/" kv nga agianan.
  • Gibalibaran ang pagtugot.
    Mahimo nimong tan-awon ang gipiho nga mga kredensyal alang sa matag token sa UI ubos sa ACL > Token. Sama sa imong makita, adunay usa lamang ka "custom-sa-role" nga gilakip sa atong kasamtangan nga token. Ang timaan nga among gigamit karon namugna sa among pag-log in ug adunay usa ra ka lagda nga nagbugkos unya nga gipares. Kinahanglan namon nga mag-login pag-usab ug gamiton ang bag-ong token.
  • Siguroha nga mabasa nimo ang "custom-sa/" ug "default/" kv paths.
    Kalampusan!
    Kini tungod kay ang atong "poc-ubuntu-custom-sa" motakdo sa "custom-sa" ug "default-ns" nga pagbugkos sa lagda.

konklusyon

TTL token mgmt?

Sa pagsulat niini, wala'y hiniusa nga paagi aron mahibal-an ang TTL alang sa mga token nga nahimo pinaagi niini nga paagi sa pagtugot. Kini usa ka hinanduraw nga higayon aron mahatagan ang luwas nga awtorisasyon nga automation para sa Consul.

Adunay kapilian nga mano-mano ang paghimo og token nga adunay TTL:

Unta, sa dili madugay makontrol nato kung giunsa paghimo ang mga token (alang sa matag lagda o pamaagi sa pagtugot) ug idugang ang TTL.

Hangtud niana, gisugyot nga gamiton ang logout endpoint sa imong lohika.

Basaha usab ang ubang mga artikulo sa among blog:

Source: www.habr.com

Idugang sa usa ka comment