Cyflwyniad i Awdurdodiad Kubernetes Conswl Hashicorp

Cyflwyniad i Awdurdodiad Kubernetes Conswl Hashicorp

Mae hynny'n iawn, ar ôl rhyddhau Conswl Hashicorp 1.5.0 ar ddechrau mis Mai 2019, yn Conswl gallwch awdurdodi cymwysiadau a gwasanaethau sy'n rhedeg yn Kubernetes yn frodorol.

Yn y tiwtorial hwn byddwn yn creu cam wrth gam POC (Prawf o gysyniad, PoC) yn arddangos y nodwedd newydd hon. Disgwylir i chi fod â gwybodaeth sylfaenol am Kubernetes a Hashicorp's Conswl. Er y gallwch ddefnyddio unrhyw lwyfan cwmwl neu amgylchedd ar y safle, yn y tiwtorial hwn byddwn yn defnyddio Platfform Cwmwl Google.

Adolygu

Os awn i Dogfennaeth conswl ar ei ddull awdurdodi, byddwn yn cael trosolwg cyflym o'i achos pwrpas a defnydd, yn ogystal â rhai manylion technegol a throsolwg cyffredinol o'r rhesymeg. Rwy'n argymell yn fawr ei ddarllen o leiaf unwaith cyn symud ymlaen, gan y byddaf nawr yn egluro ac yn cnoi ar y cyfan.

Cyflwyniad i Awdurdodiad Kubernetes Conswl Hashicorp

Cynllun 1: Trosolwg swyddogol o'r dull awdurdodi Conswl

Gadewch i ni edrych i mewn dogfennaeth ar gyfer dull awdurdodi Kubernetes penodol.

Yn sicr, mae yna wybodaeth ddefnyddiol yno, ond nid oes canllaw ar sut i ddefnyddio'r cyfan mewn gwirionedd. Felly, fel unrhyw berson call, rydych chi'n sgwrio'r Rhyngrwyd am arweiniad. Ac yna ... Rydych chi'n methu. Mae'n digwydd. Gadewch i ni drwsio hyn.

Cyn i ni symud ymlaen i greu ein POC, gadewch i ni fynd yn ôl at y trosolwg o ddulliau awdurdodi Conswl (Diagram 1) a'i fireinio yng nghyd-destun Kubernetes.

pensaernïaeth

Yn y tiwtorial hwn, byddwn yn creu gweinydd Conswl ar beiriant ar wahân a fydd yn cyfathrebu â chlwstwr Kubernetes gyda'r cleient Conswl wedi'i osod. Yna byddwn yn creu ein cymhwysiad ffug yn y pod ac yn defnyddio ein dull awdurdodi wedi'i ffurfweddu i ddarllen o'n storfa allwedd / gwerth Conswl.

Mae'r diagram isod yn manylu ar y bensaernïaeth yr ydym yn ei chreu yn y tiwtorial hwn, yn ogystal â'r rhesymeg y tu ôl i'r dull awdurdodi, a fydd yn cael ei esbonio yn nes ymlaen.

Cyflwyniad i Awdurdodiad Kubernetes Conswl Hashicorp

Diagram 2: Trosolwg Dull Awdurdodi Kubernetes

Nodyn cyflym: nid oes angen i weinydd y Conswl fyw y tu allan i glwstwr Kubernetes er mwyn i hyn weithio. Ond ie, fe all y naill ffordd neu'r llall.

Felly, gan gymryd y diagram trosolwg Conswl (Diagram 1) a chymhwyso Kubernetes iddo, rydym yn cael y diagram uchod (Diagram 2), ac mae'r rhesymeg yma fel a ganlyn:

  1. Bydd gan bob pod gyfrif gwasanaeth ynghlwm wrtho yn cynnwys tocyn JWT a gynhyrchir ac a adwaenir gan Kubernetes. Mae'r tocyn hwn hefyd yn cael ei fewnosod yn y pod yn ddiofyn.
  2. Mae ein cais neu wasanaeth y tu mewn i'r pod yn cychwyn gorchymyn mewngofnodi i'n cleient Conswl. Bydd y cais mewngofnodi hefyd yn cynnwys ein tocyn a'n henw creu yn arbennig dull awdurdodi (fel Kubernetes). Mae'r cam hwn #2 yn cyfateb i gam 1 y gylched Conswl (Diagram 1).
  3. Yna bydd ein cleient Conswl yn anfon y cais hwn ymlaen at ein gweinydd Conswl.
  4. HWYL! Dyma lle mae gweinydd y Conswl yn gwirio dilysrwydd y cais, yn casglu gwybodaeth am hunaniaeth y cais ac yn ei gymharu ag unrhyw reolau rhagddiffiniedig cysylltiedig. Isod mae diagram arall i ddangos hyn. Mae'r cam hwn yn cyfateb i gamau 3, 4 a 5 o ddiagram trosolwg y Conswl (Diagram 1).
  5. Mae ein gweinydd Conswl yn cynhyrchu tocyn Conswl gyda chaniatâd yn unol â'n rheolau dull awdurdodi penodedig (yr ydym wedi'u diffinio) ynghylch hunaniaeth y ceisydd. Yna bydd yn anfon y tocyn hwnnw yn ôl. Mae hyn yn cyfateb i gam 6 y diagram Conswl (Diagram 1).
  6. Mae ein cleient Conswl yn anfon y tocyn ymlaen at y cais neu'r gwasanaeth sy'n gofyn amdano.

Gall ein cymhwysiad neu wasanaeth nawr ddefnyddio'r tocyn Conswl hwn i gyfathrebu â'n data Conswl, fel y pennir gan freintiau'r tocyn.

Mae'r hud yn cael ei ddatgelu!

I'r rhai ohonoch nad ydych yn hapus gyda dim ond cwningen allan o het ac eisiau gwybod sut mae'n gweithio... gadewch i mi "dangos i chi pa mor ddwfn twll cwningen'.

Fel y soniwyd yn gynharach, ein cam "hud" (Ffigur 2: Cam 4) yw lle mae'r gweinydd Conswl yn dilysu'r cais, yn casglu gwybodaeth y cais, ac yn ei gymharu ag unrhyw reolau rhagddiffiniedig cysylltiedig. Mae'r cam hwn yn cyfateb i gamau 3, 4 a 5 o ddiagram trosolwg y Conswl (Diagram 1). Isod mae diagram (Diagram 3), a'i ddiben yw dangos yn glir beth sy'n digwydd mewn gwirionedd o dan y cwfl dull awdurdodi Kubernetes penodol.

Cyflwyniad i Awdurdodiad Kubernetes Conswl Hashicorp

Diagram 3: Mae'r hud yn cael ei ddatgelu!

  1. Fel man cychwyn, mae ein cleient Conswl yn anfon y cais mewngofnodi ymlaen at ein gweinydd Conswl gyda thocyn cyfrif Kubernetes ac enw enghraifft benodol y dull awdurdodi a grëwyd yn gynharach. Mae'r cam hwn yn cyfateb i gam 3 yn yr esboniad cylched blaenorol.
  2. Nawr mae angen i'r gweinydd Conswl (neu'r arweinydd) wirio dilysrwydd y tocyn a dderbyniwyd. Felly, bydd yn ymgynghori â chlwstwr Kubernetes (trwy'r cleient Conswl) a, gyda'r caniatâd priodol, byddwn yn darganfod a yw'r tocyn yn ddilys ac i bwy y mae'n perthyn.
  3. Yna dychwelir y cais dilys i arweinydd y Conswl, ac mae'r gweinydd Conswl yn edrych ar yr enghraifft dull awdurdodi gyda'r enw penodedig o'r cais mewngofnodi (a math Kubernetes).
  4. Mae'r arweinydd conswl yn nodi'r enghraifft dull awdurdodi penodedig (os canfyddir) ac yn darllen y set o reolau rhwymol sydd ynghlwm wrtho. Yna mae'n darllen y rheolau hyn ac yn eu cymharu â'r priodoleddau hunaniaeth a ddilyswyd.
  5. Ystyr geiriau: TA-dah! Gadewch i ni symud ymlaen i gam 5 yn yr esboniad cylched blaenorol.

Rhedeg gweinydd Conswl mewn peiriant rhithwir arferol

O hyn ymlaen, byddaf yn bennaf yn rhoi cyfarwyddiadau ar sut i greu'r POC hwn, yn aml mewn pwyntiau bwled, heb esboniadau brawddeg llawn. Hefyd, fel y nodwyd yn gynharach, byddaf yn defnyddio GCP i greu’r holl seilwaith, ond gallwch greu’r un seilwaith yn unrhyw le arall.

  • Dechreuwch y peiriant rhithwir (enghraifft/gweinydd).

Cyflwyniad i Awdurdodiad Kubernetes Conswl Hashicorp

  • Creu rheol ar gyfer y wal dân (grŵp diogelwch yn AWS):
  • Rwy'n hoffi aseinio'r un enw peiriant i'r rheol a'r tag rhwydwaith, yn yr achos hwn "skywiz-consul-server-poc".
  • Dewch o hyd i gyfeiriad IP eich cyfrifiadur lleol a'i ychwanegu at y rhestr o gyfeiriadau IP ffynhonnell fel y gallwn gael mynediad i'r rhyngwyneb defnyddiwr (UI).
  • Porthladd agored 8500 ar gyfer UI. Cliciwch Creu. Byddwn yn newid y wal dân hon eto yn fuan [cyswllt].
  • Ychwanegu rheol wal dân i'r enghraifft. Ewch yn ôl i'r dangosfwrdd VM ar Consul Server ac ychwanegu “skywiz-consul-server-poc” i'r maes tagiau rhwydwaith. Cliciwch Cadw.

Cyflwyniad i Awdurdodiad Kubernetes Conswl Hashicorp

  • Gosod Conswl ar beiriant rhithwir, gwiriwch yma. Cofiwch fod angen fersiwn Conswl arnoch chi ≥ 1.5 [dolen]
  • Gadewch i ni greu Conswl un nod - mae'r ffurfweddiad fel a ganlyn.

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

  • Am ganllaw manylach ar osod Conswl a sefydlu clwstwr o 3 nod, gweler yma.
  • Creu ffeil /etc/consul.d/agent.json fel hyn [cyswllt]:

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

  • Dechreuwch ein gweinydd Conswl:

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

  • Dylech weld criw o allbwn ac yn y pen draw gyda "... diweddariad wedi'i rwystro gan ACLs."
  • Dewch o hyd i gyfeiriad IP allanol y gweinydd Conswl ac agorwch borwr gyda'r cyfeiriad IP hwn ar borthladd 8500. Gwnewch yn siŵr bod yr UI yn agor.
  • Ceisiwch ychwanegu pâr allwedd/gwerth. Mae'n rhaid bod camgymeriad. Mae hyn oherwydd i ni lwytho'r gweinydd Conswl gyda ACL ac analluogi'r holl reolau.
  • Ewch yn ôl at eich cragen ar y gweinydd Conswl a chychwyn y broses yn y cefndir neu ryw ffordd arall i'w rhedeg a nodwch y canlynol:

consul acl bootstrap

  • Dewch o hyd i'r gwerth "SecretID" a dychwelyd i'r UI. Yn y tab ACL, nodwch ID cyfrinachol y tocyn rydych chi newydd ei gopïo. Copïwch SecretID yn rhywle arall, bydd ei angen arnom yn nes ymlaen.
  • Nawr ychwanegwch allwedd/pâr gwerth. Ar gyfer y POC hwn, ychwanegwch y canlynol: allwedd: “custom-ns/test_key”, gwerth: “Rydw i yn y ffolder custom-ns!”

Lansio clwstwr Kubernetes ar gyfer ein cais gyda'r cleient Conswl fel Daemonset

  • Creu clwstwr K8s (Kubernetes). Byddwn yn ei greu yn yr un parth â'r gweinydd ar gyfer mynediad cyflymach, ac felly gallwn ddefnyddio'r un is-rwydwaith i gysylltu'n hawdd â chyfeiriadau IP mewnol. Byddwn yn ei alw'n "skywiz-app-with-consul-client-poc".

Cyflwyniad i Awdurdodiad Kubernetes Conswl Hashicorp

  • Fel nodyn ochr, dyma diwtorial da y deuthum ar ei draws wrth sefydlu clwstwr POC Consul gyda Consul Connect.
  • Byddwn hefyd yn defnyddio siart helm Hashicorp gyda ffeil gwerthoedd estynedig.
  • Gosod a ffurfweddu Helm. Camau ffurfweddu:

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

  • Cymhwyso siart helm:

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

  • Pan fydd yn ceisio rhedeg, bydd angen caniatâd ar gyfer y gweinydd Conswl, felly gadewch i ni eu hychwanegu.
  • Sylwch ar yr “Ystod Cyfeiriad Pod” sydd wedi'i leoli ar ddangosfwrdd y clwstwr a chyfeiriwch yn ôl at ein rheol wal dân “skywiz-consul-server-poc”.
  • Ychwanegwch yr ystod cyfeiriadau ar gyfer y pod at y rhestr o gyfeiriadau IP a phorthladdoedd agored 8301 a 8300.

Cyflwyniad i Awdurdodiad Kubernetes Conswl Hashicorp

  • Ewch i'r Consul UI ac ar ôl ychydig funudau fe welwch ein clwstwr yn ymddangos yn y tab nodau.

Cyflwyniad i Awdurdodiad Kubernetes Conswl Hashicorp

Ffurfweddu Dull Awdurdodi trwy Integreiddio Conswl â Kubernetes

  • Dychwelwch i gragen gweinydd Conswl ac allforiwch y tocyn a arbedwyd gennych yn gynharach:

export CONSUL_HTTP_TOKEN=<SecretID>

  • Bydd angen gwybodaeth arnom o'n clwstwr Kubernetes i greu enghraifft o'r dull awdurdod:
  • kubernetes-host

kubectl get endpoints | grep kubernetes

  • kubernetes-gwasanaeth-cyfrif-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:

  • Mae'r tocyn wedi'i amgodio base64, felly dadgryptio gan ddefnyddio'ch hoff offeryn [cyswllt]
  • kubernetes-ca-cert

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

  • Cymerwch y dystysgrif “ca.crt” (ar ôl datgodio base64) ac ysgrifennwch hi yn y ffeil “ca.crt”.
  • Nawr rhowch y dull awdurdod ar unwaith, gan ddisodli'r dalfannau gyda'r gwerthoedd rydych chi newydd eu derbyn.

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

  • Nesaf, mae angen i ni greu rheol a'i hatodi i'r rôl newydd. Ar gyfer y rhan hon, gallwch ddefnyddio Consul UI, ond byddwn yn defnyddio'r llinell orchymyn.
  • Ysgrifennwch reol

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

  • Cymhwyswch y rheol

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

  • Dewch o hyd i ID y rheol rydych chi newydd ei chreu o'r allbwn.
  • Creu rôl gyda rheol newydd.

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

Cyfluniadau yn y diwedd

Hawliau mynediad

  • Creu caniatadau. Mae angen i ni roi caniatâd Conswl i wirio a nodi hunaniaeth tocyn cyfrif gwasanaeth K8s.
  • Ysgrifennwch y canlynol i'r ffeil [dolen]:

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

  • Gadewch i ni greu hawliau mynediad

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

Cysylltu â Chonswl Cleient

  • Fel y nodwyd yma, mae yna sawl opsiwn ar gyfer cysylltu â'r daemonset, ond byddwn yn symud ymlaen i'r ateb syml nesaf:
  • Cymhwyso'r ffeil ganlynol [cyswllt].

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

  • Yna defnyddiwch y gorchymyn adeiledig canlynol i greu configmap [cyswllt]. Sylwch ein bod yn cyfeirio at enw ein gwasanaeth, rhowch ef yn ei le os oes angen.

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

Profi dull yr awdurdod

Nawr, gadewch i ni weld yr hud ar waith!

  • Creu sawl ffolder allweddol arall gyda'r un allwedd lefel uchaf (h.y. /sample_key) a gwerth o'ch dewis. Creu polisïau a rolau priodol ar gyfer llwybrau allweddol newydd. Byddwn yn gwneud y rhwymiadau yn ddiweddarach.

Cyflwyniad i Awdurdodiad Kubernetes Conswl Hashicorp

Prawf gofod enw personol:

  • Gadewch i ni greu ein gofod enw ein hunain:

kubectl create namespace custom-ns

  • Gadewch i ni greu pod yn ein gofod enwau newydd. Ysgrifennwch y ffurfweddiad ar gyfer y 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

  • Creu o dan:

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

  • Unwaith y bydd y cynhwysydd yn rhedeg, ewch yno a gosod curl.

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

  • Nawr byddwn yn anfon cais mewngofnodi i Consul gan ddefnyddio'r dull awdurdodi a grëwyd gennym yn gynharach [cyswllt].
  • I weld y tocyn a gofnodwyd o'ch cyfrif gwasanaeth:

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

  • Ysgrifennwch y canlynol i ffeil y tu mewn i'r cynhwysydd:

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

  • Mewngofnodi!

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

  • I gwblhau'r camau uchod mewn un llinell (gan y byddwn yn cynnal profion lluosog), gallwch wneud y canlynol:

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

  • Yn gweithio! Dylai, o leiaf. Nawr cymerwch y SecretID a cheisiwch gyrchu'r allwedd/gwerth y dylem gael mynediad iddo.

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

  • Gallwch ddadgodio "Gwerth" base64 a gweld ei fod yn cyfateb i'r gwerth yn custom-ns/test_key yn yr UI. Pe baech yn defnyddio'r un gwerth a roddwyd yn gynharach yn y canllaw hwn, eich gwerth wedi'i amgodio fyddai IkknbSBpbiB0aGUgY3VzdG9tLW5zIGZvbGRlciEi.

Prawf cyfrif gwasanaeth defnyddiwr:

  • Creu Cyfrif Gwasanaeth wedi'i deilwra gan ddefnyddio'r gorchymyn canlynol [cyswllt].

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

  • Creu ffeil ffurfweddu newydd ar gyfer y pod. Sylwch fy mod wedi cynnwys gosod cyrl i arbed llafur :)

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

  • Ar ôl hynny, rhedeg cragen y tu mewn i'r cynhwysydd.

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

  • Mewngofnodi!

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

  • Caniatâd wedi ei wrthod. O, rydym wedi anghofio ychwanegu rheolau newydd yn rhwymo gyda'r caniatâd priodol, gadewch i ni wneud hynny nawr.

Ailadroddwch y camau blaenorol uchod:
a) Creu Polisi union yr un fath ar gyfer y rhagddodiad “custom-sa/”.
b) Creu Rôl, ei alw’n “custom-sa-role”
c) Atodi'r Polisi i'r Rôl.

  • Creu Rhwymo Rheol (dim ond yn bosibl o cli/api). Sylwch ar ystyr gwahanol baner y dewiswr.

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

  • Mewngofnodwch eto o'r cynhwysydd "poc-ubuntu-custom-sa". Llwyddiant!
  • Edrychwch ar ein mynediad i'r llwybr arfer-sa/ allwedd.

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

  • Gallwch hefyd sicrhau nad yw'r tocyn hwn yn caniatáu mynediad i kv yn "custom-ns/". Ailadroddwch y gorchymyn uchod ar ôl disodli "custom-sa" gyda'r rhagddodiad "custom-ns".
    Gwrthodwyd caniatâd.

Enghraifft troshaen:

  • Mae'n werth nodi y bydd yr holl fapiau sy'n rhwymo rheolau yn cael eu hychwanegu at y tocyn gyda'r hawliau hyn.
  • Mae ein cynhwysydd "poc-ubuntu-custom-sa" yn y gofod enw diofyn - felly gadewch i ni ei ddefnyddio ar gyfer rhwymo rheolau gwahanol.
  • Ailadroddwch y camau blaenorol:
    a) Creu Polisi union yr un fath ar gyfer y rhagddodiad allwedd “diofyn/”.
    b) Creu Rôl, ei henwi yn “rôl ddiofyn”
    c) Atodi'r Polisi i'r Rôl.
  • Creu Rhwymo Rheol (dim ond yn bosibl o 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"'

  • Ewch yn ôl i'n cynhwysydd "poc-ubuntu-custom-sa" a cheisiwch gyrchu'r llwybr kv "default/".
  • Gwrthodwyd caniatâd.
    Gallwch weld y tystlythyrau penodedig ar gyfer pob tocyn yn yr UI o dan ACL> Tokens. Fel y gallwch weld, dim ond un “custom-sa-rôl” sydd ynghlwm wrth ein tocyn presennol. Cynhyrchwyd y tocyn rydym yn ei ddefnyddio ar hyn o bryd pan wnaethom fewngofnodi a dim ond un rhwymiad rheolau oedd yn cyfateb bryd hynny. Mae angen i ni fewngofnodi eto a defnyddio'r tocyn newydd.
  • Gwnewch yn siŵr eich bod chi'n gallu darllen o'r llwybrau kv "custom-sa/" a "default/".
    Llwyddiant!
    Mae hyn oherwydd bod ein “poc-ubuntu-custom-sa” yn cyd-fynd â rhwymiadau rheolau “custom-sa” a “default-ns”.

Casgliad

mgmt tocyn TTL?

Ar adeg ysgrifennu hwn, nid oes unrhyw ffordd integredig o bennu'r TTL ar gyfer tocynnau a gynhyrchir gan y dull awdurdodi hwn. Byddai'n gyfle gwych i ddarparu awtomeiddio diogel o awdurdodiad Conswl.

Mae opsiwn i greu tocyn â TTL â llaw:

Gobeithio, cyn bo hir, byddwn yn gallu rheoli sut mae tocynnau'n cael eu cynhyrchu (ar gyfer pob rheol neu ddull awdurdodi) ac ychwanegu TTL.

Tan hynny, awgrymir eich bod yn defnyddio pwynt terfyn allgofnodi yn eich rhesymeg.

Darllenwch erthyglau eraill ar ein blog hefyd:

Ffynhonnell: hab.com

Ychwanegu sylw