Sissejuhatus Hashicorp Consul’i Kubernetes Autoriseerimisse

Sissejuhatus Hashicorp Consul’i Kubernetes Autoriseerimisse

KÔik on korras, pÀrast vÀljalaset Hashicorp Consul 1.5.0 mai alguses 2019 sai Consulis rakenduste ja teenuste autentimine, mis on kÀivitatud Kuberneteses, natiivseks.

Selles juhendis loome samm-sammult POC (KĂ€ib ĂŒlesande tĂ”estamine (Proof of concept, PoC) — kontseptsiooni teostatavuse tĂ”estamine — töötlus), demonstreerides seda uut funktsiooni. Teilt oodatakse pĂ”hiteadmisi Kubernetesest ja Hashicorp Consulist. Kuigi saate kasutada igasuguseid pilveplatvorme vĂ”i kohalikke keskkondi, kasutame siin Google'i pilvplatvormi.

Ülevaade

Kui me liigume Consuli dokumentatsiooni selle autentimismeetodi kohta, saame lĂŒhikese ĂŒlevaate selle otstarbest ja kasutusjuhtudest, samuti mĂ”ned tehnilised ĂŒksikasjad ja ĂŒldine ĂŒlevaade loogikast. Soovitan tungivalt lugeda seda vĂ€hemalt korra enne jĂ€tkamist, kuna nĂŒĂŒd hakkan seda kĂ”ik selgitama ja lahti seletama.

Sissejuhatus Hashicorp Consul’i Kubernetes Autoriseerimisse

Joonis 1: Consuli autentimismeetodi ametlik ĂŒlevaade

Vaadakem dokumentatsiooni konkreetse Kubernetes autentimismeetodi jaoks.

KĂŒpselt, seal on kasulikku teavet, kuid pole juhendit selle tĂ”eliseks kasutamiseks. SeetĂ”ttu otsite, nagu iga mĂ”istlik inimene, Internetis juhendit. Ja siis... Kannatate kaotust. TĂ”epoolest. LĂ€hme seda parandama.

Enne kui liigume oma POCi loomiseni, vaadakem tagasi Consuli autentimismeetodite ĂŒlevaatele (Joonis 1) ja tĂ€psustame seda Kubernetes kontekstis.

Arhitektuur

Selles juhendis loome Consul-serveri eraldi masinas, mis suheldes Kubernetes klastriga, kus on installitud Consul klient. SeejÀrel loome oma vale rakenduse podis ja kasutame meie seadistatud autentimismeetodit lugemiseks meie Consul key/value salvest.

Alaealised diagramm nÀitab detailselt arhitektuuri, mida me selles juhendis loome, samuti autentimismeetodi loogikat, mis selgitatakse hiljem.

Sissejuhatus Hashicorp Consul’i Kubernetes Autoriseerimisse

Joonis 2: Autentimismeetodi ĂŒlevaade Kubernetesis

VÀike mÀrkus: Consul-server ei pea asuma Kubernetes klastri vÀljas, et see toimiks. Kuid jah, ta vÔib olla nii.

Nii et kui vĂ”tame Consuli ĂŒlevaate skeemi (Joonis 1) ja kohandame seda Kubernetesega, saame ĂŒlaltoodud skeemi (Joonis 2), mille loogika on jĂ€rgmine:

  1. Iga podi kĂŒlge on kinnitatud teenuse konto, mis sisaldab Kubernetes'e genereeritud ja tuntud JWT tokenit. See token on samuti sisestatud podi vaikeseade.
  2. Meie rakendus vĂ”i teenus podis algatab sisselogimiskĂ€sku meie Consul kliendile. Sisselogimise pĂ€ringus on samuti toodud meie token ja nimi spetsiaalselt loodud autentimise meetodi (Kubernetes'i tĂŒĂŒp). See samm nr 2 vastab sammule 1 Consuli skeemis (Skeem 1).
  3. Meie Consul klient suunab seejÀrel selle pÀringu meie Consul serverisse.
  4. KUIDAS! Just siin Consul server kontrollib pĂ€ringu autentsust, kogub identiteedi teavet pĂ€ringu kohta ja vĂ”rdleb seda vĂ”imalike seotud eeldefineeritud reeglitega. Allpool on teine skeem, et seda illustreerida. See samm vastab sammudele 3, 4 ja 5 Consuli ĂŒlevaateskeemis (Skeem 1).
  5. Meie Consul server genereerib Consul tokeni lubadega vastavalt meie mÀÀratud autentimise meetodi eeskirjadele, mis kehtivad pÀringu identiteedi kohta. SeejÀrel saadab ta selle tokeni tagasi. See vastab sammule 6 Consuli skeemis (Skeem 1).
  6. Meie Consul klient suunab tokeni tagasi pÀringu rakendusele vÔi teenusele.

Meie rakendus vĂ”i teenus saab nĂŒĂŒd kasutada seda Consul tokenit meie Consul andmete suhtlemiseks, nagu on mÀÀratud tokeni Ă”igustega.

Kus see kÔik juhtub!

Nende jaoks, kes ei rahuldu lihtsalt kĂŒbara vĂ€lja tĂ”mmatud jĂ€nese nĂ€gemisega ja tahavad teada, kuidas see toimib
 laske mul "nĂ€idata teile, kui sĂŒgavale jĂ€nku augusse».

Nagu varem mainitud, meie "vĂ”luline" samm (Skeem 2: Samm 4) seisneb selles, et Consul server kontrollib pĂ€ringu autentsust, kogub teavet ja vĂ”rdleb seda vĂ”imalike seotud eeldefineeritud reeglitega. See samm vastab sammudele 3, 4 ja 5 ĂŒlevaateskeemis (Skeem 1). Allpool on skeem (Skeem 3), mille eesmĂ€rk on visuaalselt nĂ€idata, mis tegelikult toimub kapoti all spetsiifilise Kubernetes'i autentimismeetodi.

Sissejuhatus Hashicorp Consul’i Kubernetes Autoriseerimisse

Skeem 3: Kus see kÔik juhtub!

  1. Alustuseks suunab meie Consul klient sisselogimispÀringu meie Consul serverisse Kubernetes'i konto tokeni ja varem loodud autentimise meetodi konkreetse nimega. See samm vastab sammule 3 eelmisest skeemist.
  2. NĂŒĂŒd peab Consul-server (vĂ”i liider) kontrollima saadud tokeni kehtivust. Seega konsulteerib ta Kubernetes klastriga (Consul-klientide kaudu) ja kui on olemas vastavad lubade, selgitame vĂ€lja, kas token on kehtiv ja kellele see kuulub.
  3. SeejĂ€rel naaseb kontrollitud pĂ€ring Consul-liidrile ja Consul-serveris otsitakse nimetatud autentimismeetodi eksemplari, mis on esitatud sisselogimise pĂ€ringus (ja tĂŒĂŒbi Kubernetes).
  4. Consul-liider mÀÀrab mÀÀratud autentimismeetodi eksemplari (kui see leitakse) ja loeb selle kĂŒlge lisatud sidumisreeglite kogumi. SeejĂ€rel loeb ta neid reegleid ja vĂ”rdleb neid kontrollitud identiteedi atribuutidega.
  5. Tada! Liikume edasi eelneva skeemi 5. sammu juurde.

KĂ€ivitage Consul-server tavalisel virtuaalmasinal

Sellest hetkest alates annan ma peamiselt juhiseid selle POC loomiseks, sageli punktidena, ilma seletavate tÀisterveelda. Nagu mainitud, kasutan kogu infrastruktuuri loomiseks GCP-d, kuid samasugust infrastruktuuri on vÔimalik luua ka muudes kohtades.

  • KĂ€ivitage virtuaalne masin (eksemplar / server).

Sissejuhatus Hashicorp Consul’i Kubernetes Autoriseerimisse

  • Looge tulemĂŒĂŒri reegel (AWS-i turvagrupp):
  • Mulle meeldib anda samale masina nimele tulemĂŒĂŒri reegel ja vĂ”rgu silt, sel juhul on see "skywiz-consul-server-poc".
  • Leidke oma kohaliku arvuti IP-aadress ja lisage see loendisse lubatud lĂ€hte-IP-aadressid, et saaksime juurdepÀÀsu kasutajaliidesele (UI).
  • Avage port 8500 UI jaoks. KlĂ”psake Create (Loo). Varsti teeme selle tulemĂŒĂŒri [link].
  • Lisage tulemĂŒĂŒri reegel eksemplarile. Minge tagasi VM jĂ€lgimise paneelile Consul-serveris ja lisage "skywiz-consul-server-poc" vĂ”rgu siltide vĂ€ljal. KlĂ”psake Save (Salvesta).

Sissejuhatus Hashicorp Consul’i Kubernetes Autoriseerimisse

  • Installige Consul virtuaalsesse masinasse, kontrollige siin. Pidage meeles, et vajate Consul versiooni ≄ 1.5 [link]
  • Loome ĂŒhe sĂ”lme Consuli — konfiguratsioon on jĂ€rgmine.

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

  • Üksikasjalikum juhend Consuli installimiseks ja 3 sĂ”lme klastrisse seadistamiseks. siin.
  • Looge fail /etc/consul.d/agent.json jĂ€rgmiselt [link]:

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

  • KĂ€ivitage meie Consul-server:

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

  • Te peaksite nĂ€gema palju vĂ€ljundit ja lĂ”puks „
 update blocked by ACLs”.
  • Leidke Consul-serveri vĂ€line IP-aadress ja avage brauser selle IP-aadressiga porti 8500. Veenduge, et UI avaneb.
  • Proovige lisada paar vĂ”tme/vÀÀrtuse paari. Peate saama vea. See on tingitud sellest, et laadisime Consul-serveri ACL-iga ja keelasime kĂ”ik reeglid.
  • Minge tagasi oma shelli Consul-serveris ja kĂ€ivitage protsess taustal vĂ”i mingil muul viisil, et see töötaks, ja sisestage jĂ€rgmine:

consul acl bootstrap

  • Leidke vÀÀrtus „SecretID” ja minge tagasi UI-le. ACL-i vahekaardil sisestage just kopeeritud tokeni salajane identifikaator. Kopeerige SecretID kuhugi mujale, me vajame seda hiljem.
  • NĂŒĂŒd lisage paar vĂ”tme/vÀÀrtuse paari. Selle POC jaoks lisame jĂ€rgmise: vĂ”tme: „custom-ns/test_key”, vÀÀrtuse: „Olen custom-ns kaustas!”

Kubernetes-klastrite kÀivitamine meie rakenduse jaoks koos Consul-kliendiga Daemonsetina.

  • Looge K8s (Kubernetes) klaster. Loome selle samas tsoonis, kus server, et kiirem juurdepÀÀs oleks, ja seega saame kasutada sama alavĂ”rku lihtsaks ĂŒhendamiseks sise-IP-aadressidega. Nimeks anname „skywiz-app-with-consul-client-poc”.

Sissejuhatus Hashicorp Consul’i Kubernetes Autoriseerimisse

  • Kuna mĂ€rkus, siin on hea juhend, millega ma kokku puutusin POC Consul-klastri seadistamisel koos Consul Connectiga.
  • Kasutame ka Hashicorp helm charti koos laiendatud vÀÀrtuste failiga.
  • Installige ja konfigureerige Helm. Konfigureerimise sammud:

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

  • Rakendage helm chart:

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

  • KĂ€ivitamisel vajab see Ă”igusi Consul-serverile, seega lisame need.
  • Pange tĂ€hele klastri armatuurlaual olevat „Podide aadresside vahemikku” ja minge tagasi meie firewalli reegli „skywiz-consul-server-poc” juurde.
  • Lisage podi aadresside vahemik IP-aadresside loendisse ja avage pordid 8301 ja 8300.

Sissejuhatus Hashicorp Consul’i Kubernetes Autoriseerimisse

  • Minge Consul UI-le ja mĂ”ne minuti pĂ€rast nĂ€ete, et meie klaster ilmub node’ide vahekaardile.

Sissejuhatus Hashicorp Consul’i Kubernetes Autoriseerimisse

Seadistage autoriseerimismeetod, integreerides Consuli Kubernetesega.

  • Minge tagasi Consul-serveri shelli ja eksportige token, mille salvestasite varem:

export CONSUL_HTTP_TOKEN=

  • Meile on vaja teavet meie Kubernetes-klastrist, et luua autoriseerimismeetodi instants:
  • kubernetes-host

kubectl get endpoints | grep kubernetes

  • kubernetes-service-account-jwt

kubectl get sa -consul-client -o yaml | grep "- name:"
kubectl get secret  -o yaml | grep token:

  • Token on base64-kooditud, seega dekrĂŒpteerige see oma lemmikinstrumendi abil [link]
  • kubernetes-ca-cert

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

  • VĂ”tke sertifikaat “ca.crt” (pĂ€rast base64-dekoodimist) ja kirjutage see faili “ca.crt”.
  • NĂŒĂŒd looge autoriseerimismeetodi instants, asendades koha hoidjad just saadud vÀÀrtustega.

consul acl auth-method create 
-type "kubernetes" 
-name "auth-method-skywiz-consul-poc" 
-description "See on autoriseerimismeetod, mis kasutab kubernetes't klastris skywiz-app-with-consul-client-poc" 
-kubernetes-host "" 
-kubernetes-ca-cert=@ca.crt 
-kubernetes-service-account-
jwt=""

  • Edasi peame looma reegli ja kinnitama selle uue rolliga. Selle osa jaoks vĂ”ite kasutada Consul UI-d, kuid me kasutame kĂ€surida.
  • Kirjutage reegel

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

  • Rakendage reegel

consul acl policy create 
-name kv-custom-ns-policy 
-description "See on nÀidisreegel kv kohta custom-ns/" 
-rules @kv-custom-ns-policy.hcl

  • Leidke reegli ID, mille te just loobite, vĂ€ljundist.
  • Looge roll uue reegliga.

consul acl role create 
-name "custom-ns-role" 
-description "See on nÀidisroll custom-ns nimiruumi jaoks" 
-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"'

Konfiguratsioonide lÔpetamine

JuurdepÀÀsuÔigused

  • Looge juurdepÀÀsuĂ”igused. Peame andma Consulile Ă”iguse kontrollida ja tuvastada K8s teenusekonto tokeni tĂ”endit.
  • Salvestage failisse jĂ€rgmine [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

  • Loome juurdepÀÀsuĂ”igused

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

Ühendamine Consul Clientiga

  • Kuidas mainitud siin, on mitu vĂ”imalust daemonsetiga ĂŒhendamiseks, kuid liigume jĂ€rgmise lihtsa lahenduse juurde:
  • Rakendage jĂ€rgmist faili [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

  • SeejĂ€rel rakendage jĂ€rgmine sisseehitatud kĂ€sk configmap'i loomiseks [link]. Pange tĂ€hele, et viitame oma teenuse nimele, asendage see vajadusel.

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

Auth-meetodi testimine

NĂŒĂŒd vaatame, kuidas see praktikas töötab!

  • Looge veel paar pĂ”hikausta sama pealkirja all (st /sample_key) ja mÀÀrake neile oma valitud vÀÀrtused. Looge vastavad poliitikad ja rollid uute vĂ”tmeede jaoks. Teeme sidumised hiljem.

Sissejuhatus Hashicorp Consul’i Kubernetes Autoriseerimisse

Kasutaja nimel testimise ruum:

  • Loome oma nimeala:

kubectl create namespace custom-ns

  • Loome oma uues nimealas aluse. Kirjutage aluse konfiguratsioon.

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

  • Looge alus:

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

  • Kui konteiner kĂ€ivitub, sisenemiseks ja curl'i paigaldamiseks.

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

  • NĂŒĂŒd saadame pĂ€ringu sissemakse jaoks Consulisse, kasutades varem loodud autorisatsiooni meetodit [link].
  • Kuidas vaadata oma teenusekonto sisestatud tokenit:

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

  • Kirjutage konteineri sisse jĂ€rgmine fail:

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

  • Logi sisse!

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

  • Et teostada ĂŒlaltoodud samme ĂŒhes reas (kuna teeme mitmeid teste), vĂ”ite teha jĂ€rgmist:

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

  • Töötas! VĂ”i nii vĂ€hemalt peaks olema. NĂŒĂŒd vĂ”tke SecretID ja proovige pÀÀseda vĂ”tme/vÀÀrtuse juurde, millele meil juurdepÀÀs olema peaks.

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

  • Saate dekodeerida "Value" base64 formaadis ja nĂ€ha, et see vastab vÀÀrtusele custom-ns/test_key vahel UI-s. Kui kasutasite selle juhendi ĂŒlaltoodud vÀÀrtust, siis teie kodeeritud vÀÀrtus oleks IkknbSBpbiB0aGUgY3VzdG9tLW5zIGZvbGRlciEi.

Kohandatud teenuse konto testimine:

  • Looge kohandatud teenuse konto jĂ€rgmise kĂ€su abil [link].

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

  • Looge uus aluse konfiguratsioonifail. Pange tĂ€hele, et ma olen curl'i seadnud, et niipalju tööd sÀÀsta 🙂

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

  • PĂ€rast seda kĂ€ivitage konteineri sees shell.

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

  • Logi sisse!

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

  • LigipÀÀs keelatud. Oh, me unustasime lisada uue reegli sidumise koos sobivate Ă”igustega, teeme seda praegu.

Korrake eelnevaid samme:
a) Looge identne poliitika eelseisu "custom-sa/" jaoks.
b) Looge roll, nimetage see "custom-sa-role".
c) Siduge poliitika rolliga.

  • Looge reegli sidumine (ainult CLI / API kaudu). Pange tĂ€hele selektoriflagi teistsugust vÀÀrtust.

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

  • Logige sĂŒsteemi sisse konteinerist "poc-ubuntu-custom-sa". Edu!
  • Kontrollige meie ligipÀÀsu vĂ”tme teele custom-sa/.

curl 
consul-ds-client.default.svc.cluster.local/v1/kv/custom-sa/test_key --header "X-Consul-Token: "

  • Samuti vĂ”ite veenduda, et see token ei anna ligipÀÀsu kv-le "custom-ns/". Korrake ĂŒlaltoodud kĂ€sku, asendades "custom-sa" eelseisuga "custom-ns".
    LigipÀÀs keelatud.

Ülekatte nĂ€ide:

  • Oluline on mĂ€rkida, et kĂ”ik reegli sidumised lisatakse tokenile koos nende Ă”igustega.
  • Meie konteiner "poc-ubuntu-custom-sa" asub vaikimisi nimes, seega kasutame seda teise reegli sidumise jaoks.
  • Korrake eelnevaid samme:
    a) Looge identne poliitika vÔtme eelseisu "default/" jaoks.
    b) Looge roll, nimetage see “default-ns-role”.
    c) Siduge poliitika rolliga.
  • Looge reegli sidumine (ainult CLI / API kaudu)

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

  • Naaske meie konteinerisse "poc-ubuntu-custom-sa" ja proovige pÀÀseda teele "default/" kv.
  • LigipÀÀs keelatud.
    Saate vaadata igale tokenile mÀÀratud mandaate kasutajaliideses jaotises ACL > Tokens. Nagu nĂ€ete, on meie praegusele tokenile kinnitatud ainult ĂŒks "custom-sa-role". Token, mida me praegu kasutame, genereeriti, kui me sisse logisime ja siis oli ainult ĂŒks reegli sidumine, mis sellele vastas. Peame uuesti sisse logima ja kasutama uut tokenit.
  • Veenduge, et suudate lugeda nii teed "custom-sa/" kui ka "default/" kv.
    Edu!
    See on seotud sellega, et meie "poc-ubuntu-custom-sa" vastab reegli sidumistele "custom-sa" ja "default-ns".

KokkuvÔte

TTL tokeni haldamine?

Artikli kirjutamise hetkel ei ole selle autoriseerimismeetodi kaudu genereeritud tokenite TTL mÀÀramiseks integreeritud viisi. See oleks fantastiline vĂ”imalus — tagada turvaline autoriseerimise automatiseerimine Consulis.

On olemas vÔimalus kÀsitsi luua token TTL-iga:

Loodan, et varsti saame kontrollida, kuidas tokenid genereeritakse (iga reegli vÔi autentsusmeetodi jaoks) ja lisada TTL-i.

Kuni selle ajani soovitatakse kasutada oma loogikas vÀlja logimise lÔpp-punkti.

Vaata ka teisi artikleid meie blogis:

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster