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>
Copy to Clipboard Toggle word wrap

예를 들어 다음과 같은 경우를 예로 들 수 있습니다.

  • <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
Copy to Clipboard Toggle word wrap

마스터 구성 파일 /etc/origin/master/master-config.yaml 에서 사용자 에이전트를 구성해야 합니다. 구성을 적용하려면 API 서버를 다시 시작하십시오.

$ /usr/local/bin/master-restart api
Copy to Clipboard Toggle word wrap

OpenShift Container Platform 관리자는 마스터 구성의 userAgentMatching 구성 설정을 사용하여 클라이언트가 API에 액세스하지 못하도록 할 수 있습니다. 따라서 클라이언트가 특정 라이브러리 또는 바이너리를 사용하는 경우 API에 액세스할 수 없게 됩니다.

다음 사용자 에이전트 예제에서는 Kubernetes 1.2 클라이언트 바이너리, OpenShift Origin 1.1.3 바이너리 및 POST 및 PUT httpVerbs 를 거부합니다.

policyConfig:
  userAgentMatchingConfig:
    defaultRejectionMessage: "Your client is too old.  Go to https://example.org to update it."
    deniedClients:
    - regex: '\w+/v(?:(?:1\.1\.1)|(?:1\.0\.1)) \(.+/.+\) openshift/\w{7}'
    - regex: '\w+/v(?:1\.1\.3) \(.+/.+\) openshift/\w{7}'
      httpVerbs:
      - POST
      - PUT
    - regex: '\w+/v1\.2\.0 \(.+/.+\) kubernetes/\w{7}'
      httpVerbs:
      - POST
      - PUT
    requiredClients: null
Copy to Clipboard Toggle word wrap

관리자는 예상 클라이언트와 정확히 일치하지 않는 클라이언트를 거부할 수도 있습니다.

policyConfig:
  userAgentMatchingConfig:
    defaultRejectionMessage: "Your client is too old.  Go to https://example.org to update it."
    deniedClients: []
    requiredClients:
    - regex: '\w+/v1\.1\.3 \(.+/.+\) openshift/\w{7}'
    - regex: '\w+/v1\.2\.0 \(.+/.+\) kubernetes/\w{7}'
      httpVerbs:
      - POST
      - PUT
Copy to Clipboard Toggle word wrap

허용된 클라이언트 집합에 포함되는 클라이언트를 거부하려면 deniedClients 및 requiredClients 값을 함께 사용합니다. 다음 예제에서는 1.13을 제외한 모든 1.X 클라이언트 바이너리를 허용합니다.

policyConfig:
  userAgentMatchingConfig:
    defaultRejectionMessage: "Your client is too old.  Go to https://example.org to update it."
    deniedClients:
    - regex: '\w+/v1\.13.0\+\w{7} \(.+/.+\) openshift/\w{7}'
    - regex: '\w+/v1\.13.0\+\w{7} \(.+/.+\) kubernetes/\w{7}'
    requiredClients:
    - regex: '\w+/v1\.[1-9][1-9].[0-9]\+\w{7} \(.+/.+\) openshift/\w{7}'
    - regex: '\w+/v1\.[1-9][1-9].[0-9]\+\w{7} \(.+/.+\) kubernetes/\w{7}'
Copy to Clipboard Toggle word wrap
참고

클라이언트의 사용자 에이전트가 구성이 일치하지 않으면 오류가 발생합니다. 변경 요청이 일치하는지 확인하려면 허용 목록을 적용합니다. 규칙은 특정 동사에 매핑되므로 변경 요청을 금지하는 동시에 요청을 변경하지 않을 수 있습니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat