This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.10.2. Knative 서비스의 JSON Web Token 인증 설정
OpenShift Serverless에는 현재 사용자 정의 권한 부여 기능이 없습니다. 배포에 사용자 정의 권한 부여를 추가하려면 OpenShift Serverless를 Red Hat OpenShift Service Mesh와 통합한 다음 Knative 서비스에 대해 JSON 웹 토큰(JWT) 인증 및 사이드카 삽입을 구성해야 합니다.
10.2.1. Service Mesh 2.x 및 OpenShift Serverless에서 JSON 웹 토큰 인증 사용 링크 복사링크가 클립보드에 복사되었습니다!
Service Mesh 2.x 및 OpenShift Serverless를 사용하여 Knative 서비스와 함께 JSON 웹 토큰(JWT) 인증을 사용할 수 있습니다. 이렇게 하려면 ServiceMeshMemberRoll
오브젝트의 멤버인 애플리케이션 네임스페이스에서 인증 요청 및 정책을 생성해야 합니다. 서비스에 대한 사이드카 삽입도 활성화해야 합니다.
knative-serving
및 knative-serving-ingress
와 같은 시스템 네임스페이스의 Pod에 Kourier가 활성화되어 있는 경우 사이드카를 삽입할 수 없습니다.
이러한 네임스페이스의 Pod에 사이드카를 삽입해야 하는 경우 Service Mesh와 OpenShift Serverless 통합에 대한 OpenShift Serverless 문서를 참조하십시오.
사전 요구 사항
- OpenShift Serverless Operator, Knative Serving, Red Hat OpenShift Service Mesh를 클러스터에 설치했습니다.
-
OpenShift CLI(
oc
)를 설치합니다. - 프로젝트를 생성했거나 OpenShift Container Platform에서 애플리케이션 및 기타 워크로드를 생성하는 데 적절한 역할 및 권한이 있는 프로젝트에 액세스할 수 있습니다.
절차
서비스에
sidecar.istio.io/inject="true"
주석을 추가합니다.서비스의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Service
리소스를 적용합니다.oc apply -f <filename>
$ oc apply -f <filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ServiceMeshMemberRoll
오브젝트의 멤버인 각 서버리스 애플리케이션 네임스페이스에RequestAuthentication
리소스를 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow RequestAuthentication
리소스를 적용합니다.oc apply -f <filename>
$ oc apply -f <filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음
AuthorizationPolicy
리소스를 생성하여ServiceMeshMemberRoll
오브젝트의 멤버인 각 서버리스 애플리케이션 네임스페이스의 시스템 Pod에서RequestAuthenticaton
리소스에 대한 액세스를 허용합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow AuthorizationPolicy
리소스를 적용합니다.oc apply -f <filename>
$ oc apply -f <filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ServiceMeshMemberRoll
오브젝트의 멤버인 각 서버리스 애플리케이션 네임스페이스에서 다음AuthorizationPolicy
리소스를 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow AuthorizationPolicy
리소스를 적용합니다.oc apply -f <filename>
$ oc apply -f <filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
Knative 서비스 URL을 가져오기 위해
curl
요청을 사용하면 해당 요청이 거부됩니다.명령 예
curl http://hello-example-1-default.apps.mycluster.example.com/
$ curl http://hello-example-1-default.apps.mycluster.example.com/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
RBAC: access denied
RBAC: access denied
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 유효한 JWT로 요청을 확인합니다.
유효한 JWT 토큰을 가져옵니다.
TOKEN=$(curl https://raw.githubusercontent.com/istio/istio/release-1.8/security/tools/jwt/samples/demo.jwt -s) && echo "$TOKEN" | cut -d '.' -f2 - | base64 --decode -
$ TOKEN=$(curl https://raw.githubusercontent.com/istio/istio/release-1.8/security/tools/jwt/samples/demo.jwt -s) && echo "$TOKEN" | cut -d '.' -f2 - | base64 --decode -
Copy to Clipboard Copied! Toggle word wrap Toggle overflow curl
요청 헤더에 유효한 토큰을 사용하여 서비스에 액세스합니다.curl -H "Authorization: Bearer $TOKEN" http://hello-example-1-default.apps.example.com
$ curl -H "Authorization: Bearer $TOKEN" http://hello-example-1-default.apps.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 그러면 요청이 허용됩니다.
출력 예
Hello OpenShift!
Hello OpenShift!
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
10.2.2. Service Mesh 1.x 및 OpenShift Serverless에서 JSON 웹 토큰 인증 사용 링크 복사링크가 클립보드에 복사되었습니다!
Service Mesh 1.x 및 OpenShift Serverless를 사용하여 Knative 서비스와 함께 JSON 웹 토큰(JWT) 인증을 사용할 수 있습니다. 이렇게 하려면 ServiceMeshMemberRoll
오브젝트의 멤버인 애플리케이션 네임스페이스에 정책을 만들어야 합니다. 서비스에 대한 사이드카 삽입도 활성화해야 합니다.
knative-serving
및 knative-serving-ingress
와 같은 시스템 네임스페이스의 Pod에 Kourier가 활성화되어 있는 경우 사이드카를 삽입할 수 없습니다.
이러한 네임스페이스의 Pod에 사이드카를 삽입해야 하는 경우 Service Mesh와 OpenShift Serverless 통합에 대한 OpenShift Serverless 문서를 참조하십시오.
사전 요구 사항
- OpenShift Serverless Operator, Knative Serving, Red Hat OpenShift Service Mesh를 클러스터에 설치했습니다.
-
OpenShift CLI(
oc
)를 설치합니다. - 프로젝트를 생성했거나 OpenShift Container Platform에서 애플리케이션 및 기타 워크로드를 생성하는 데 적절한 역할 및 권한이 있는 프로젝트에 액세스할 수 있습니다.
절차
서비스에
sidecar.istio.io/inject="true"
주석을 추가합니다.서비스의 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Service
리소스를 적용합니다.oc apply -f <filename>
$ oc apply -f <filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 유효한 JWT(JSON 웹 토큰)가 있는 요청만 허용하는
ServiceMeshMemberRoll
오브젝트의 멤버인 서버리스 애플리케이션 네임스페이스에 정책을 생성합니다.중요/metrics
및/healthz
경로는knative-serving
네임스페이스의 시스템 Pod에서 액세스하므로excludedPaths
에 포함되어야 합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow Policy
리소스를 적용합니다.oc apply -f <filename>
$ oc apply -f <filename>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
검증
Knative 서비스 URL을 가져오기 위해
curl
요청을 사용하면 해당 요청이 거부됩니다.curl http://hello-example-default.apps.mycluster.example.com/
$ curl http://hello-example-default.apps.mycluster.example.com/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 출력 예
Origin authentication failed.
Origin authentication failed.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 유효한 JWT로 요청을 확인합니다.
유효한 JWT 토큰을 가져옵니다.
TOKEN=$(curl https://raw.githubusercontent.com/istio/istio/release-1.6/security/tools/jwt/samples/demo.jwt -s) && echo "$TOKEN" | cut -d '.' -f2 - | base64 --decode -
$ TOKEN=$(curl https://raw.githubusercontent.com/istio/istio/release-1.6/security/tools/jwt/samples/demo.jwt -s) && echo "$TOKEN" | cut -d '.' -f2 - | base64 --decode -
Copy to Clipboard Copied! Toggle word wrap Toggle overflow curl
요청 헤더에 유효한 토큰을 사용하여 서비스에 액세스합니다.curl http://hello-example-default.apps.mycluster.example.com/ -H "Authorization: Bearer $TOKEN"
$ curl http://hello-example-default.apps.mycluster.example.com/ -H "Authorization: Bearer $TOKEN"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 그러면 요청이 허용됩니다.
출력 예
Hello OpenShift!
Hello OpenShift!
Copy to Clipboard Copied! Toggle word wrap Toggle overflow