13.7. 사용자 에이전트와 CLI 버전 불일치 방지
OpenShift Container Platform은 애플리케이션 개발자의 CLI가 OpenShift Container Platform API에 액세스하지 못하도록 하는 데 사용할 수 있는 사용자 에이전트를 구현합니다.
OpenShift Container Platform CLI의 사용자 에이전트는 OpenShift Container Platform 내의 값 집합으로 구성됩니다.
<command>/<version>+<git_commit> (<platform>/<architecture>) <client>/<git_commit>
<command>/<version>+<git_commit> (<platform>/<architecture>) <client>/<git_commit>
예를 들어 다음과 같은 경우를 예로 들 수 있습니다.
-
<command> =
oc
-
<version> = 클라이언트 버전입니다. 예:
v3.3.0
/api
의 쿠버네티스 API에 대한 요청은 쿠버네티스 버전을 수신하고,/oapi
의 OpenShift Container Platform API에 대한 요청은 OpenShift Container Platform 버전(oc version
에 따라 지정됨)을 수신합니다. -
<platform> =
linux
-
<architecture> =
amd64
-
<client> =
/api
의 쿠버네티스 API에 대한 요청인지 아니면/oapi
의 OpenShift Container Platform API에 대한 요청인지에 따라openshift
또는kubernetes
-
<git_commit> = 클라이언트 버전의 Git 커밋(예:
f034127
)
사용자 에이전트는 다음과 같습니다.
oc/v3.3.0+f034127 (linux/amd64) openshift/f034127
oc/v3.3.0+f034127 (linux/amd64) openshift/f034127
마스터 구성 파일 /etc/origin/master/master-config.yaml 에서 사용자 에이전트를 구성해야 합니다. 구성을 적용하려면 API 서버를 다시 시작하십시오.
/usr/local/bin/master-restart api
$ /usr/local/bin/master-restart api
OpenShift Container Platform 관리자는 마스터 구성의 userAgentMatching
구성 설정을 사용하여 클라이언트가 API에 액세스하지 못하도록 할 수 있습니다. 따라서 클라이언트가 특정 라이브러리 또는 바이너리를 사용하는 경우 API에 액세스할 수 없게 됩니다.
다음 사용자 에이전트 예제에서는 Kubernetes 1.2 클라이언트 바이너리, OpenShift Origin 1.1.3 바이너리 및 POST 및 PUT httpVerbs 를 거부합니다.
관리자는 예상 클라이언트와 정확히 일치하지 않는 클라이언트를 거부할 수도 있습니다.
허용된 클라이언트 집합에 포함되는 클라이언트를 거부하려면 deniedClients 및
값을 함께 사용합니다. 다음 예제에서는 1.13을 제외한 모든 1.X 클라이언트 바이너리를 허용합니다.
requiredClients
클라이언트의 사용자 에이전트가 구성이 일치하지 않으면 오류가 발생합니다. 변경 요청이 일치하는지 확인하려면 허용 목록을 적용합니다. 규칙은 특정 동사에 매핑되므로 변경 요청을 금지하는 동시에 요청을 변경하지 않을 수 있습니다.