เจจเฉเจ เจเจฐเฉเฅค เจ
เจจเฉเจตเจพเจฆ:
เจ เจธเฉเจ เจเฉฑเจ 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
เจ
เจเจฟเจนเฉ เจธเจฐเฉเจค เจจเจพเจฒ, เจชเจพเจเจฒเจ (เจเจธเจเฉเจ เจตเจฟเฉฑเจ เจคเจฟเฉฐเจจ เจฌเฉเจจเจฟเจเจฆเฉ เจเฉฐเจเจฐเฉเจฒ เจชเจฒเฉเจจ เจญเจพเจเจพเจ เจตเจฟเฉฑเจเฉเจ เจเฉฑเจ - เจฒเจเจญเจ เจ
เจจเฉเจตเจพเจฆเฅค) เจฆเฉเจค เจจเฉเฉฐ เจธเฉเจตเจพเจตเจพเจ เจจเฉเฉฐ เจ
เฉฑเจเฉ เจญเฉเจเจฃ เจคเฉเจ เจชเจนเจฟเจฒเจพเจ เจฌเฉเจจเจคเฉเจเจ เจจเฉเฉฐ เจชเฉเจฐเจฎเจพเจฃเจฟเจค เจเจฐเจจ เจฒเจ เจเฉเจเจซเจฟเจเจฐ เจเจฐเจฆเจพ เจนเฉ: 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 เจชเฉเจฐเจเจฒ 'เจคเฉ เจธเจฅเจฟเจค เจนเจจ เจเจชเจฒเฉเจเฉเจธเจผเจจ - เจเฉเจฃเฉ เจเฉเจธเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ (API เจฆเฉ เจจเจพเจฒ เจเจชเจฃเฉ เจเจช เจฌเจฃเจพเจเจ เจเจฟเจ)เฅค
เจเฉฑเจฅเฉ เจ เจธเฉเจ เจฒเจฟเจเจพเจเจเฉ:
- เจจเฉเฉฐ เจกเฉเจฎเฉเจจ: {YOUR_DOMAIN}
- เจเจฒเจพเจเฉฐเจ เจเจ.เจกเฉ: {YOUR_CLIENT_ID}
เจคเฉฑเจ เจธเจเฉเจฐเฉเจฒ เจเจฐเฉ เจเฉเจธเจ เจเจชเจฒเฉเจเฉเจธเจผเจจ เจเฉเจเจธเจ เจเฉเจคเจฐ เจตเจฟเฉฑเจ เจฎเจจเจเจผเฉเจฐเจธเจผเฉเจฆเจพ เจเจพเจฒเจฌเฉเจ URL (เจเจพเจฒเจฌเฉเจ เจฒเจ เจนเฉฑเจฒ เจเฉเจคเฉ URL), เจเจฟเจธ เจตเจฟเฉฑเจ เจ เจธเฉเจ เจเจน URL เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจฆเฉ เจนเจพเจ เจเจฟเฉฑเจฅเฉ เจชเฉเจฐเจฎเจพเจฃเฉเจเจฐเจจ เจชเฉเจฐเจพ เจนเฉเจฃ เจคเฉเจ เจฌเจพเจ เจฆ เจเจพเจฒ เจญเฉเจเฉ เจเจพเจฃเฉ เจเจพเจนเฉเจฆเฉ เจนเฉเฅค เจธเจพเจกเฉ เจเฉเจธ เจตเจฟเฉฑเจ เจเจน เจนเฉ:
http://{EXTERNAL_IP}/callback
เจ เจคเฉ เจฒเจ เจฒเฉเจเจเจเจ URL เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฑเจคเฉ เจเจ (เจฒเฉเจ เจเจเจ เจเจฐเจจ เจฒเจ เจฎเจจเจเจผเฉเจฐ URL) เจธเจผเจพเจฎเจฒ เจเจฐเฉ:
http://{EXTERNAL_IP}/logout
เจเจ เจซเจฐเฉฐเจเจเจเจก 'เจคเฉ เจเฉฑเจฒเฉเจเฅค
เจซเจฐเฉฐเจเจเจเจก เจ เฉฑเจชเจกเฉเจ
เจธเจผเจพเจเจพ เจตเจฟเฉฑเจ เจธเจตเจฟเจ เจเจฐเฉ auth0
REPOZITORIA [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 'เจคเฉ เจฐเฉเจกเจพเจเจฐเฉเจเจ เจเฉเจคเจพ เจเจพเจตเฉเจเจพ, เจเจฟเฉฑเจฅเฉ เจคเฉเจนเจพเจจเฉเฉฐ เจฒเฉเจ เจเจจ (เจเจพเจ เจฐเจเจฟเจธเจเจฐ เจเจฐเจจ) เจฆเฉ เจฒเฉเฉ เจนเฉ, เจเจฟเจธ เจคเฉเจ เจฌเจพเจ เจฆ เจคเฉเจนเจพเจจเฉเฉฐ เจเจธ เจชเฉฐเจจเฉ 'เจคเฉ เจตเจพเจชเจธ เจญเฉเจเจฟเจ เจเจพเจตเฉเจเจพ เจเจฟเฉฑเจฅเฉเจ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจชเฉเจฐเจฎเจพเจฃเจฟเจค เจฌเฉเจจเจคเฉเจเจ เจเฉเจคเฉเจเจ เจเจพเจฃเจเฉเจเจเฅค เจเฉเจเจฐ เจคเฉเจธเฉเจ เจฒเฉเจ เจฆเฉ เจชเจนเจฟเจฒเฉ เจญเจพเจเจพเจ เจตเจฟเฉฑเจ เจเจผเจฟเจเจฐ เจเฉเจคเฉเจเจ เจเจฎเจพเจเจกเจพเจ เจจเฉเฉฐ curl เจจเจพเจฒ เจตเจฐเจคเจฆเฉ เจนเฉ, เจคเจพเจ เจคเฉเจนเจพเจจเฉเฉฐ เจเฉเจก เจฎเจฟเจฒเฉเจเจพ 401 เจธเจฅเจฟเจคเฉ เจเฉเจก, เจเจน เจธเฉฐเจเฉเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉ เจเจฟ เจฌเฉเจจเจคเฉ เจ เจงเจฟเจเจพเจฐเจค เจจเจนเฉเจ เจนเฉเฅค
เจเจ เจ เจเจฒเจพ เจเจฆเจฎ เจเฉเฉฑเจเฉเจ - เจฌเฉเจจเจคเฉเจเจ เจจเฉเฉฐ เจ เจงเจฟเจเจพเจฐเจค เจเจฐเฉเฅค
Auth0 เจจเจพเจฒ เจชเฉเจฐเจฎเจพเจฃเจฟเจเจคเจพ
เจชเฉเจฐเจฎเจพเจฃเจฟเจเจคเจพ เจธเจพเจจเฉเฉฐ เจเจน เจธเจฎเจเจฃ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเฉ เจนเฉ เจเจฟ เจเจชเจญเฉเจเจคเจพ เจเฉเจฃ เจนเฉ, เจชเจฐ เจเจน เจเจพเจฃเจจ เจฒเจ เจ เจงเจฟเจเจพเจฐ เจฆเฉ เจฒเฉเฉ เจนเฉเฉฐเจฆเฉ เจนเฉ เจเจฟ เจเจนเจจเจพเจ เจเฉเจฒ เจเฉ เจชเจนเฉเฉฐเจ เจนเฉเฅค Istio เจเจธเจฆเฉ เจฒเจ เจเฉเจฒ เจตเฉ เจชเฉเจธเจผ เจเจฐเจฆเจพ เจนเฉเฅค
เจเฉฑเจ เจเจฆเจพเจนเจฐเจจ เจฆเฉ เจคเฉเจฐ เจคเฉ, เจเจ เจฆเฉ เจเจชเจญเฉเจเจคเจพ เจธเจฎเฉเจน เจฌเจฃเจพเจตเจพเจ (เจนเฉเจ เจพเจ เจเจฟเฉฑเจคเจฐ เจตเฉเจเฉ):
- เจฏเฉเจเจผเจฐ (เจเจชเจญเฉเจเจคเจพ) โ เจธเจฟเจฐเจซเจผ SA-WebApp เจ เจคเฉ SA-Frontend เจธเฉเจตเจพเจตเจพเจ เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจฆเฉ เจจเจพเจฒ;
- เจธเฉฐเจเจพเจฒเจ (เจธเฉฐเจเจพเจฒเจ) - เจธเจพเจฐเฉเจเจ เจคเจฟเฉฐเจจ เจธเฉเจตเจพเจตเจพเจ เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจฆเฉ เจจเจพเจฒเฅค
เจ
เจงเจฟเจเจพเจฐ เจธเฉฐเจเจฒเจช
เจเจนเจจเจพเจ เจธเจฎเฉเจนเจพเจ เจจเฉเฉฐ เจฌเจฃเจพเจเจฃ เจฒเจ, เจ เจธเฉเจ Auth0 เจชเฉเจฐเจฎเจพเจฃเฉเจเจฐเจจ เจเจเจธเจเฉเจเจธเจผเจจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจพเจเจเฉ เจ เจคเฉ เจเจนเจจเจพเจ เจจเฉเฉฐ เจตเฉฑเจ-เจตเฉฑเจ เจชเฉฑเจงเจฐเจพเจ เจฆเฉ เจชเจนเฉเฉฐเจ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจจ เจฒเจ Istio เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจพเจเจเฉเฅค
Auth0 เจ เจงเจฟเจเจพเจฐ เจฆเฉ เจธเจฅเจพเจชเจจเจพ เจ เจคเฉ เจธเฉฐเจฐเจเจจเจพ
Auth0 เจชเฉเจฐเจเจฒ เจตเจฟเฉฑเจ, เจเจเจธเจเฉเจเจธเจผเจจเจพเจ 'เจคเฉ เจเจพเจ (เจเจเจธเจเฉเจจเจธเจผเจจ) เจ เจคเฉ เจเฉฐเจธเจเจพเจฒ เจเจฐเฉ Auth0 เจชเฉเจฐเจฎเจพเจฃเฉเจเจฐเจจ. เจเฉฐเจธเจเจพเจฒเฉเจธเจผเจจ เจฆเฉ เจฌเจพเจ เจฆ, 'เจคเฉ เจเจพเจ เจ เจงเจฟเจเจพเจฐ เจเจเจธเจเฉเจเจธเจผเจจ, เจ เจคเฉ เจเฉฑเจฅเฉ - เจเฉฑเจชเจฐ เจธเฉฑเจเฉ เจชเจพเจธเฉ เจเจฒเจฟเฉฑเจ เจเจฐเจเฉ เจ เจคเฉ เจเจเจฟเจค เจฎเฉเจจเฉ เจตเจฟเจเจฒเจช เจฆเฉ เจเฉเจฃ เจเจฐเจเฉ เจเจฟเจฐเจพเจเจฆเจพเจฐ เจฆเฉ เจธเฉฐเจฐเจเจจเจพ เจตเฉฑเจฒ (เจเฉเจจเจซเจฟเจเจฐเฉเจธเจผเจจ). เจธเจฎเฉเจนเจพเจ เจจเฉเฉฐ เจธเจฐเจเจฐเจฎ เจเจฐเฉ (เจธเจฎเฉเจน) เจ เจคเฉ เจชเฉเจฐเจเจพเจธเจผเจฟเจค เจจเจฟเจฏเจฎ เจฌเจเจจ 'เจคเฉ เจเจฒเจฟเฉฑเจ เจเจฐเฉ (เจจเจฟเจฏเจฎ เจชเฉเจฐเจเจพเจธเจผเจฟเจค เจเจฐเฉ).
เจเจฐเฉเฉฑเจช เจฌเจฃเจพเจเจฃเจพ
เจ เจงเจฟเจเจพเจฐ เจเจเจธเจเฉเจเจธเจผเจจ เจตเจฟเฉฑเจ เจเจพเจ เจเจฐเฉเฉฑเจช เจ เจคเฉ เจเฉฑเจ เจธเจฎเฉเจน เจฌเจฃเจพเจ เจธเฉฐเจเจพเจฒเจ. เจเจฟเจเจเจเจฟ เจ เจธเฉเจ เจธเจพเจฐเฉ เจชเฉเจฐเจฎเจพเจฃเจฟเจค เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจจเฉเฉฐ เจจเจฟเจฏเจฎเจค เจเจชเจญเฉเจเจคเจพ เจฎเฉฐเจจเจพเจเจเฉ, เจเจนเจจเจพเจ เจฒเจ เจเฉฑเจ เจตเจพเจงเฉ เจธเจฎเฉเจน เจฌเจฃเจพเจเจฃ เจฆเฉ เจเฉเจ เจฒเฉเฉ เจจเจนเฉเจ เจนเฉเฅค
เจเฉฑเจ เจธเจฎเฉเจน เจเฉเจฃเฉ เจธเฉฐเจเจพเจฒเจ, เจชเฉเจฐเฉเจธ เจธเจฆเฉฑเจธ เจธเจผเจพเจฎเจฒ เจเจฐเฉ, เจเจชเจฃเจพ เจฎเฉเฉฑเจ เจเจพเจคเจพ เจธเจผเจพเจฎเจฒ เจเจฐเฉเฅค เจเจน เจฏเจเฉเจจเฉ เจฌเจฃเจพเจเจฃ เจฒเจ เจเจฟ เจเจนเจจเจพเจ เจจเฉเฉฐ เจชเจนเฉเฉฐเจ เจคเฉเจ เจเจจเจเจพเจฐ เจเฉเจคเจพ เจเจฟเจ เจนเฉ, เจฌเจฟเจจเจพเจ เจเจฟเจธเฉ เจธเจฎเฉเจน เจฆเฉ เจเฉเจ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจจเฉเฉฐ เจเฉฑเจกเฉเฅค (เจจเจตเฉเจ เจเจชเจญเฉเจเจคเจพ เจเจธ เจฆเฉเจเจฐเจพ เจนเฉฑเจฅเฉเจ เจฌเจฃเจพเจ เจเจพ เจธเจเจฆเฉ เจนเจจ Auth0 เจชเฉเจฐเจเจฒ > เจเจชเจญเฉเจเจคเจพ > เจเจชเจญเฉเจเจคเจพ เจฌเจฃเจพเจ.)
เจเจเจธเฉเจธ เจเฉเจเจจ เจฒเจ เจธเจฎเฉเจน เจฆเจพเจ เจตเจพ เจธเจผเจพเจฎเจฒ เจเจฐเฉ
เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจจเฉเฉฐ เจธเจฎเฉเจนเจพเจ เจตเจฟเฉฑเจ เจเฉเฉเจฟเจ เจเจฟเจ เจนเฉ, เจชเจฐ เจเจน เจเจพเจฃเจเจพเจฐเฉ เจเจเจธเฉเจธ เจเฉเจเจจเจพเจ เจตเจฟเฉฑเจ เจตเฉ เจชเฉเจฐเจคเฉเจฌเจฟเฉฐเจฌเจฟเจค เจนเฉเจฃเฉ เจเจพเจนเฉเจฆเฉ เจนเฉเฅค เจเจชเจจเจเจเจกเฉ เจเจจเฉเจเจ เจฆเฉ เจชเจพเจฒเจฃเจพ เจเจฐเจจ เจฒเจ เจ
เจคเฉ เจเจธเฉ เจธเจฎเฉเจ เจธเจพเจจเฉเฉฐ เจฒเฉเฉเฉเจเจฆเฉ เจธเจฎเฉเจนเจพเจ เจจเฉเฉฐ เจตเจพเจชเจธ เจเจฐเจจ เจฒเจ, เจเฉเจเจจ เจจเฉเฉฐ เจเจชเจฃเฉ เจเจช เจจเฉเฉฐ เจเฉเฉเจจ เจฆเฉ เจฒเฉเฉ เจนเฉเจตเฉเจเฉ
เจจเจฟเจฏเจฎ เจฌเจฃเจพเจเจฃ เจฒเจ, 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 เจตเจฟเฉฑเจ เจ เจงเจฟเจเจพเจฐ เจธเฉฐเจฐเจเจจเจพ
เจเฉฐเจฎ เจเจฐเจจ เจฆเฉ เจ เจงเจฟเจเจพเจฐ เจฒเจ, เจคเฉเจนเจพเจจเฉเฉฐ 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 เจธเจฐเฉเจคเจพเจ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจเฉ เจฒเจพเจเฉ เจเฉเจคเจพ เจเจฟเจ:
- เจธเจฐเจตเจฟเจธ เจฐเฉเจฒ - เจเจชเจญเฉเจเจคเจพ เจฆเฉ เจ เจงเจฟเจเจพเจฐเจพเจ เจจเฉเฉฐ เจจเจฟเจฐเจงเจพเจฐเจค เจเจฐเจฆเจพ เจนเฉ;
- เจธเจฐเจตเจฟเจธ เจฐเฉเจฒ เจฌเจพเจเจกเจฟเฉฐเจ โ เจเจน เจจเจฟเจฐเจงเจพเจฐเจฟเจค เจเจฐเจฆเจพ เจนเฉ เจเจฟ เจเจน เจธเจฐเจตเจฟเจธ เจฐเฉเจฒ เจเจฟเจธ เจจเจพเจฒ เจธเจฌเฉฐเจงเจค เจนเฉเฅค
เจเจฎ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจฒเจ เจ
เจธเฉเจ เจเฉเจ เจธเฉเจตเจพเจตเจพเจ เจคเฉฑเจ เจชเจนเฉเฉฐเจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเฉเจตเจพเจเจเฉ (
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
เจธเจพเจฐเฉ เจชเฉเจ เจตเจฟเจเจผเจฟเจเจฐเจพเจ เจฒเจ เจธเจฐเจตเจฟเจธเจฐเฉเจฒ เจฒเจพเจเฉ เจเจฐเฉ (
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
เจฐเจพเจเจฆเฉเจคเจพเจ เจตเจฟเฉฑเจ เจเฉเจเจฟเฉฐเจ เจฆเฉ เจเจพเจฐเจจ, เจ เจงเจฟเจเจพเจฐ เจจเจฟเจฏเจฎเจพเจ เจจเฉเฉฐ เจฒเจพเจเฉ เจนเฉเจฃ เจตเจฟเฉฑเจ เจเฉเจ เจฎเจฟเฉฐเจ เจฒเฉฑเจ เจธเจเจฆเฉ เจนเจจเฅค เจคเฉเจธเฉเจ เจซเจฟเจฐ เจฏเจเฉเจจเฉ เจฌเจฃเจพ เจธเจเจฆเฉ เจนเฉ เจเจฟ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจ เจคเฉ เจธเฉฐเจเจพเจฒเจเจพเจ เจเฉเจฒ เจชเจนเฉเฉฐเจ เจฆเฉ เจตเฉฑเจ-เจตเฉฑเจ เจชเฉฑเจงเจฐ เจนเจจเฅค
เจเจธ เจนเจฟเฉฑเจธเฉ 'เจคเฉ เจธเจฟเฉฑเจเจพ
เจนเจพเจฒเจพเจเจเจฟ, เจเฉฐเจญเฉเจฐเจคเจพ เจจเจพเจฒ, เจเฉ เจคเฉเจธเฉเจ เจชเฉเจฐเจฎเจพเจฃเจฟเจเจคเจพ เจ เจคเฉ เจชเฉเจฐเจฎเจพเจฃเจฟเจเจคเจพ เจฒเจ เจเจฆเฉ เจธเจฐเจฒ, เจ เจธเจพเจจ, เจธเจเฉเจฒเฉเจฌเจฒ เจ เจคเฉ เจธเฉเจฐเฉฑเจเจฟเจ เจค เจชเจนเฉเฉฐเจ เจฆเฉเจเฉ เจนเฉ?
เจธเฉเจตเจพเจตเจพเจ เจคเฉฑเจ เจ เฉฐเจคเจฎ เจเจชเจญเฉเจเจคเจพ เจฆเฉ เจชเจนเฉเฉฐเจ เจฆเฉ เจชเฉเจฐเจฎเจพเจฃเจฟเจเจคเจพ เจ เจคเฉ เจชเฉเจฐเจฎเจพเจฃเจฟเจเจคเจพ 'เจคเฉ เจตเจงเฉเจ เจจเจฟเจฏเฉฐเจคเจฐเจฃ เจชเฉเจฐเจพเจชเจค เจเจฐเจจ เจฒเจ เจธเจฟเจฐเจซ เจคเจฟเฉฐเจจ Istio เจธเจฐเฉเจคเจพเจ (RbacConfig, ServiceRole, เจ เจคเฉ ServiceRoleBinding) เจฆเฉ เจฒเฉเฉ เจธเฉเฅค
เจเจธ เจคเฉเจ เจเจฒเจพเจตเจพ, เจ เจธเฉเจ เจเจชเจฃเฉเจเจ เจฆเฉเจค เจธเฉเจตเจพเจตเจพเจ เจตเจฟเฉฑเจเฉเจ เจเจนเจจเจพเจ เจฎเฉเฉฑเจฆเจฟเจเจ เจฆเจพ เจงเจฟเจเจจ เจฐเฉฑเจเจฟเจ เจนเฉ, เจเจน เจชเฉเจฐเจพเจชเจค เจเจฐเจฆเฉ เจนเฉเจ:
- เจเฉเจจเจฐเจฟเจ เจเฉเจก เจฆเฉ เจฎเจพเจคเจฐเจพ เจจเฉเฉฐ เจเจเจพเจเจฃเจพ เจเจฟเจธ เจตเจฟเฉฑเจ เจธเฉเจฐเฉฑเจเจฟเจ เจธเจฎเฉฑเจธเจฟเจเจตเจพเจ เจ เจคเฉ เจฌเฉฑเจ เจนเฉ เจธเจเจฆเฉ เจนเจจ;
- เจฎเฉเจฐเจ เจธเจฅเจฟเจคเฉเจเจ เจฆเฉ เจเจฟเจฃเจคเฉ เจจเฉเฉฐ เจเจเจพเจเจฃเจพ เจเจฟเจธ เจตเจฟเฉฑเจ เจเฉฑเจ เจ เฉฐเจค เจฌเจฟเฉฐเจฆเฉ เจฌเจพเจนเจฐเฉเจ เจชเจนเฉเฉฐเจเจฏเฉเจ เจนเฉ เจเจฟเจ เจ เจคเฉ เจเจธเจฆเฉ เจฐเจฟเจชเฉเจฐเจ เจเจฐเจจเจพ เจญเฉเฉฑเจฒ เจเจฟเจ;
- เจนเจฐ เจตเจพเจฐ เจจเจตเฉเจ เจญเฉเจฎเจฟเจเจพ เจเจพเจ เจ เจงเจฟเจเจพเจฐ เจเฉเฉเจจ 'เจคเฉ เจธเจพเจฐเฉเจเจ เจธเฉเจตเจพเจตเจพเจ เจจเฉเฉฐ เจ เจชเจกเฉเจ เจเจฐเจจ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจจเฉเฉฐ เจเจคเจฎ เจเจฐเจจเจพ;
- เจเจฟ เจจเจตเฉเจเจ เจธเฉเจตเจพเจตเจพเจ เจธเจฐเจฒ, เจธเฉเจฐเฉฑเจเจฟเจ เจค เจ เจคเฉ เจคเฉเจเจผ เจฐเจนเจฟเฉฐเจฆเฉเจเจ เจนเจจเฅค
เจธเจฟเฉฑเจเจพ
Istio เจเฉเจฎเจพเจ เจจเฉเฉฐ เจธเฉเจตเจพเจตเจพเจ เจตเจฟเฉฑเจ เจเจตเจฐเจนเฉเฉฑเจก เจจเฉเฉฐ เจธเจผเจพเจฎเจฒ เจเฉเจคเฉ เจฌเจฟเจจเจพเจ, เจเจนเจจเจพเจ เจจเฉเฉฐ เจฎเจพเจเจเจฐเฉ เจธเจฅเจฟเจคเฉ เจตเจฟเฉฑเจ เจตเจพเจชเจธ เจฒเจฟเจเจเจฃ เจฆเฉ เจฌเจฟเจเจผเจจเจธ-เจจเจพเจเจผเฉเจ เจเฉฐเจฎเจพเจ 'เจคเฉ เจเจชเจฃเฉ เจธเจฐเฉเจคเจพเจ เจจเฉเฉฐ เจซเฉเจเจธ เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจฆเจฟเฉฐเจฆเจพ เจนเฉเฅค
เจฒเฉเจ (เจคเจฟเฉฐเจจ เจญเจพเจเจพเจ เจตเจฟเฉฑเจ) เจ เจธเจฒ เจชเฉเจฐเฉเจเฉเจเจเจพเจ เจตเจฟเฉฑเจ Istio เจจเจพเจฒ เจธเจผเฉเจฐเฉเจเจค เจเจฐเจจ เจฒเจ เจฌเฉเจจเจฟเจเจฆเฉ เจเจฟเจเจจ เจ เจคเฉ เจคเจฟเจเจฐ-เจฌเจฃเจพเจเจ เจตเจฟเจนเจพเจฐเจ เจจเจฟเจฐเจฆเฉเจธเจผ เจชเฉเจฐเจฆเจพเจจ เจเจฐเจฆเจพ เจนเฉเฅค
เจ เจจเฉเจตเจพเจฆเจ เจคเฉเจ เจชเฉ.เจเจธ
เจธเจพเจกเฉ เจฌเจฒเฉเจ 'เจคเฉ เจตเฉ เจชเฉเฉเจนเฉ:
- "เจเจธเจเฉเจ เจจเจพเจฒ เจฎเจพเจเจเฉเจฐเฉ เจธเจฐเจตเจฟเจธเจฟเจเจผ 'เจคเฉ เจตเจพเจชเจธ เจเจพเจ":
เจญเจพเจ 1 (เจฎเฉเฉฑเจ เจตเจฟเจธเจผเฉเจธเจผเจคเจพเจตเจพเจ เจฆเฉ เจเจพเจฃ เจชเจเจพเจฃ) ,เจญเจพเจ 2 (เจฐเฉเจเจฟเฉฐเจ, เจเฉเจฐเฉเจซเจฟเจ เจเฉฐเจเจฐเฉเจฒ) ; - ยซ
เจเฉฐเจกเจฟเจเจ - เจเฉเจฌเจฐเจจเฉเจเจธ เจฒเจ เจนเจฒเจเจพ เจธเฉเจตเจพ เจเจพเจฒ "; - ยซ
เจเฉฑเจ เจธเฉเจตเจพ เจเจพเจฒ เจเฉ เจนเฉ เจ เจคเฉ เจฎเฉเจจเฉเฉฐ [เจฎเจพเจเจเฉเจฐเฉเจธเจฐเจตเจฟเจธเจฟเจเจผ เจฆเฉ เจจเจพเจฒ เจเจฒเจพเจเจก เจเจชเจฒเฉเจเฉเจธเจผเจจ เจฒเจ] เจเจธเจฆเฉ เจเจฟเจเจ เจฒเฉเฉ เจนเฉ? ".
เจธเจฐเฉเจค: www.habr.com