1.13.2.3. JSON 웹 토큰으로 액세스 제한
JSON 웹 토큰(JWT)으로 메시에 액세스하는 항목을 제한할 수 있습니다. 인증 후 사용자 또는 서비스는 해당 토큰과 연결된 경로, 서비스에 액세스할 수 있습니다.
워크로드에서 지원하는 인증 방법을 정의하는 RequestAuthentication
리소스를 생성합니다. 다음 예제에서는 http://localhost:8080/auth/realms/master
에서 발행한 JWT를 수락합니다.
apiVersion: "security.istio.io/v1beta1" kind: "RequestAuthentication" metadata: name: "jwt-example" namespace: bookinfo spec: selector: matchLabels: app: httpbin jwtRules: - issuer: "http://localhost:8080/auth/realms/master" jwksUri: "http://keycloak.default.svc:8080/auth/realms/master/protocol/openid-connect/certs"
그런 다음, 동일한 네임스페이스에 AuthorizationPolicy
리소스를 생성하여, 사용자가 생성한 RequestAuthentication
리소스와 함께 작업할 수 있습니다. 다음 예제에서는 httpbin
워크로드에 요청을 보낼 때 Authorization
헤더에 JWT가 있어야 합니다.
apiVersion: "security.istio.io/v1beta1" kind: "AuthorizationPolicy" metadata: name: "frontend-ingress" namespace: bookinfo spec: selector: matchLabels: app: httpbin action: DENY rules: - from: - source: notRequestPrincipals: ["*"]