4.5.2.2. 수동으로 인증 구성
Reporting Operator에서 OAuth를 수동으로 구성하거나 비활성화하려면 MeteringConfig
리소스에서 spec.tls.enabled: false
를 설정해야 합니다.
이는 또한 Reporting Operator, Presto, Hive간의 모든 TLS 및 인증을 비활성화합니다. 이러한 리소스를 수동으로 설정해야 합니다.
다음 옵션을 구성하여 인증을 활성화할 수 있습니다. 인증을 사용하면 Reporting Operator Pod가 Pod에서 사이드카 컨테이너로 OpenShift 자동 프록시를 실행하도록 구성됩니다. 이렇게 하면 보고 API가 직접 노출되지 않도록 포트가 조정되지만 대신 자동 프록시 사이드카 컨테이너를 통해 프록시됩니다.
-
reporting-operator.spec.authProxy.enabled
-
reporting-operator.spec.authProxy.cookie.createSecret
-
reporting-operator.spec.authProxy.cookie.seed
reporting-operator.spec.authProxy.enabled
및 reporting-operator.spec.authProxy.cookie.createSecret
을 true
로 설정하고 reporting-operator.spec.authProxy.cookie.seed
를 32자 임의 문자열로 설정해야 합니다.
다음 명령을 사용하여 32자 임의 문자열을 생성할 수 있습니다.
$ openssl rand -base64 32 | head -c32; echo.
4.5.2.2.1. 토큰 인증
다음 옵션을 true
로 설정하면 REST API 보고에 대해 전달자 토큰을 사용한 인증이 활성화됩니다. 전달자 토큰은 서비스 계정 또는 사용자에서 가져올 수 있습니다.
-
reporting-operator.spec.authProxy.subjectAccessReview.enabled
-
reporting-operator.spec.authProxy.delegateURLs.enabled
인증이 활성화되면 다음 역할 중 하나를 사용하여 사용자 또는 서비스 계정의 보고 API를 쿼리하는 데 사용되는 전달자 토큰에 대한 액세스 권한이 있어야 합니다.
- report-exporter
- reporting-admin
- reporting-viewer
- metering-admin
- metering-viewer
Metering Operator는 역할 바인딩을 생성할 수 있으며 spec.permissions
섹션에 주체 목록을 지정하여 이러한 권한을 부여할 수 있습니다. 예를 들어 다음 advanced-auth.yaml
예제 구성을 참조하십시오.
apiVersion: metering.openshift.io/v1 kind: MeteringConfig metadata: name: "operator-metering" spec: permissions: # anyone in the "metering-admins" group can create, update, delete, etc any # metering.openshift.io resources in the namespace. # This also grants permissions to get query report results from the reporting REST API. meteringAdmins: - kind: Group name: metering-admins # Same as above except read only access and for the metering-viewers group. meteringViewers: - kind: Group name: metering-viewers # the default serviceaccount in the namespace "my-custom-ns" can: # create, update, delete, etc reports. # This also gives permissions query the results from the reporting REST API. reportingAdmins: - kind: ServiceAccount name: default namespace: my-custom-ns # anyone in the group reporting-readers can get, list, watch reports, and # query report results from the reporting REST API. reportingViewers: - kind: Group name: reporting-readers # anyone in the group cluster-admins can query report results # from the reporting REST API. So can the user bob-from-accounting. reportExporters: - kind: Group name: cluster-admins - kind: User name: bob-from-accounting reporting-operator: spec: authProxy: # htpasswd.data can contain htpasswd file contents for allowing auth # using a static list of usernames and their password hashes. # # username is 'testuser' password is 'password123' # generated htpasswdData using: `htpasswd -nb -s testuser password123` # htpasswd: # data: | # testuser:{SHA}y/2sYAj5yrQIN4TL0YdPdmGNKpc= # # change REPLACEME to the output of your htpasswd command htpasswd: data: | REPLACEME
또는 get
권한을 reports/export
에 부여하는 규칙이 있는 모든 역할을 사용할 수 있습니다. 즉, Reporting Operator의 네임스페이스에서 Report
리소스의 export
하위 리소스에 대한 get
액세스 권한을 의미합니다. 예: admin
및 cluster-admin
.
기본적으로 Reporting Operator 및 Metering Operator 서비스 계정에는 모두 이러한 권한이 있으며 해당 토큰은 인증에 사용할 수 있습니다.