āĻŦāĻŋāĻāĻĻā§āĻ°āĻ. āĻ
āĻ¨ā§āĻŦāĻžāĻĻ:
āĻāĻŽāĻ°āĻž āĻāĻāĻāĻŋ Kubernetes āĻā§āĻ˛āĻžāĻ¸ā§āĻāĻžāĻ° āĻ¸ā§āĻ āĻāĻĒ āĻāĻ°ā§āĻāĻŋ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž Istio āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°ā§āĻāĻŋ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻŽāĻžāĻāĻā§āĻ°ā§āĻ¸āĻžāĻ°ā§āĻāĻŋāĻ¸ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨, āĻ¸ā§āĻ¨ā§āĻāĻŋāĻŽā§āĻ¨ā§āĻ āĻ ā§āĻ¯āĻžāĻ¨āĻžāĻ˛āĻžāĻāĻ¸āĻŋāĻ¸, Istio āĻāĻ° āĻā§āĻˇāĻŽāĻ¤āĻž āĻĒā§āĻ°āĻĻāĻ°ā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯āĨ¤
Istio āĻāĻ° āĻ¸āĻžāĻĨā§, āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻā§āĻ˛āĻŋāĻā§ āĻā§āĻ āĻ°āĻžāĻāĻ¤ā§ āĻ¸āĻā§āĻˇāĻŽ āĻšāĻ¯āĻŧā§āĻāĻŋ āĻāĻžāĻ°āĻŖ āĻ¤āĻžāĻĻā§āĻ° āĻĒā§āĻ¨āĻ°āĻžāĻ¯āĻŧ āĻā§āĻˇā§āĻāĻž, āĻāĻžāĻāĻŽāĻāĻāĻ, āĻ¸āĻžāĻ°ā§āĻāĻŋāĻ āĻŦā§āĻ°ā§āĻāĻžāĻ°, āĻā§āĻ°ā§āĻ¸āĻŋāĻ, āĻŽāĻ¨āĻŋāĻāĻ°āĻŋāĻ āĻāĻ° āĻŽāĻ¤ā§ āĻ¸ā§āĻ¤āĻ°āĻā§āĻ˛āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻā§ˇ āĻāĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻāĻŽāĻ°āĻž āĻāĻ¨ā§āĻ¨āĻ¤ āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻŦāĻ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨āĻžāĻ° āĻā§āĻļāĻ˛ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§āĻāĻŋ: A/B āĻā§āĻ¸ā§āĻāĻŋāĻ, āĻŽāĻŋāĻ°āĻ°āĻŋāĻ āĻāĻŦāĻ āĻā§āĻ¯āĻžāĻ¨āĻžāĻ°āĻŋ āĻ°ā§āĻ˛āĻāĻāĻāĨ¤
āĻ¨āĻ¤ā§āĻ¨ āĻāĻĒāĻžāĻĻāĻžāĻ¨ā§, āĻāĻŽāĻ°āĻž āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻ¯āĻŧāĻŋāĻ āĻŽā§āĻ˛ā§āĻ¯ā§āĻ° āĻĒāĻĨā§ āĻā§āĻĄāĻŧāĻžāĻ¨ā§āĻ¤ āĻ¸ā§āĻ¤āĻ°āĻā§āĻ˛āĻŋāĻ° āĻ¸āĻžāĻĨā§ āĻŽā§āĻāĻžāĻŦāĻŋāĻ˛āĻž āĻāĻ°āĻŦ: āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻāĻŦāĻ āĻ
āĻ¨ā§āĻŽā§āĻĻāĻ¨ - āĻāĻŦāĻ āĻāĻ¸ā§āĻāĻŋāĻāĻ¤ā§ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¸āĻ¤ā§āĻ¯āĻŋāĻāĻžāĻ°ā§āĻ° āĻāĻ¨āĻ¨ā§āĻĻ!
Istio āĻŽāĻ§ā§āĻ¯ā§ āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻāĻŦāĻ āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨
āĻāĻŽāĻŋ āĻāĻāĻ¨āĻ āĻŦāĻŋāĻļā§āĻŦāĻžāĻ¸ āĻāĻ°āĻ¤āĻžāĻŽ āĻ¨āĻž āĻ¯ā§ āĻāĻŽāĻŋ āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻāĻŦāĻ āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨ āĻĻā§āĻŦāĻžāĻ°āĻž āĻ āĻ¨ā§āĻĒā§āĻ°āĻžāĻŖāĻŋāĻ¤ āĻšāĻŦāĨ¤ āĻāĻ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻā§āĻ˛āĻŋāĻā§ āĻŽāĻāĻžāĻĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻāĻ°āĻ āĻŦā§āĻļāĻŋ āĻāĻ°ā§, āĻāĻĒāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻ¨ā§āĻĒā§āĻ°ā§āĻ°āĻŖāĻžāĻŽā§āĻ˛āĻ āĻāĻ°āĻ¤ā§ āĻĒā§āĻ°āĻ¯ā§āĻā§āĻ¤āĻŋāĻ° āĻĻā§āĻˇā§āĻāĻŋāĻā§āĻŖ āĻĨā§āĻā§ Istio āĻā§ āĻ āĻĢāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§?
āĻāĻ¤ā§āĻ¤āĻ°āĻāĻŋ āĻ¸āĻšāĻ: Istio āĻāĻ āĻā§āĻˇāĻŽāĻ¤āĻžāĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻĒāĻ¨āĻžāĻ° āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻā§āĻ˛āĻŋ āĻĨā§āĻā§ āĻĻā§āĻ¤ āĻĒā§āĻ°āĻā§āĻ¸āĻŋāĻ° āĻāĻžāĻā§ āĻĻāĻžāĻ¯āĻŧāĻŋāĻ¤ā§āĻŦ āĻ¸ā§āĻĨāĻžāĻ¨āĻžāĻ¨ā§āĻ¤āĻ° āĻāĻ°ā§ā§ˇ āĻ āĻ¨ā§āĻ°ā§āĻ§āĻā§āĻ˛āĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻā§āĻ˛āĻŋāĻ¤ā§ āĻĒā§āĻāĻāĻžāĻ¨ā§āĻ° āĻ¸āĻŽāĻ¯āĻŧ, āĻ¸ā§āĻā§āĻ˛āĻŋ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻā§āĻ¤ āĻāĻŦāĻ āĻ āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤ āĻšāĻ¯āĻŧā§āĻā§, āĻ¤āĻžāĻ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¯āĻž āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¤āĻž āĻšāĻ˛ āĻŦā§āĻ¯āĻŦāĻ¸āĻž-āĻāĻĒāĻ¯ā§āĻā§ āĻā§āĻĄ āĻ˛āĻŋāĻāĻ¤ā§ā§ˇ
āĻāĻžāĻ˛ āĻļā§āĻ¨āĻžāĻā§āĻā§? āĻāĻ° āĻāĻŋāĻ¤āĻ°ā§ āĻāĻāĻŦāĻžāĻ° āĻĻā§āĻā§ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ!
Auth0 āĻāĻ° āĻ¸āĻžāĻĨā§ āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ
āĻĒāĻ°āĻŋāĻāĻ¯āĻŧ āĻāĻŦāĻ āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻĒāĻ°āĻŋāĻāĻžāĻ˛āĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸āĻžāĻ°ā§āĻāĻžāĻ° āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻāĻŽāĻ°āĻž Auth0 āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦ, āĻ¯āĻžāĻ° āĻāĻāĻāĻŋ āĻā§āĻ°āĻžāĻ¯āĻŧāĻžāĻ˛ āĻ¸āĻāĻ¸ā§āĻāĻ°āĻŖ āĻ°āĻ¯āĻŧā§āĻā§, āĻāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ¸ā§āĻŦāĻā§āĻāĻžāĻ¤ āĻāĻŦāĻ āĻāĻŽāĻŋ āĻāĻāĻŋ āĻĒāĻāĻ¨ā§āĻĻ āĻāĻ°āĻŋāĨ¤ āĻ¯āĻžāĻāĻšā§āĻ, āĻāĻāĻ āĻ¨ā§āĻ¤āĻŋāĻā§āĻ˛āĻŋ āĻ
āĻ¨ā§āĻ¯ āĻ¯ā§ āĻā§āĻ¨āĻ āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§
āĻĒā§āĻ°āĻĨāĻŽ, āĻ¯āĻžāĻ¨
āĻĢāĻžāĻāĻ˛āĻāĻŋāĻ¤ā§ āĻāĻ āĻĄā§āĻŽā§āĻ¨āĻāĻŋ āĻāĻ˛ā§āĻ˛ā§āĻ āĻāĻ°ā§āĻ¨ resource-manifests/istio/security/auth-policy.yaml
(
apiVersion: authentication.istio.io/v1alpha1
kind: Policy
metadata:
name: auth-policy
spec:
targets:
- name: sa-web-app
- name: sa-feedback
origins:
- jwt:
issuer: "https://{YOUR_DOMAIN}/"
jwksUri: "https://{YOUR_DOMAIN}/.well-known/jwks.json"
principalBinding: USE_ORIGIN
āĻ¯ā§āĻŽāĻ¨ āĻāĻāĻāĻŋ āĻ¸āĻŽā§āĻĒāĻĻ āĻ¸āĻā§āĻā§, āĻĒāĻžāĻāĻ˛āĻ (Istio-āĻāĻ° āĻ¤āĻŋāĻ¨āĻāĻŋ āĻŽā§āĻ˛āĻŋāĻ āĻāĻ¨ā§āĻā§āĻ°ā§āĻ˛ āĻĒā§āĻ˛ā§āĻ¨ āĻāĻĒāĻžāĻĻāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻāĻāĻŋ - āĻĒā§āĻ°āĻžāĻ¯āĻŧ āĻ
āĻ¨ā§āĻŦāĻžāĻĻāĨ¤) āĻ
āĻ¨ā§āĻ°ā§āĻ§āĻā§āĻ˛āĻŋāĻā§ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻā§āĻ˛āĻŋāĻ¤ā§ āĻĢāĻ°ā§āĻ¯āĻŧāĻžāĻ°ā§āĻĄ āĻāĻ°āĻžāĻ° āĻāĻā§ āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĻā§āĻ¤āĻā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°ā§: sa-web-app
и sa-feedback
. āĻāĻāĻ āĻ¸āĻŽāĻ¯āĻŧā§, āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻĻā§āĻ¤āĻĻā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ āĻ¨āĻž sa-frontend
, āĻāĻŽāĻžāĻĻā§āĻ° āĻ
āĻĒā§āĻ°āĻŽāĻžāĻŖāĻŋāĻ¤ āĻĢā§āĻ°āĻ¨ā§āĻāĻāĻ¨ā§āĻĄ āĻā§āĻĄāĻŧā§ āĻ¯ā§āĻ¤ā§ āĻ
āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧ. āĻ¨ā§āĻ¤āĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻ¤ā§, āĻāĻŽāĻžāĻ¨ā§āĻĄāĻāĻŋ āĻāĻžāĻ˛āĻžāĻ¨:
$ kubectl apply -f resource-manifests/istio/security/auth-policy.yaml
policy.authentication.istio.io âauth-policyâ created
āĻĒā§āĻˇā§āĻ āĻžāĻ¯āĻŧ āĻĢāĻŋāĻ°ā§ āĻ¯āĻžāĻ¨ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻāĻ°ā§āĻ¨ - āĻāĻĒāĻ¨āĻŋ āĻĻā§āĻāĻ¤ā§ āĻĒāĻžāĻŦā§āĻ¨ āĻ¯ā§ āĻāĻāĻŋ āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻžāĻ¸ā§āĻ° āĻ¸āĻžāĻĨā§ āĻļā§āĻˇ āĻšāĻ¯āĻŧā§āĻā§ 401 āĻ āĻ¨āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤. āĻāĻāĻ¨ Auth0 āĻāĻ° āĻ¸āĻžāĻĨā§ āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĢā§āĻ°āĻ¨ā§āĻāĻāĻ¨ā§āĻĄ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻĒā§āĻ¨āĻ°ā§āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļ āĻāĻ°āĻž āĻ¯āĻžāĻāĨ¤
Auth0 āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻāĻ°āĻž āĻšāĻā§āĻā§
āĻļā§āĻˇ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ āĻ¨ā§āĻ°ā§āĻ§āĻā§āĻ˛āĻŋāĻā§ āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻāĻ°āĻ¤ā§, āĻāĻĒāĻ¨āĻžāĻā§ Auth0-āĻ āĻāĻāĻāĻŋ API āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ āĻ¯āĻž āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻā§āĻ¤ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻā§āĻ˛āĻŋ (āĻ°āĻŋāĻāĻŋāĻ, āĻŦāĻŋāĻļāĻĻ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻāĻŦāĻ āĻ°ā§āĻāĻŋāĻ) āĻĒā§āĻ°āĻ¤āĻŋāĻ¨āĻŋāĻ§āĻŋāĻ¤ā§āĻŦ āĻāĻ°āĻŦā§ā§ˇ āĻāĻāĻāĻŋ API āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§, āĻ¯āĻžāĻ¨ Auth0 āĻĒā§āĻ°ā§āĻāĻžāĻ˛ > APIs > API āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻĢāĻ°ā§āĻŽāĻāĻŋ āĻĒā§āĻ°āĻŖ āĻāĻ°ā§āĻ¨:
āĻāĻāĻžāĻ¨ā§ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻ¤āĻĨā§āĻ¯ āĻ¸āĻ¨āĻžāĻā§āĻ¤ āĻāĻ°āĻž, āĻ¯āĻž āĻāĻŽāĻ°āĻž āĻĒāĻ°ā§ āĻ¸ā§āĻā§āĻ°āĻŋāĻĒā§āĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦāĨ¤ āĻāĻ¸ā§āĻ¨ āĻāĻāĻŋ āĻāĻāĻžāĻŦā§ āĻ˛āĻŋāĻāĻŋ:
- āĻĒāĻžāĻ āĻāĻŦāĻ°ā§āĻ: {Your_AUDIENCE}
āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻ āĻŦāĻļāĻŋāĻˇā§āĻ āĻŦāĻŋāĻŦāĻ°āĻŖ āĻŦāĻŋāĻāĻžāĻāĻāĻŋāĻ° Auth0 āĻĒā§āĻ°ā§āĻāĻžāĻ˛ā§ āĻ āĻŦāĻ¸ā§āĻĨāĻŋāĻ¤ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ - āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§āĻ¨ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻŦā§āĻĻāĻ¨ (āĻāĻĒāĻŋāĻāĻ āĻ¸āĻš āĻ¸ā§āĻŦāĻ¯āĻŧāĻāĻā§āĻ°āĻŋāĻ¯āĻŧāĻāĻžāĻŦā§ āĻ¤ā§āĻ°āĻŋ)āĨ¤
āĻāĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻ˛āĻŋāĻāĻŦ:
- āĻĄā§āĻŽā§āĻāĻ¨: {YOUR_DOMAIN}
- āĻā§āĻ˛āĻžāĻ¯āĻŧā§āĻ¨ā§āĻ āĻāĻāĻĄāĻŋ: {YOUR_CLIENT_ID}
āĻ¸ā§āĻā§āĻ°ā§āĻ˛ āĻāĻ°ā§āĻ¨ āĻĒāĻ°ā§āĻā§āĻˇāĻžāĻ° āĻāĻŦā§āĻĻāĻ¨ āĻā§āĻā§āĻ¸āĻ āĻĢāĻŋāĻ˛ā§āĻĄā§ āĻ āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤ āĻāĻ˛āĻŦā§āĻ¯āĻžāĻ āĻāĻāĻāĻ°āĻāĻ˛ (āĻāĻ˛āĻŦā§āĻ¯āĻžāĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¸āĻŽāĻžāĻ§āĻžāĻ¨ āĻāĻ°āĻž āĻāĻāĻāĻ°āĻāĻ˛), āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻŽāĻ°āĻž āĻāĻāĻāĻ°āĻāĻ˛ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°āĻŋ āĻ¯ā§āĻāĻžāĻ¨ā§ āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻ¸āĻŽā§āĻĒā§āĻ°ā§āĻŖ āĻšāĻāĻ¯āĻŧāĻžāĻ° āĻĒāĻ°ā§ āĻāĻ˛ āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻšāĻŦā§āĨ¤ āĻāĻŽāĻžāĻĻā§āĻ° āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻāĻāĻŋ āĻšāĻ˛:
http://{EXTERNAL_IP}/callback
āĻāĻŦāĻ āĻāĻ¨ā§āĻ¯ āĻ āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤ āĻ˛āĻāĻāĻāĻ URLs (āĻ˛āĻ āĻāĻāĻ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤ URL) āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨:
http://{EXTERNAL_IP}/logout
āĻāĻ° āĻĢā§āĻ°āĻ¨ā§āĻāĻāĻ¨ā§āĻĄ āĻāĻāĻŋāĻ¯āĻŧā§ āĻāĻ˛ā§āĻ¨.
āĻĢā§āĻ°āĻ¨ā§āĻāĻāĻ¨ā§āĻĄ āĻāĻĒāĻĄā§āĻ
āĻļāĻžāĻāĻžāĻ¯āĻŧ āĻ¸ā§āĻ¯ā§āĻāĻ āĻāĻ°ā§āĻ¨ auth0
āĻāĻžāĻ¨ā§āĻĄāĻžāĻ° [istio-mastery]
. āĻāĻ āĻļāĻžāĻāĻžāĻ¯āĻŧ, āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖā§āĻ° āĻāĻ¨ā§āĻ¯ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° Auth0 āĻ āĻĒā§āĻ¨āĻāĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻāĻŦāĻ āĻ
āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ¯ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ° āĻ
āĻ¨ā§āĻ°ā§āĻ§ā§ JWT āĻā§āĻā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĢā§āĻ°āĻ¨ā§āĻāĻāĻ¨ā§āĻĄ āĻā§āĻĄ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§āĻāĻŋ āĻ¨āĻŋāĻŽā§āĻ¨āĻ°ā§āĻĒ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧ (
analyzeSentence() {
fetch('/sentiment', {
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${auth.getAccessToken()}` // Access Token
},
body: JSON.stringify({ sentence: this.textField.getValue() })
})
.then(response => response.json())
.then(data => this.setState(data));
}
Auth0 āĻ āĻā§āĻ¨ā§āĻ¯āĻžāĻ¨ā§āĻ āĻĄā§āĻāĻž āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻĢā§āĻ°āĻ¨ā§āĻāĻāĻ¨ā§āĻĄ āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨ āĻāĻ°āĻ¤ā§, āĻā§āĻ˛ā§āĻ¨ sa-frontend/src/services/Auth.js
āĻāĻŦāĻ āĻāĻāĻŋāĻ¤ā§ āĻāĻŽāĻ°āĻž āĻāĻĒāĻ°ā§ āĻ¯ā§ āĻŽāĻžāĻ¨āĻā§āĻ˛āĻŋ āĻ˛āĻŋāĻā§āĻāĻŋ āĻ¤āĻž āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°ā§āĻ¨ (
const Config = {
clientID: '{YOUR_CLIENT_ID}',
domain:'{YOUR_DOMAIN}',
audience: '{YOUR_AUDIENCE}',
ingressIP: '{EXTERNAL_IP}' // ĐŅĐŋĐžĐģŅСŅĐĩŅŅŅ Đ´ĐģŅ ŅĐĩдиŅĐĩĐēŅĐ° ĐŋĐžŅĐģĐĩ Đ°ŅŅĐĩĐŊŅиŅиĐēĐ°Ņии
}
āĻāĻŦā§āĻĻāĻ¨ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤. āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻ¨āĻā§āĻ˛āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻŦāĻ āĻ¸ā§āĻĨāĻžāĻĒāĻ¨ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¨ā§āĻā§āĻ° āĻāĻŽāĻžāĻ¨ā§āĻĄāĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻĒāĻ¨āĻžāĻ° āĻĄāĻāĻžāĻ° āĻāĻāĻĄāĻŋ āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻāĻ°ā§āĻ¨:
$ docker build -f sa-frontend/Dockerfile
-t $DOCKER_USER_ID/sentiment-analysis-frontend:istio-auth0
sa-frontend
$ docker push $DOCKER_USER_ID/sentiment-analysis-frontend:istio-auth0
$ kubectl set image deployment/sa-frontend
sa-frontend=$DOCKER_USER_ID/sentiment-analysis-frontend:istio-auth0
āĻ ā§āĻ¯āĻžāĻĒāĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻĻā§āĻā§āĻ¨! āĻāĻĒāĻ¨āĻžāĻā§ Auth0 āĻ āĻĒā§āĻ¨āĻāĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻŋāĻ¤ āĻāĻ°āĻž āĻšāĻŦā§, āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻ˛āĻ āĻāĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§ (āĻŦāĻž āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻ¨ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§), āĻāĻ° āĻĒāĻ°ā§ āĻāĻĒāĻ¨āĻžāĻā§ āĻ¸ā§āĻ āĻĒā§āĻˇā§āĻ āĻžāĻ¯āĻŧ āĻĢā§āĻ°āĻ¤ āĻĒāĻžāĻ āĻžāĻ¨ā§ āĻšāĻŦā§ āĻ¯ā§āĻāĻžāĻ¨ āĻĨā§āĻā§ āĻāĻ¤āĻŋāĻŽāĻ§ā§āĻ¯ā§āĻ āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻā§āĻ¤ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻāĻ°āĻž āĻšāĻŦā§āĨ¤ āĻāĻĒāĻ¨āĻŋ āĻ¯āĻĻāĻŋ āĻāĻžāĻ°ā§āĻ˛ āĻĻāĻŋāĻ¯āĻŧā§ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§āĻ° āĻĒā§āĻ°āĻĨāĻŽ āĻ āĻāĻļā§ āĻāĻ˛ā§āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻŽāĻžāĻ¨ā§āĻĄāĻā§āĻ˛āĻŋ āĻā§āĻˇā§āĻāĻž āĻāĻ°ā§āĻ¨ āĻ¤āĻŦā§ āĻāĻĒāĻ¨āĻŋ āĻā§āĻĄāĻāĻŋ āĻĒāĻžāĻŦā§āĻ¨ 401 āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻžāĻ¸ āĻā§āĻĄ, āĻ¸āĻāĻā§āĻ¤ āĻ¯ā§ āĻ āĻ¨ā§āĻ°ā§āĻ§ āĻ āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤ āĻ¨āĻ¯āĻŧ.
āĻāĻ° āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻĒāĻĻāĻā§āĻˇā§āĻĒ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻ¯āĻžāĻ - āĻ āĻ¨ā§āĻ°ā§āĻ§āĻā§āĻ˛āĻŋ āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨ āĻāĻ°ā§āĻ¨ā§ˇ
Auth0 āĻāĻ° āĻ¸āĻžāĻĨā§ āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨
āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻāĻŽāĻžāĻĻā§āĻ° āĻŦā§āĻāĻ¤ā§ āĻĻā§āĻ¯āĻŧ āĻ¯ā§ āĻāĻāĻāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻā§, āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻ¤āĻžāĻĻā§āĻ° āĻā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻā§ āĻ¤āĻž āĻāĻžāĻ¨āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨ā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨āĨ¤ Istio āĻāĻ° āĻāĻ¨ā§āĻ¯āĻ āĻā§āĻ˛ āĻ āĻĢāĻžāĻ° āĻāĻ°ā§āĨ¤
āĻāĻāĻāĻŋ āĻāĻĻāĻžāĻšāĻ°āĻŖ āĻšāĻŋāĻ¸āĻžāĻŦā§, āĻāĻ¸ā§āĻ¨ āĻĻā§āĻāĻŋ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻā§āĻ°ā§āĻĒ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻŋ (āĻ¨ā§āĻā§āĻ° āĻāĻŋāĻ¤ā§āĻ°āĻāĻŋ āĻĻā§āĻā§āĻ¨):
- āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° (āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§) â āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° SA-WebApp āĻāĻŦāĻ SA-Frontend āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻā§āĻ˛āĻŋāĻ¤ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ¸āĻš;
- āĻŽāĻĄāĻžāĻ°ā§āĻāĻ° (āĻŽāĻĄāĻžāĻ°ā§āĻāĻ°) - āĻ¤āĻŋāĻ¨āĻāĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ° āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ¸āĻšāĨ¤
āĻ
āĻ¨ā§āĻŽā§āĻĻāĻ¨ā§āĻ° āĻ§āĻžāĻ°āĻŖāĻž
āĻāĻ āĻā§āĻˇā§āĻ ā§āĻā§āĻ˛āĻŋ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§, āĻāĻŽāĻ°āĻž Auth0 āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦ āĻāĻŦāĻ āĻ¤āĻžāĻĻā§āĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸ā§āĻ¤āĻ°ā§āĻ° āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°āĻ¤ā§ Istio āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦāĨ¤
Auth0 āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨ā§āĻ° āĻāĻ¨āĻ¸ā§āĻāĻ˛ā§āĻļāĻ¨ āĻāĻŦāĻ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨
Auth0 āĻĒā§āĻ°ā§āĻāĻžāĻ˛ā§, āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ā§ āĻ¯āĻžāĻ¨ (āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻžāĻ¨āĻā§āĻ˛āĻŋ) āĻāĻŦāĻ āĻāĻ¨āĻ¸ā§āĻāĻ˛ āĻāĻ°ā§āĻ¨ Auth0 āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨. āĻāĻ¨āĻ¸ā§āĻāĻ˛ā§āĻļāĻ¨ā§āĻ° āĻĒāĻ°ā§, āĻ¯āĻžāĻ¨ āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨, āĻāĻŦāĻ āĻ¸ā§āĻāĻžāĻ¨ā§ - āĻāĻĒāĻ°ā§āĻ° āĻĄāĻžāĻ¨āĻĻāĻŋāĻā§ āĻā§āĻ˛āĻŋāĻ āĻāĻ°ā§ āĻāĻŦāĻ āĻāĻĒāĻ¯ā§āĻā§āĻ¤ āĻŽā§āĻ¨ā§ āĻŦāĻŋāĻāĻ˛ā§āĻĒāĻāĻŋ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§ āĻāĻžāĻĄāĻŧāĻžāĻā§āĻĻā§āĻ° āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ā§ (āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨). āĻā§āĻ°ā§āĻĒ āĻ¸āĻā§āĻ°āĻŋāĻ¯āĻŧ āĻāĻ°ā§āĻ¨ (āĻā§āĻˇā§āĻ ā§) āĻāĻŦāĻ āĻĒā§āĻ°āĻāĻžāĻļ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻŦā§āĻ¤āĻžāĻŽā§ āĻā§āĻ˛āĻŋāĻ āĻāĻ°ā§āĻ¨ (āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻĒā§āĻ°āĻāĻžāĻļ āĻāĻ°ā§āĻ¨).
āĻā§āĻ°ā§āĻĒ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž
āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ā§ āĻ¯āĻžāĻ¨ āĻā§āĻ°ā§āĻĒ āĻāĻŦāĻ āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻĒ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ āĻŽāĻĄāĻžāĻ°ā§āĻāĻ°. āĻ¯ā§āĻšā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻā§āĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻā§ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻŦāĻŋāĻŦā§āĻāĻ¨āĻž āĻāĻ°āĻŦ, āĻ¤āĻžāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ āĻ¤āĻŋāĻ°āĻŋāĻā§āĻ¤ āĻā§āĻ°ā§āĻĒ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻ¨ā§āĻāĨ¤
āĻāĻāĻāĻŋ āĻā§āĻ°ā§āĻĒ āĻāĻ¯āĻŧāĻ¨ āĻāĻ°ā§āĻ¨ āĻŽāĻĄāĻžāĻ°ā§āĻāĻ°, āĻĒā§āĻ°ā§āĻ¸ āĻ¸āĻĻāĻ¸ā§āĻ¯āĻĻā§āĻ° āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨, āĻāĻĒāĻ¨āĻžāĻ° āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻ ā§āĻ¯āĻžāĻāĻžāĻāĻ¨ā§āĻ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨āĨ¤ āĻāĻŋāĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ āĻ¸ā§āĻŦā§āĻāĻžāĻ° āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§ āĻ¤āĻž āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻā§āĻ¨ā§ āĻā§āĻˇā§āĻ ā§ āĻāĻžāĻĄāĻŧāĻžāĻ āĻā§āĻĄāĻŧā§ āĻĻāĻŋāĻ¨āĨ¤ (āĻāĻ° āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ āĻŽā§āĻ¯āĻžāĻ¨ā§āĻ¯āĻŧāĻžāĻ˛āĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻž āĻ¯ā§āĻ¤ā§ āĻĒāĻžāĻ°ā§ Auth0 āĻĒā§āĻ°ā§āĻāĻžāĻ˛ > āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ > āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨.)
āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻā§āĻā§āĻ¨ā§ āĻā§āĻ°ā§āĻĒ āĻĻāĻžāĻŦāĻŋ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨
āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻā§āĻ°ā§āĻĒā§ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧā§āĻā§, āĻ¤āĻŦā§ āĻāĻ āĻ¤āĻĨā§āĻ¯āĻāĻŋ āĻ
āĻŦāĻļā§āĻ¯āĻ āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻā§āĻā§āĻ¨āĻā§āĻ˛āĻŋāĻ¤ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻĢāĻ˛āĻŋāĻ¤ āĻšāĻ¤ā§ āĻšāĻŦā§āĨ¤ OpenID āĻāĻžāĻ¨ā§āĻā§āĻ āĻŽā§āĻ¨ā§ āĻāĻ˛āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŦāĻ āĻāĻāĻ āĻ¸āĻžāĻĨā§ āĻāĻŽāĻžāĻĻā§āĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ āĻā§āĻˇā§āĻ ā§āĻā§āĻ˛āĻŋāĻā§ āĻĢā§āĻ°āĻ¤ āĻĻāĻŋāĻ¤ā§, āĻā§āĻā§āĻ¨āĻāĻŋāĻā§ āĻ¤āĻžāĻ° āĻ¨āĻŋāĻāĻ¸ā§āĻŦ āĻ¯ā§āĻ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§
āĻāĻāĻāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ¤ā§āĻ°āĻŋ āĻāĻ°āĻ¤ā§, Auth0 āĻĒā§āĻ°ā§āĻāĻžāĻ˛ā§ āĻ¯āĻžāĻ¨ āĻŦāĻŋāĻ§āĻŋ, āĻĒā§āĻ°ā§āĻ¸ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ¤ā§āĻ°āĻŋ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻā§āĻŽāĻĒā§āĻ˛ā§āĻ āĻĨā§āĻā§ āĻāĻāĻāĻŋ āĻāĻžāĻ˛āĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ¨āĻŋāĻ°ā§āĻŦāĻžāĻāĻ¨ āĻāĻ°ā§āĻ¨āĨ¤
āĻ¨ā§āĻā§āĻ° āĻā§āĻĄāĻāĻŋ āĻ
āĻ¨ā§āĻ˛āĻŋāĻĒāĻŋ āĻāĻ°ā§āĻ¨ āĻāĻŦāĻ āĻāĻāĻŋ āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¸āĻāĻ°āĻā§āĻˇāĻŖ āĻāĻ°ā§āĻ¨ āĻā§āĻ°ā§āĻĒ āĻĻāĻžāĻŦāĻŋ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨ (
function (user, context, callback) {
context.accessToken['https://sa.io/group'] = user.groups[0];
return callback(null, user, context);
}
āĻŽāĻ¨ā§āĻ¤āĻŦā§āĻ¯: āĻāĻ āĻā§āĻĄāĻāĻŋ āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨ āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ā§ āĻ¸āĻāĻā§āĻāĻžāĻ¯āĻŧāĻŋāĻ¤ āĻĒā§āĻ°āĻĨāĻŽ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻā§āĻˇā§āĻ ā§āĻāĻŋ āĻ¨ā§āĻ¯āĻŧ āĻāĻŦāĻ āĻāĻāĻŋāĻā§ āĻāĻāĻāĻŋ āĻāĻžāĻ¸ā§āĻāĻŽ āĻĻāĻžāĻŦāĻŋ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻā§āĻā§āĻ¨ā§ āĻ¯ā§āĻā§āĻ¤ āĻāĻ°ā§ (āĻāĻ° āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨ā§āĻ° āĻ āĻ§ā§āĻ¨ā§, Auth0 āĻĻā§āĻŦāĻžāĻ°āĻž āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧ)āĨ¤
āĻĒā§āĻˇā§āĻ āĻžāĻ¯āĻŧ āĻĢāĻŋāĻ°ā§ āĻ¯āĻžāĻ¨ āĻŦāĻŋāĻ§āĻŋ āĻāĻŦāĻ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻā§āĻ°āĻŽā§ āĻāĻĒāĻ¨āĻžāĻ° āĻĻā§āĻāĻŋ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻ˛ā§āĻāĻž āĻāĻā§ āĻāĻŋāĻ¨āĻž āĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°ā§āĻ¨:
- auth0-āĻ āĻĨā§āĻ°āĻžāĻāĻā§āĻļāĻ¨-āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨
- āĻā§āĻ°ā§āĻĒ āĻĻāĻžāĻŦāĻŋ āĻ¯ā§āĻ āĻāĻ°ā§āĻ¨
āĻ āĻ°ā§āĻĄāĻžāĻ°āĻāĻŋ āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻāĻžāĻ°āĻŖ āĻā§āĻ°ā§āĻĒ āĻĢāĻŋāĻ˛ā§āĻĄ āĻ ā§āĻ¯āĻžāĻ¸āĻŋāĻā§āĻā§āĻ°ā§āĻ¨āĻžāĻ¸āĻāĻžāĻŦā§ āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻāĻŋ āĻā§āĻ°āĻšāĻŖ āĻāĻ°ā§ auth0-āĻ āĻĨā§āĻ°āĻžāĻāĻā§āĻļāĻ¨-āĻāĻā§āĻ¸āĻā§āĻ¨āĻļāĻ¨ āĻāĻŦāĻ āĻ¤āĻžāĻ° āĻĒāĻ°ā§ āĻāĻāĻŋ āĻĻā§āĻŦāĻŋāĻ¤ā§āĻ¯āĻŧ āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻĻā§āĻŦāĻžāĻ°āĻž āĻāĻāĻāĻŋ āĻĻāĻžāĻŦāĻŋ āĻšāĻŋāĻ¸āĻžāĻŦā§ āĻ¯ā§āĻ āĻāĻ°āĻž āĻšāĻ¯āĻŧāĨ¤ āĻĢāĻ˛āĻžāĻĢāĻ˛ āĻāĻ āĻŽāĻ¤ āĻāĻāĻāĻŋ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻā§āĻā§āĻ¨:
{
"https://sa.io/group": "Moderators",
"iss": "https://sentiment-analysis.eu.auth0.com/",
"sub": "google-oauth2|196405271625531691872"
// [ŅĐžĐēŅĐ°ŅĐĩĐŊĐž Đ´ĐģŅ ĐŊĐ°ĐŗĐģŅĐ´ĐŊĐžŅŅи]
}
āĻāĻāĻ¨ āĻāĻĒāĻ¨āĻžāĻā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻā§āĻ āĻāĻ°āĻ¤ā§ āĻāĻ¨āĻāĻ¯āĻŧ āĻĒā§āĻ°āĻā§āĻ¸āĻŋ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ° āĻāĻ°āĻ¤ā§ āĻšāĻŦā§, āĻ¯āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻā§āĻ°ā§āĻĒāĻāĻŋ āĻĻāĻžāĻŦāĻŋ āĻĨā§āĻā§ āĻā§āĻ¨ā§ āĻ¨ā§āĻāĻ¯āĻŧāĻž āĻšāĻŦā§ (https://sa.io/group
) āĻĢāĻŋāĻ°ā§ āĻāĻ¸āĻž āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻā§āĻā§āĻ¨ā§āĨ¤ āĻāĻ āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§ā§āĻ° āĻĒāĻ°āĻŦāĻ°ā§āĻ¤ā§ āĻ
āĻ§ā§āĻ¯āĻžāĻ¯āĻŧ āĻāĻ¨ā§āĻ¯ āĻŦāĻŋāĻˇāĻ¯āĻŧ.
āĻāĻ¸ā§āĻāĻŋāĻāĻ¤ā§ āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨
āĻāĻžāĻ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻĒāĻ¨āĻžāĻā§ āĻ āĻŦāĻļā§āĻ¯āĻ Istio-āĻāĻ° āĻāĻ¨ā§āĻ¯ RBAC āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻšāĻŦā§āĨ¤ āĻāĻāĻŋ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°āĻŦ:
apiVersion: "rbac.istio.io/v1alpha1"
kind: RbacConfig
metadata:
name: default
spec:
mode: 'ON_WITH_INCLUSION' # 1
inclusion:
services: # 2
- "sa-frontend.default.svc.cluster.local"
- "sa-web-app.default.svc.cluster.local"
- "sa-feedback.default.svc.cluster.local"
āĻŦā§āĻ¯āĻžāĻā§āĻ¯āĻž:
- 1 â āĻā§āĻˇā§āĻ¤ā§āĻ°ā§ āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻā§āĻā§āĻ¤ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻāĻŦāĻ āĻ¨āĻžāĻŽāĻ¸ā§āĻĨāĻžāĻ¨āĻā§āĻ˛āĻŋāĻ° āĻāĻ¨ā§āĻ¯ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° RBAC āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°ā§āĻ¨ā§ˇ
Inclusion
; - 2 â āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻā§āĻ˛āĻŋāĻ° āĻāĻāĻāĻŋ āĻ¤āĻžāĻ˛āĻŋāĻāĻž āĻ¤āĻžāĻ˛āĻŋāĻāĻžāĻā§āĻā§āĻ¤ āĻāĻ°āĻŋāĨ¤
āĻāĻ¸ā§āĻ¨ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ āĻāĻŽāĻžāĻ¨ā§āĻĄā§āĻ° āĻ¸āĻžāĻĨā§ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻŋ:
$ kubectl apply -f resource-manifests/istio/security/enable-rbac.yaml
rbacconfig.rbac.istio.io/default created
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻ¨ āĻā§āĻŽāĻŋāĻāĻž-āĻāĻŋāĻ¤ā§āĻ¤āĻŋāĻ āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§ˇ āĻ
āĻ¨ā§āĻ¯ āĻāĻĨāĻžāĻ¯āĻŧ, āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻā§āĻ˛āĻŋāĻ¤ā§ āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ¨āĻŋāĻˇāĻŋāĻĻā§āĻ§ āĻāĻŦāĻ āĻāĻ° āĻĢāĻ˛ā§ āĻĒā§āĻ°āĻ¤āĻŋāĻā§āĻ°āĻŋāĻ¯āĻŧāĻž āĻšāĻŦā§ā§ˇ RBAC: access denied
. āĻāĻāĻ¨ āĻāĻ¸ā§āĻ¨ āĻ
āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ā§āĻ° āĻ
āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻāĻŋāĻ¨āĨ¤
āĻ¨āĻŋāĻ¯āĻŧāĻŽāĻŋāĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻ āĻŦāĻļā§āĻ¯āĻ SA-Frontend āĻāĻŦāĻ SA-WebApp āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻā§āĻ˛āĻŋāĻ¤ā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻĨāĻžāĻāĻ¤ā§ āĻšāĻŦā§ā§ˇ āĻ¨āĻŋāĻŽā§āĻ¨āĻ˛āĻŋāĻāĻŋāĻ¤ Istio āĻ¸āĻŽā§āĻĒāĻĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ° āĻāĻ°ā§ āĻŦāĻžāĻ¸ā§āĻ¤āĻŦāĻžāĻ¯āĻŧāĻŋāĻ¤:
- āĻ¸āĻžāĻ°ā§āĻāĻŋāĻ¸ āĻ°ā§āĻ˛ - āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ āĻ§āĻŋāĻāĻžāĻ° āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§;
- ServiceRoleBinding â āĻāĻ ServiceRole āĻāĻžāĻ° āĻ āĻ¨ā§āĻ¤āĻ°ā§āĻāĻ¤ āĻ¤āĻž āĻ¨āĻŋāĻ°ā§āĻ§āĻžāĻ°āĻŖ āĻāĻ°ā§ā§ˇ
āĻ¸āĻžāĻ§āĻžāĻ°āĻŖ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻŽāĻ°āĻž āĻ¨āĻŋāĻ°ā§āĻĻāĻŋāĻˇā§āĻ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻā§āĻ˛āĻŋāĻ¤ā§ āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ā§āĻ° āĻ
āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻŦ (
apiVersion: "rbac.istio.io/v1alpha1"
kind: ServiceRole
metadata:
name: regular-user
namespace: default
spec:
rules:
- services:
- "sa-frontend.default.svc.cluster.local"
- "sa-web-app.default.svc.cluster.local"
paths: ["*"]
methods: ["*"]
āĻāĻŦāĻ āĻŽāĻžāĻ§ā§āĻ¯āĻŽā§ regular-user-binding
āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒā§āĻˇā§āĻ āĻž āĻĻāĻ°ā§āĻļāĻāĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ ServiceRole āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°ā§āĻ¨ (
apiVersion: "rbac.istio.io/v1alpha1"
kind: ServiceRoleBinding
metadata:
name: regular-user-binding
namespace: default
spec:
subjects:
- user: "*"
roleRef:
kind: ServiceRole
name: "regular-user"
"āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§" āĻŽāĻžāĻ¨ā§ āĻāĻŋ āĻ āĻ¨āĻ¨ā§āĻŽā§āĻĻāĻŋāĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ°āĻ SA WebApp-āĻ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻĨāĻžāĻāĻŦā§? āĻ¨āĻž, āĻ¨ā§āĻ¤āĻŋ JWT āĻā§āĻā§āĻ¨ā§āĻ° āĻŦā§āĻ§āĻ¤āĻž āĻĒāĻ°ā§āĻā§āĻˇāĻž āĻāĻ°āĻŦā§āĨ¤
āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻ¯āĻžāĻ:
$ kubectl apply -f resource-manifests/istio/security/user-role.yaml
servicerole.rbac.istio.io/regular-user created
servicerolebinding.rbac.istio.io/regular-user-binding created
āĻŽāĻĄāĻžāĻ°ā§āĻāĻ°āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨
āĻŽāĻĄāĻžāĻ°ā§āĻāĻ°āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯, āĻāĻŽāĻ°āĻž āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻā§āĻ˛āĻŋāĻ¤ā§ āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻ¸āĻā§āĻˇāĻŽ āĻāĻ°āĻ¤ā§ āĻāĻžāĻ (
apiVersion: "rbac.istio.io/v1alpha1"
kind: ServiceRole
metadata:
name: mod-user
namespace: default
spec:
rules:
- services: ["*"]
paths: ["*"]
methods: ["*"]
āĻāĻŋāĻ¨ā§āĻ¤ā§ āĻāĻŽāĻ°āĻž āĻāĻ āĻ§āĻ°āĻ¨ā§āĻ° āĻ
āĻ§āĻŋāĻāĻžāĻ° āĻāĻžāĻ āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¸ā§āĻ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻĻā§āĻ° āĻāĻ¨ā§āĻ¯ āĻ¯āĻžāĻĻā§āĻ° āĻ
ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ āĻā§āĻā§āĻ¨ā§ āĻĻāĻžāĻŦāĻŋ āĻ°āĻ¯āĻŧā§āĻā§ https://sa.io/group
āĻ
āĻ°ā§āĻĨ āĻ¸āĻš Moderators
(
apiVersion: "rbac.istio.io/v1alpha1"
kind: ServiceRoleBinding
metadata:
name: mod-user-binding
namespace: default
spec:
subjects:
- properties:
request.auth.claims[https://sa.io/group]: "Moderators"
roleRef:
kind: ServiceRole
name: "mod-user"
āĻāĻ¨āĻĢāĻŋāĻāĻžāĻ°ā§āĻļāĻ¨ āĻĒā§āĻ°āĻ¯āĻŧā§āĻ āĻāĻ°āĻž āĻ¯āĻžāĻ:
$ kubectl apply -f resource-manifests/istio/security/mod-role.yaml
servicerole.rbac.istio.io/mod-user created
servicerolebinding.rbac.istio.io/mod-user-binding created
āĻĻā§āĻ¤āĻĻā§āĻ° āĻā§āĻ¯āĻžāĻļā§ āĻāĻ°āĻžāĻ° āĻāĻžāĻ°āĻŖā§, āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨ā§āĻ° āĻ¨āĻŋāĻ¯āĻŧāĻŽ āĻāĻžāĻ°ā§āĻ¯āĻāĻ° āĻšāĻ¤ā§ āĻāĻ¯āĻŧā§āĻ āĻŽāĻŋāĻ¨āĻŋāĻ āĻ¸āĻŽāĻ¯āĻŧ āĻ˛āĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§āĨ¤ āĻ¤āĻžāĻ°āĻĒāĻ° āĻāĻĒāĻ¨āĻŋ āĻ¨āĻŋāĻļā§āĻāĻŋāĻ¤ āĻāĻ°āĻ¤ā§ āĻĒāĻžāĻ°ā§āĻ¨ āĻ¯ā§ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§ āĻāĻŦāĻ āĻŽāĻĄāĻžāĻ°ā§āĻāĻ°āĻĻā§āĻ° āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ā§āĻ° āĻŦāĻŋāĻāĻŋāĻ¨ā§āĻ¨ āĻ¸ā§āĻ¤āĻ° āĻ°āĻ¯āĻŧā§āĻā§ā§ˇ
āĻāĻ āĻ āĻāĻļā§ āĻāĻĒāĻ¸āĻāĻšāĻžāĻ°
āĻ¸āĻŋāĻ°āĻŋāĻ¯āĻŧāĻžāĻ¸āĻ˛āĻŋ āĻ¯āĻĻāĻŋāĻ, āĻāĻĒāĻ¨āĻŋ āĻāĻŋ āĻāĻāĻ¨āĻ āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻāĻŦāĻ āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻāĻāĻāĻŋ āĻ¸āĻšāĻ, āĻ āĻ¨āĻžāĻ¯āĻŧāĻžāĻ¸, āĻŽāĻžāĻĒāĻ¯ā§āĻā§āĻ¯ āĻāĻŦāĻ āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ āĻĒāĻĻā§āĻ§āĻ¤āĻŋ āĻĻā§āĻā§āĻā§āĻ¨?
āĻļā§āĻ§ā§āĻŽāĻžāĻ¤ā§āĻ° āĻ¤āĻŋāĻ¨āĻāĻŋ āĻāĻ¸ā§āĻāĻŋāĻ āĻ°āĻŋāĻ¸ā§āĻ°ā§āĻ¸ (RbacConfig, ServiceRole, āĻāĻŦāĻ ServiceRoleBinding) āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻā§āĻ˛āĻŋāĻ¤ā§ āĻļā§āĻˇ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻāĻžāĻ°ā§āĻ° āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸ā§āĻ° āĻĒā§āĻ°āĻŽāĻžāĻŖā§āĻāĻ°āĻŖ āĻāĻŦāĻ āĻ āĻ¨ā§āĻŽā§āĻĻāĻ¨ā§āĻ° āĻāĻĒāĻ° āĻ¸ā§āĻā§āĻˇā§āĻŽ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ āĻ āĻ°ā§āĻāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ āĻāĻŋāĻ˛āĨ¤
āĻāĻĒāĻ°āĻ¨ā§āĻ¤ā§, āĻāĻŽāĻ°āĻž āĻāĻŽāĻžāĻĻā§āĻ° āĻĻā§āĻ¤ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻā§āĻ˛āĻŋāĻ° āĻŽāĻ§ā§āĻ¯ā§ āĻāĻ āĻŦāĻŋāĻˇāĻ¯āĻŧāĻā§āĻ˛āĻŋāĻ° āĻ¯āĻ¤ā§āĻ¨ āĻ¨āĻŋāĻ¯āĻŧā§āĻāĻŋ, āĻ āĻ°ā§āĻāĻ¨ āĻāĻ°ā§āĻāĻŋ:
- āĻ¨āĻŋāĻ°āĻžāĻĒāĻ¤ā§āĻ¤āĻž āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž āĻāĻŦāĻ āĻŦāĻžāĻ āĻĨāĻžāĻāĻ¤ā§ āĻĒāĻžāĻ°ā§ āĻāĻŽāĻ¨ āĻā§āĻ¨ā§āĻ°āĻŋāĻ āĻā§āĻĄā§āĻ° āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻšā§āĻ°āĻžāĻ¸ āĻāĻ°āĻž;
- āĻŦā§āĻāĻž āĻĒāĻ°āĻŋāĻ¸ā§āĻĨāĻŋāĻ¤āĻŋāĻ° āĻ¸āĻāĻā§āĻ¯āĻž āĻšā§āĻ°āĻžāĻ¸ āĻāĻ°āĻž āĻ¯ā§āĻāĻžāĻ¨ā§ āĻāĻāĻāĻŋ āĻļā§āĻˇ āĻĒāĻ¯āĻŧā§āĻ¨ā§āĻ āĻŦāĻžāĻāĻ°ā§ āĻĨā§āĻā§ āĻ ā§āĻ¯āĻžāĻā§āĻ¸ā§āĻ¸āĻ¯ā§āĻā§āĻ¯ āĻšāĻ¯āĻŧā§ āĻāĻ ā§āĻā§ āĻāĻŦāĻ āĻāĻāĻŋ āĻ°āĻŋāĻĒā§āĻ°ā§āĻ āĻāĻ°āĻ¤ā§ āĻā§āĻ˛ā§ āĻā§āĻā§;
- āĻĒā§āĻ°āĻ¤āĻŋāĻŦāĻžāĻ° āĻāĻāĻāĻŋ āĻ¨āĻ¤ā§āĻ¨ āĻā§āĻŽāĻŋāĻāĻž āĻŦāĻž āĻ āĻ§āĻŋāĻāĻžāĻ° āĻ¯ā§āĻ āĻāĻ°āĻžāĻ° āĻ¸āĻŽāĻ¯āĻŧ āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻāĻĒāĻĄā§āĻ āĻāĻ°āĻžāĻ° āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ā§āĻ¯āĻŧāĻ¤āĻž āĻĻā§āĻ° āĻāĻ°āĻž;
- āĻ¯ā§ āĻ¨āĻ¤ā§āĻ¨ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻā§āĻ˛āĻŋ āĻ¸āĻšāĻ, āĻ¨āĻŋāĻ°āĻžāĻĒāĻĻ āĻāĻŦāĻ āĻĻā§āĻ°ā§āĻ¤ āĻĨāĻžāĻāĻŦā§āĨ¤
āĻāĻĒāĻ¸āĻāĻšāĻžāĻ°
Istio āĻāĻŋāĻŽāĻā§āĻ˛āĻŋāĻā§ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻžāĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻāĻžāĻ°āĻšā§āĻĄ āĻ¯ā§āĻ āĻ¨āĻž āĻāĻ°ā§, āĻ¤āĻžāĻĻā§āĻ° āĻŽāĻžāĻāĻā§āĻ°ā§ āĻ¸ā§āĻā§āĻ¯āĻžāĻāĻžāĻ¸ā§ āĻĢāĻŋāĻ°āĻŋāĻ¯āĻŧā§ āĻ¨āĻž āĻĻāĻŋāĻ¯āĻŧā§ āĻŦā§āĻ¯āĻŦāĻ¸āĻžāĻ¯āĻŧāĻŋāĻ-āĻā§āĻ°ā§āĻ¤ā§āĻŦāĻĒā§āĻ°ā§āĻŖ āĻāĻžāĻāĻā§āĻ˛āĻŋāĻ¤ā§ āĻ¤āĻžāĻĻā§āĻ° āĻ¸āĻāĻ¸ā§āĻĨāĻžāĻ¨āĻā§āĻ˛āĻŋāĻā§ āĻĢā§āĻāĻžāĻ¸ āĻāĻ°āĻžāĻ° āĻ āĻ¨ā§āĻŽāĻ¤āĻŋ āĻĻā§āĻ¯āĻŧāĨ¤
āĻ¨āĻŋāĻŦāĻ¨ā§āĻ§āĻāĻŋ (āĻ¤āĻŋāĻ¨āĻāĻŋ āĻ āĻāĻļā§) āĻŦāĻžāĻ¸ā§āĻ¤āĻŦ āĻĒā§āĻ°āĻāĻ˛ā§āĻĒāĻā§āĻ˛āĻŋāĻ¤ā§ āĻāĻ¸ā§āĻāĻŋāĻāĻ° āĻ¸āĻžāĻĨā§ āĻļā§āĻ°ā§ āĻāĻ°āĻžāĻ° āĻāĻ¨ā§āĻ¯ āĻĒā§āĻ°āĻžāĻĨāĻŽāĻŋāĻ āĻā§āĻāĻžāĻ¨ āĻāĻŦāĻ āĻĒā§āĻ°āĻ¸ā§āĻ¤ā§āĻ¤ āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻŋāĻ āĻ¨āĻŋāĻ°ā§āĻĻā§āĻļāĻžāĻŦāĻ˛ā§ āĻĒā§āĻ°āĻĻāĻžāĻ¨ āĻāĻ°ā§āĻā§āĨ¤
āĻ āĻ¨ā§āĻŦāĻžāĻĻāĻ āĻĨā§āĻā§ PS
āĻāĻŽāĻžāĻĻā§āĻ° āĻŦā§āĻ˛āĻā§āĻ āĻĒāĻĄāĻŧā§āĻ¨:
- "āĻāĻ¸āĻāĻŋāĻ āĻ¸āĻš āĻŽāĻžāĻāĻā§āĻ°ā§āĻ¸āĻžāĻ°ā§āĻāĻŋāĻ¸ā§ āĻĢāĻŋāĻ°ā§ āĻ¯āĻžāĻ¨":
āĻ āĻāĻļ 1 (āĻĒā§āĻ°āĻ§āĻžāĻ¨ āĻŦā§āĻļāĻŋāĻˇā§āĻā§āĻ¯ā§āĻ° āĻā§āĻŽāĻŋāĻāĻž) ,āĻĒāĻžāĻ°ā§āĻ 2 (āĻ°āĻžāĻāĻāĻŋāĻ, āĻā§āĻ°āĻžāĻĢāĻŋāĻ āĻ¨āĻŋāĻ¯āĻŧāĻ¨ā§āĻ¤ā§āĻ°āĻŖ) ; - ÂĢ
āĻ¨āĻžāĻ˛ā§ - Kubernetes āĻāĻ¨ā§āĻ¯ āĻšāĻžāĻ˛āĻāĻž āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻāĻžāĻ˛ "; - ÂĢ
āĻāĻāĻāĻŋ āĻĒāĻ°āĻŋāĻˇā§āĻŦāĻž āĻāĻžāĻ˛ āĻāĻŋ āĻāĻŦāĻ āĻā§āĻ¨ āĻāĻŽāĻžāĻ° āĻāĻāĻŋ āĻĒā§āĻ°āĻ¯āĻŧā§āĻāĻ¨ [āĻŽāĻžāĻāĻā§āĻ°ā§āĻ¸āĻžāĻ°ā§āĻāĻŋāĻ¸ āĻ¸āĻš āĻāĻāĻāĻŋ āĻā§āĻ˛āĻžāĻāĻĄ āĻ ā§āĻ¯āĻžāĻĒā§āĻ˛āĻŋāĻā§āĻļāĻ¨ā§āĻ° āĻāĻ¨ā§āĻ¯]? Âģ.
āĻāĻ¤ā§āĻ¸: www.habr.com