8.5. 브로커 인증
브로커는 브로커에 연결할 때 호출자가 각 요청에 대해 Basic Auth 또는 Bearer Auth 자격 증명을 제공해야 하는 인증을 지원합니다. curl
을 사용하면 다음과 같이 간단합니다.
-u <user_name>:<password>
-u <user_name>:<password>
또는
-h "Authorization: bearer <token>
-h "Authorization: bearer <token>
명령을 실행합니다. 서비스 카탈로그는 사용자 이름 및 암호 조합 또는 전달자 토큰이 포함된 시크릿을 사용하여 구성해야 합니다.
8.5.1. 기본 인증 링크 복사링크가 클립보드에 복사되었습니다!
기본 인증 사용을 활성화하려면 브로커 구성에서 다음을 설정합니다.
broker: ... auth: - type: basic enabled: true
broker:
...
auth:
- type: basic
enabled: true
8.5.1.1. 배포 템플릿 및 시크릿 링크 복사링크가 클립보드에 복사되었습니다!
일반적으로 브로커는 배포 템플릿에서 ConfigMap 을 사용하여 구성됩니다. 파일 구성과 동일한 방식으로 인증 구성을 제공합니다.
다음은 배포 템플릿의 예입니다.
auth: - type: basic enabled: ${ENABLE_BASIC_AUTH}
auth:
- type: basic
enabled: ${ENABLE_BASIC_AUTH}
Basic Auth(기본 인증)의 또 다른 부분은 브로커에 대해 인증하는 데 사용되는 사용자 이름과 암호입니다. 기본 인증 구현은 다양한 백엔드 서비스에서 지원할 수 있지만 현재 지원되는 구현은 비밀 에서 지원합니다. /var/run/asb_auth 위치의 볼륨 마운트를 통해 시크릿을 Pod에 삽입해야 합니다. 여기서 브로커가 사용자 이름과 암호를 읽습니다.
배포 템플릿에서 보안을 지정해야 합니다. 예를 들면 다음과 같습니다.
시크릿에는 사용자 이름과 암호가 포함되어야 합니다. 값은 base64로 인코딩되어야 합니다. 해당 항목의 값을 생성하는 가장 쉬운 방법은 echo
및 base64
명령을 사용하는 것입니다.
echo -n admin | base64
$ echo -n admin | base64
YWRtaW4=
- 1
- n
옵션은
매우 중요합니다.
이제 이 시크릿을 볼륨 마운트를 통해 Pod에 삽입해야 합니다. 이는 배포 템플릿에서도 구성됩니다.
그런 다음 volumes
섹션에서 보안을 마운트합니다.
volumes: ... - name: asb-auth-volume secret: secretName: asb-auth-secret
volumes:
...
- name: asb-auth-volume
secret:
secretName: asb-auth-secret
위의 경우 /var/run/asb-auth 에 있는 볼륨 마운트가 생성됩니다. 이 볼륨에는 두 개의 파일, 즉 asb-auth-secret 보안에서 작성한 사용자 이름과 암호가 있습니다.
8.5.1.2. 서비스 카탈로그 및 브로커 통신 구성 링크 복사링크가 클립보드에 복사되었습니다!
이제 브로커가 Basic Auth를 사용하도록 구성되었으므로 서비스 카탈로그에 브로커와 통신하는 방법을 알려야 합니다. 이 작업은 브로커 리소스의 authInfo
섹션에서 수행합니다.
다음은 서비스 카탈로그에서 브로커
리소스를 생성하는 예입니다. 사양은
브로커가 수신 대기 중인 URL을 서비스 카탈로그에 알려줍니다. authInfo
는 인증 정보를 얻기 위해 읽을 시크릿을 알려줍니다.
서비스 카탈로그의 v0.0.17부터 브로커 리소스 구성이 변경됩니다.