Introduktion till Hashicorp Consuls Kubernetes-autorisering

Introduktion till Hashicorp Consuls Kubernetes-autorisering

Allt stÀmmer, efter lanseringen Hashicorp Consul 1.5.0 i början av maj 2019 kan man autentisera applikationer och tjÀnster som körs i Kubernetes, nativt i Consul.

I den hĂ€r guiden kommer vi steg för steg att skapa POC (Proof of concept, PoC — bevis för konceptets genomförbarhet — kommentar till översĂ€ttningen), och demonstrera denna nya funktion. Du förvĂ€ntas ha grundlĂ€ggande kunskaper om Kubernetes och Hashicorp's Consul. Och Ă€ven om du kan anvĂ€nda vilken molnplattform eller lokal miljö som helst, kommer vi i denna guide att anvĂ€nda Google’s Cloud Platform.

Översikt

Om vi gÄr till Consuls dokumentation om dess autentiseringsmetod, fÄr vi en kort översikt över dess syfte och anvÀndningsfall, samt nÄgra tekniska detaljer och en allmÀn översikt över logiken. Jag rekommenderar starkt att du lÀser igenom det Ätminstone en gÄng innan du fortsÀtter, eftersom jag nu kommer att förklara och utveckla allt detta.

Introduktion till Hashicorp Consuls Kubernetes-autorisering

Schema 1: Officiell översikt över Consuls autentiseringsmetod

LÄt oss titta i dokumentationen för den specifika Kubernetes-autentiseringsmetoden.

SjÀlvklart finns det anvÀndbar information dÀr, men ingen handledning om hur man faktiskt anvÀnder allt detta. SÄ, som varje förnuftig person, söker du pÄ internet efter en guide. Och sedan... rÄkar du pÄ motgÄngar. SÄdant hÀnder. LÄt oss rÀtta till det.

Innan vi gÄr vidare till att skapa vÄr POC, lÄt oss ÄtervÀnda till översikten över Consuls autentiseringsmetoder (Schema 1) och specificera den i kontexten av Kubernetes.

Arkitektur

I denna guide kommer vi att skapa en Consul-server pÄ en separat maskin som kommer att interagera med Kubernetes-klustret dÀr Consul-klienten Àr installerad. Sedan kommer vi att skapa vÄr dummyapplikation i en pod och anvÀnda vÄr konfigurerade autentiseringsmetod för att lÀsa frÄn vÄrt Consul key/value-lager.

Schemat nedan visar detaljerat arkitekturen som vi skapar i denna guide, samt logiken för autentiseringsmetoden som kommer att förklaras senare.

Introduktion till Hashicorp Consuls Kubernetes-autorisering

Schema 2: Översikt över autentisering i Kubernetes

Ett litet meddelande: Consul-servern behöver inte leva utanför Kubernetes-klustret för att detta ska fungera. Men ja, den kan vara bÄde och.

SÄ, med översiktsschemat för Consul (Schema 1) och tillÀmpat pÄ Kubernetes, fÄr vi schemat ovan (Schema 2), och logiken kommer att vara följande:

  1. Varje pod kommer att kopplas till ett tjÀnstekonto som innehÄller en JWT-token, som genereras av och Àr kÀnd av Kubernetes. Denna token sÀtts ocksÄ in i podden som standard.
  2. VÄr applikation eller tjÀnst inom podden initierar en inloggningskommandotill vÄrt Consul-klient. I inloggningsbegÀran kommer Àven vÄr token att anges och nÀmna namnet sÀrskilt skapad auktoriseringsmetod (av typen Kubernetes). Detta steg nummer 2 motsvarar steg 1 i Consul-diagrammet (Diagram 1).
  3. VÄr Consul-klient kommer sedan att skicka denna begÀran till vÄr Consul-server.
  4. MAGI! Det Àr hÀr som Consul-servern autentiserar begÀran, samlar in information om begÀran och jÀmför den med eventuella associerade fördefinierade regler. Nedan finns ett annat diagram för att illustrera detta. Detta steg motsvarar steg 3, 4 och 5 i översiktliga Consul-diagrammet (Diagram 1).
  5. VÄr Consul-server genererar en Consul-token med behörigheter i enlighet med de regler vi angivit för auktoriseringsmetoden (som vi har definierat) i relation till identiteten hos den som begÀr.
  6. VÄr Consul-klient omdirigerar token till den begÀrande applikationen eller tjÀnsten.

VÄr applikation eller tjÀnst kan nu anvÀnda denna Consul-token för att interagera med vÄra Consul-data, sÄsom definierat av token-behörigheterna.

Magin avslöjad!

För er som inte nöjer er med bara en kanin ur hatten och vill veta hur det fungerar
 lĂ„t mig "visa er hur djup kaninhĂ„let».

Som nÀmnts tidigare ligger vÄr "magiska" aspekt (Diagram 2: Steg 4) i att Consul-servern autentiserar begÀran, samlar information om begÀran och jÀmför den med eventuella associerade fördefinierade regler. Detta steg motsvarar steg 3, 4 och 5 i översiktliga Consul-diagrammet (Diagram 1). HÀr Àr ett diagram (Diagram 3) vars syfte Àr att visuellt visa vad som faktiskt hÀnder under huven med den specifika Kubernetes-auktoriseringsmetoden.

Introduktion till Hashicorp Consuls Kubernetes-autorisering

Diagram 3: Magin avslöjad!

  1. Som utgÄngspunkt omdirigerar vÄr Consul-klient inloggningsbegÀran till vÄr Consul-server med Kubernetes-konto-token och det specifika namnet pÄ instansen av auktoriseringsmetoden som skapades tidigare. Detta steg motsvarar steg 3 i den tidigare förklaringen av diagrammet.
  2. Nu mÄste Consul-servern (eller ledaren) verifiera giltigheten av den mottagna token. DÀrför kommer den att rÄdfrÄga Kubernetes-klustret (via Consul-klienten) och, om rÀttigheter finns, kommer vi att ta reda pÄ om token Àr Àkta och vem den tillhör.
  3. Den verifierade begÀran returneras sedan till Consul-ledaren, och pÄ Consul-servern utförs en sökning efter instansen av autentiseringmetoden med det angivna namnet frÄn inloggningsbegÀran (och typen Kubernetes).
  4. Consul-ledaren identifierar den angivna instansen av autentiseringmetoden (om den hittas) och lÀser uppsÀttningen av bindningsregler som kopplats till den. DÀrefter lÀser den dessa regler och jÀmför dem med de verifierade identitetsattributen.
  5. Tada! LÄt oss gÄ vidare till steg 5 i den tidigare förklaringen av schemat.

Kör Consul-servern pÄ en vanlig virtuell maskin.

FrĂ„n och med nu kommer jag mestadels att ge instruktioner om hur man skapar denna POC, ofta i punkter, utan förklarande hela meningar. Även som tidigare nĂ€mnts kommer jag att anvĂ€nda GCP för att skapa hela infrastrukturen, men du kan skapa en liknande infrastruktur nĂ„gon annanstans.

  • Starta en virtuell maskin (instans / server).

Introduktion till Hashicorp Consuls Kubernetes-autorisering

  • Skapa en brandvĂ€ggsregel (sĂ€kerhetsgrupp i AWS):
  • Jag gillar att ge samma namn pĂ„ maskinen till regeln och nĂ€tverkstaggen, i det hĂ€r fallet "skywiz-consul-server-poc".
  • Hitta IP-adressen till din lokala dator och lĂ€gg till den i listan över ursprungliga IP-adresser, sĂ„ att vi kan fĂ„ tillgĂ„ng till anvĂ€ndargrĂ€nssnittet (UI).
  • Öppna port 8500 för UI. Klicka pĂ„ Skapa. Vi kommer snart att Ă€ndra denna brandvĂ€gg igen [lĂ€nk].
  • LĂ€gg till en brandvĂ€ggsregel till instansen. GĂ„ tillbaka till VM-panelen pĂ„ Consul-servern och lĂ€gg till "skywiz-consul-server-poc" i nĂ€tverkstagsfĂ€ltet. Klicka pĂ„ Spara.

Introduktion till Hashicorp Consuls Kubernetes-autorisering

  • Installera Consul pĂ„ den virtuella maskinen, kolla hĂ€r. Kom ihĂ„g att du behöver Consul version ≄ 1.5 [lĂ€nk]
  • LĂ„t oss skapa en enskild nod Consul — konfigurationen Ă€r följande.

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

  • En mer detaljerad guide för att installera Consul och konfigurera ett kluster med 3 noder finner du. hĂ€r.
  • Skapa filen /etc/consul.d/agent.json pĂ„ följande sĂ€tt [lĂ€nk]:

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

  • Starta vĂ„r Consul-server:

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

  • Du bör se en massa utdata och slutligen "... update blocked by ACLs".
  • Hitta den externa IP-adressen för Consul-servern och öppna webblĂ€saren med den IP-adressen pĂ„ port 8500. Se till att UI:n öppnas.
  • Försök att lĂ€gga till ett par nyckel/vĂ€rde. Det bör bli ett fel. Det Ă€r för att vi har laddat Consul-servern med ACL och blockerat alla regler.
  • GĂ„ tillbaka till din terminal pĂ„ Consul-servern och kör processen i bakgrunden eller pĂ„ nĂ„got annat sĂ€tt sĂ„ att den fortsĂ€tter att köras, och skriv in följande:

consul acl bootstrap

  • Hitta vĂ€rdet "SecretID" och gĂ„ tillbaka till UI:n. PĂ„ fliken "ACL" anger du den hemliga identifieraren för token som du just kopierade. Kopiera SecretID nĂ„gon annanstans, vi behöver den senare.
  • Nu lĂ€gg till ett par nyckel/vĂ€rde. För detta POC lĂ€gger vi till följande: nyckel: "custom-ns/test_key", vĂ€rde: "Jag Ă€r i mappen custom-ns!"

Starta Kubernetes-klustret för vÄr applikation med Consul-klienten som Daemonset.

  • Skapa en K8s (Kubernetes) kluster. Vi kommer att skapa den i samma zon som servern för snabbare Ă„tkomst, och sĂ„ att vi kan anvĂ€nda samma undernĂ€t för enkel anslutning med interna IP-adresser. Vi kallar den "skywiz-app-with-consul-client-poc".

Introduktion till Hashicorp Consuls Kubernetes-autorisering

  • Som en anteckning, hĂ€r Ă€r en bra guide som jag stötte pĂ„ nĂ€r jag konfigurerade POC Consul-klustret med Consul Connect.
  • Vi kommer ocksĂ„ att anvĂ€nda Hashicorp helm chart med en utökad vĂ€rdefil.
  • Installera och konfigurera Helm. Konfigurationsstegen:

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

  • TillĂ€mpa helm chart:

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

  • NĂ€r du försöker starta den, kommer den att behöva behörigheter för Consul-servern, sĂ„ lĂ„t oss lĂ€gga till dem.
  • Observera "pod-adressintervallet" som finns pĂ„ klusterpanelen, och gĂ„ tillbaka till vĂ„r brandvĂ€ggsregel "skywiz-consul-server-poc".
  • LĂ€gg till pod-adressintervallet till listan över IP-adresser och öppna portarna 8301 och 8300.

Introduktion till Hashicorp Consuls Kubernetes-autorisering

  • GĂ„ till Consul UI, och efter nĂ„gra minuter ser du att vĂ„rt kluster dyker upp pĂ„ nodfliken.

Introduktion till Hashicorp Consuls Kubernetes-autorisering

Konfigurera autentiseringsmetod genom att integrera Consul med Kubernetes.

  • GĂ„ tillbaka till terminalen pĂ„ Consul-servern och exportera token som du sparade tidigare:

export CONSUL_HTTP_TOKEN=

  • Vi behöver information frĂ„n vĂ„r Kubernetes-kluster för att skapa en instans av autentiseringsmetoden:
  • 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 Ă€r kodad i base64, sĂ„ dekoda det med ditt favoritverktyg [lĂ€nk]
  • kubernetes-ca-cert

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

  • Ta certifikatet “ca.crt” (efter att det har dekodats frĂ„n base64) och skriv in det i filen “ca.crt”.
  • Skapa nu en instans av autentiseringsmetoden, ersĂ€tt platshĂ„llarna med de vĂ€rden som du just har fĂ„tt.

consul acl auth-method create 
-type "kubernetes" 
-name "auth-method-skywiz-consul-poc" 
-description "Detta Àr en autentiseringsmetod som anvÀnder kubernetes för klustret skywiz-app-with-consul-client-poc" 
-kubernetes-host "" 
-kubernetes-ca-cert=@ca.crt 
-kubernetes-service-account-
jwt=""

  • Vidare mĂ„ste vi skapa en regel och koppla den till den nya rollen. För denna del kan du anvĂ€nda Consul UI, men vi kommer att anvĂ€nda kommandoraden.
  • Skriv regeln

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

  • TillĂ€mpa regeln

consul acl policy create 
-name kv-custom-ns-policy 
-description "Detta Àr ett exempel pÄ en policy för kv pÄ custom-ns/" 
-rules @kv-custom-ns-policy.hcl

  • Hitta id:t för regeln som du just har skapat frĂ„n utdata.
  • Skapa en roll med den nya regeln.

consul acl role create 
-name "custom-ns-role" 
-description "Detta Àr ett exempel pÄ en roll för custom-ns-namnrymden" 
-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"'

Konfigurationer till sist

Åtkomstbehörigheter

  • Skapa Ă„tkomstbehörigheter. Vi behöver ge Consul tillstĂ„nd att verifiera och identifiera token-ID:t för K8s tjĂ€nsteerkĂ€nnande.
  • Skriv följande i filen [lĂ€nk]:

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

  • LĂ„t oss skapa Ă„tkomstbehörigheter

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

Anslutning till Consul Client

  • Som nĂ€mnts hĂ€r, finns det flera alternativ för att ansluta till daemonset, men vi gĂ„r vidare till nĂ€sta enklare lösning:
  • TillĂ€mpa följande fil [lĂ€nk].

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

  • TillĂ€mpa sedan följande inbyggda kommando för att skapa configmap [lĂ€nk]. Observera att vi refererar till namnet pĂ„ vĂ„r tjĂ€nst, byt ut det vid behov.

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

Testa auth-metoden

Nu ska vi titta pÄ magin i aktion!

  • Skapa ytterligare nĂ„gra nyckelmappare med samma övre nivĂ„nyckel (dvs. /sample_key) och vĂ€rde av ditt val. Skapa motsvarande policyer och roller för de nya nyckelvĂ€garna. Vi kommer att göra bindningar senare.

Introduktion till Hashicorp Consuls Kubernetes-autorisering

AnvÀndartest av namnutrymme:

  • LĂ„t oss skapa vĂ„rt eget namnutrymme:

kubectl create namespace custom-ns

  • LĂ„t oss skapa en pod i vĂ„rt nya namnutrymme. Skriv konfigurationen för podden.

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

  • Skapa pod:

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

  • SĂ„ snart containern Ă€r igĂ„ng, gĂ„ in dĂ€r och installera curl.

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

  • Nu ska vi skicka en inloggningsbegĂ€ran till Consul, med hjĂ€lp av den autentiseringsmetod vi skapade tidigare [lĂ€nk].
  • För att se den inmatade token frĂ„n ditt tjĂ€nsteprogram:

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

  • Skriv följande i en fil inuti containern:

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

  • Logga in!

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

  • För att utföra de ovanstĂ„ende stegen i en rad (eftersom vi kommer att köra flera tester), kan du göra följande:

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

  • Det fungerar! Åtminstone borde det. Nu tar du SecretID och försöker fĂ„ Ă„tkomst till nyckeln/vĂ€rdet som vi ska ha Ă„tkomst till.

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

  • Du kan avkoda "Value" base64 och se att det motsvarar vĂ€rdet i custom-ns/test_key i UI. Om du anvĂ€nde samma vĂ€rde som anges ovan i denna handbok, kommer ditt kodade vĂ€rde att vara IkknbSBpbiB0aGUgY3VzdG9tLW5zIGZvbGRlciEi.

Test av anvÀndarkonto för tjÀnsten:

  • Skapa ett anpassat ServiceAccount med följande kommando [lĂ€nk].

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

  • Skapa en ny konfigurationsfil för podden. Observera att jag inkluderade installationen av curl för att spara arbete 🙂

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

  • Efter detta, kör en shell inuti containern.

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

  • Logga in!

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

  • Åtkomst nekad. Oops, vi glömde att lĂ€gga till en ny regelbindning med motsvarande behörigheter, lĂ„t oss göra det nu.

Upprepa de tidigare stegen ovan:
a) Skapa en identisk policy för prefixet "custom-sa/".
b) Skapa en roll, kalla den "custom-sa-role"
c) Koppla policyn till rollen.

  • Skapa en regelbindning (kan endast göras via cli / api). Observera det andra vĂ€rdet för selektorflaggan.

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

  • Upprepa inloggningen frĂ„n containern "poc-ubuntu-custom-sa". Lyckat!
  • Kontrollera vĂ„r Ă„tkomst till den nyckfulla vĂ€gen custom-sa/.

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

  • Du kan ocksĂ„ sĂ€kerstĂ€lla att denna token inte ger Ă„tkomst till kv i "custom-ns/". Upprepa helt enkelt kommandot ovan efter att du har bytt ut "custom-sa" mot prefixet "custom-ns".
    Åtkomst nekad.

Exempel pÄ överlÀgg:

  • Det Ă€r vĂ€rt att notera att alla regelbindningar kommer att lĂ€ggas till token med dessa rĂ€ttigheter.
  • VĂ„r container "poc-ubuntu-custom-sa" finns i standardnamnomrĂ„det - lĂ„t oss anvĂ€nda den för en annan regelbindning.
  • Upprepa de tidigare stegen:
    a) Skapa en identisk policy för nyckelprefixet "default/".
    b) Skapa en roll, kalla den "default-ns-role"
    c) Koppla policyn till rollen.
  • Skapa en regelbindning (kan endast göras via 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"'

  • ÅtergĂ„ till vĂ„r container "poc-ubuntu-custom-sa" och försök fĂ„ Ă„tkomst till vĂ€gen "default/" kv.
  • Åtkomst nekad.
    Du kan se de angivna uppgifterna för varje token i UI under ACL > Tokens. Som du ser har vÄr nuvarande token endast en tillagd "custom-sa-role". Token som vi anvÀnder för tillfÀllet genererades nÀr vi loggade in, och dÄ fanns det bara en regelbindning som stÀmde. Vi behöver logga in igen och anvÀnda en ny token.
  • Se till att du kan lĂ€sa bĂ„de frĂ„n "custom-sa/" och "default/" kv.
    Lyckat!
    Detta beror pÄ att vÄr "poc-ubuntu-custom-sa" matchar regelbindningarna "custom-sa" och "default-ns".

Slutsats

TTL token hantering?

Vid tidpunkten för denna artikel finns det inget integrerat sÀtt att bestÀmma TTL för token som genererats med denna autentiseringsmetod. Det skulle vara en fantastisk möjlighet - att möjliggöra sÀker automatisering av autentisering i Consul.

Det finns möjlighet att manuellt skapa en token med TTL:

Jag hoppas att vi snart kan kontrollera hur tokens genereras (för varje regel eller autentiseringsmetod) och lÀgga till TTL.

Tills dess föreslÄs det att anvÀnda en utloggningsendpoint i sin logik.

LÀs Àven andra artiklar i vÄr blogg:

KĂ€lla: habr.com

Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar đŸ”„ Köp pĂ„litlig webbhotell med DDoS-skydd, VPS VDS-servrar | ProHoster