4.14. 이벤트 리스너로 Webhook 보안
관리자는 이벤트 리스너를 사용하여 Webhook를 보호할 수 있습니다. 네임스페이스를 생성한 후 네임스페이스에 operator.tekton.dev/enable-annotation=enabled
레이블을 추가하여 Eventlistener
리소스의 HTTPS를 활성화합니다. 그런 다음 재암호화 TLS 종료를 사용하여 Trigger
리소스 및 보안 경로를 생성합니다.
Red Hat OpenShift Pipelines에서 트리거는 Eventlistener
리소스에 대한 비보안 HTTP 및 보안 HTTPS 연결을 모두 지원합니다. HTTPS는 클러스터 내부 및 외부의 연결을 보호합니다.
Red Hat OpenShift Pipelines는 네임스페이스의 레이블을 감시하는 tekton-operator-proxy-webhook
Pod를 실행합니다. 네임스페이스에 라벨을 추가하면 Webhook에서 EventListener
오브젝트에 service.beta.openshift.io/serving-cert-secret-name=<secret_name>
주석을 설정합니다. 이를 통해 시크릿과 필수 인증서를 생성합니다.
service.beta.openshift.io/serving-cert-secret-name=<secret_name>
또한 생성된 시크릿을 Eventlistener
pod 마운트하여 요청을 보호할 수 있습니다.
4.14.1. OpenShift 경로와의 보안 연결 제공
재암호화 TLS 종료로 경로를 생성합니다.
$ oc create route reencrypt --service=<svc-name> --cert=tls.crt --key=tls.key --ca-cert=ca.crt --hostname=<hostname>
또는 재암호화된 TLS 종료 YAML 파일을 만들어 보안 경로를 만들 수도 있습니다.
보안 경로를 생성하기 위해 TLS 종료 YAML을 재암호화하는 예
apiVersion: route.openshift.io/v1 kind: Route metadata: name: route-passthrough-secured 1 spec: host: <hostname> to: kind: Service name: frontend 2 tls: termination: reencrypt 3 key: [as in edge termination] certificate: [as in edge termination] caCertificate: [as in edge termination] destinationCACertificate: |- 4 -----BEGIN CERTIFICATE----- [...] -----END CERTIFICATE-----
oc create route reencrypt --help
명령을 실행하여 더 많은 옵션을 표시할 수 있습니다.
4.14.2. 보안 HTTPS 연결을 사용하여 샘플 EventListener 리소스 생성
이 섹션에서는 pipelines-tutorial 예제를 사용하여 보안 HTTPS 연결을 사용하여 샘플 EventListener 리소스 생성을 만드는 방법을 보여줍니다.
절차
pipelines-tutorial 리포지토리에서 사용 가능한 YAML 파일에서
TriggerBinding
리소스를 생성합니다.$ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/master/03_triggers/01_binding.yaml
pipelines-tutorial 리포지토리에서 직접
TriggerTemplate
리소스를 생성합니다.$ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/master/03_triggers/02_template.yaml
pipelines-tutorial 리포지토리에서 직접
Trigger
리소스를 생성합니다.$ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/master/03_triggers/03_trigger.yaml
보안 HTTPS 연결을 사용하여
EventListener
리소스를 생성합니다.Eventlistener
리소스에 대한 보안 HTTPS 연결을 활성화하려면 레이블을 추가합니다.$ oc label namespace <ns-name> operator.tekton.dev/enable-annotation=enabled
pipelines-tutorial 리포지토리에서 사용 가능한 YAML 파일에서
EventListener
리소스를 생성합니다.$ oc create -f https://raw.githubusercontent.com/openshift/pipelines-tutorial/master/03_triggers/04_event_listener.yaml
재암호화 TLS 종료로 경로를 생성합니다.
$ oc create route reencrypt --service=<svc-name> --cert=tls.crt --key=tls.key --ca-cert=ca.crt --hostname=<hostname>