6장. 작업 영역에서 인증 정보 및 구성 사용


작업 영역에서 인증 정보 및 구성을 사용할 수 있습니다.

이렇게 하려면 조직의 OpenShift Dev Spaces 인스턴스의 OpenShift 클러스터에 있는 Dev Workspace 컨테이너에 인증 정보 및 구성을 마운트합니다.

클러스터의 Dev Workspace Pod가 인증이 필요한 컨테이너 레지스트리에 액세스하도록 허용해야 하는 경우 Dev Workspace Pod에 대한 이미지 가져오기 보안 을 생성합니다.

마운트 프로세스에서는 표준 Kubernetes 마운트 메커니즘을 사용하며 기존 리소스에 추가 라벨 및 주석을 적용해야 합니다. 새 작업 영역을 시작하거나 기존 작업 영역을 다시 시작할 때 리소스가 마운트됩니다.

다양한 구성 요소에 대한 영구 마운트 지점을 생성할 수 있습니다.

6.1. 마운트 보안

기밀 데이터를 작업 공간에 마운트하려면 Kubernetes 보안을 사용합니다.

Kubernetes 보안을 사용하면 사용자 이름, 암호, SSH 키 쌍, 인증 토큰(예: AWS) 및 중요한 구성을 마운트할 수 있습니다.

조직의 OpenShift Dev Spaces 인스턴스의 OpenShift 클러스터에 있는 Dev Workspace 컨테이너에 Kubernetes 보안을 마운트합니다.

사전 요구 사항

  • 대상 OpenShift 클러스터에 대한 관리 권한이 있는 활성 oc 세션. CLI 시작하기를 참조하십시오.
  • 사용자 프로젝트에서 새 시크릿을 생성하거나 모든 Dev Workspace 컨테이너에 마운트할 기존 보안을 선택했습니다.

프로세스

  1. 시크릿을 마운트하는 데 필요한 레이블을 시크릿에 추가합니다.

    $ oc label secret <Secret_name> \
            controller.devfile.io/mount-to-devworkspace=true \
            controller.devfile.io/watch-secret=true
    Copy to Clipboard Toggle word wrap
  2. 선택 사항: 주석을 사용하여 시크릿 마운트 방법을 구성합니다.

    Expand
    표 6.1. 선택적 주석
    주석설명

    controller.devfile.io/mount-path:

    마운트 경로를 지정합니다.

    기본값은 /etc/secret/ <Secret_name>입니다.

    controller.devfile.io/mount-as:

    리소스를 마운트하는 방법( file,subpath 또는 env )을 지정합니다.

    기본값은 file 입니다.

    mount-as: 파일은 키와 값을 마운트 경로에 파일로 마운트합니다.

    mount-as: 하위 경로는 subpath 볼륨 마운트를 사용하여 마운트 경로 내에 키와 값을 마운트합니다.

    mount-as: env 는 모든 Dev Workspace 컨테이너에서 키와 값을 환경 변수로 마운트합니다.

예 6.1. 시크릿을 파일로 마운트

apiVersion: v1
kind: Secret
metadata:
  name: mvn-settings-secret
  labels:
    controller.devfile.io/mount-to-devworkspace: 'true'
    controller.devfile.io/watch-secret: 'true'
  annotations:
    controller.devfile.io/mount-path: '/home/user/.m2'
data:
  settings.xml: <Base64_encoded_content>
Copy to Clipboard Toggle word wrap

작업 영역을 시작하면 Dev Workspace 컨테이너에서 /home/user/.m2/settings.xml 파일을 사용할 수 있습니다.

Maven을 사용하면 settings.xml 파일의 사용자 지정 경로를 설정할 수 있습니다. 예를 들면 다음과 같습니다.

$ mvn --settings /home/user/.m2/settings.xml clean install
Copy to Clipboard Toggle word wrap

6.1.1. 이미지 가져오기 보안 생성

조직의 OpenShift Dev Spaces 인스턴스의 OpenShift 클러스터에 있는 Dev Workspace Pod가 인증이 필요한 컨테이너 레지스트리에 액세스할 수 있도록 하려면 이미지 가져오기 보안을 생성합니다.

oc 또는 .dockercfg 파일 또는 config.json 파일을 사용하여 이미지 가져오기 보안을 생성할 수 있습니다.

6.1.1.1. oc를 사용하여 이미지 가져오기 보안 생성

사전 요구 사항

  • 대상 OpenShift 클러스터에 대한 관리 권한이 있는 활성 oc 세션. CLI 시작하기를 참조하십시오.

프로세스

  1. 사용자 프로젝트에서 개인 컨테이너 레지스트리 세부 정보 및 인증 정보를 사용하여 이미지 가져오기 보안을 생성합니다.

    $ oc create secret docker-registry <Secret_name> \
        --docker-server=<registry_server> \
        --docker-username=<username> \
        --docker-password=<password> \
        --docker-email=<email_address>
    Copy to Clipboard Toggle word wrap
  2. 이미지 가져오기 보안에 다음 라벨을 추가합니다.

    $ oc label secret <Secret_name> controller.devfile.io/devworkspace_pullsecret=true controller.devfile.io/watch-secret=true
    Copy to Clipboard Toggle word wrap

6.1.1.2. .dockercfg 파일에서 이미지 가져오기 보안 생성

프라이빗 컨테이너 레지스트리의 인증 정보를 .dockercfg 파일에 이미 저장한 경우 해당 파일을 사용하여 이미지 가져오기 보안을 생성할 수 있습니다.

사전 요구 사항

  • 대상 OpenShift 클러스터에 대한 관리 권한이 있는 활성 oc 세션. CLI 시작하기를 참조하십시오.
  • base64 명령줄 툴은 사용 중인 운영 체제에 설치됩니다.

프로세스

  1. .dockercfg 파일을 Base64로 인코딩합니다.

    $ cat .dockercfg | base64 | tr -d '\n'
    Copy to Clipboard Toggle word wrap
  2. 사용자 프로젝트에 새 OpenShift 보안을 생성합니다.

    apiVersion: v1
    kind: Secret
    metadata:
      name: <Secret_name>
      labels:
        controller.devfile.io/devworkspace_pullsecret: 'true'
        controller.devfile.io/watch-secret: 'true'
    data:
      .dockercfg: <Base64_content_of_.dockercfg>
    type: kubernetes.io/dockercfg
    Copy to Clipboard Toggle word wrap
  3. 보안을 적용합니다.

    $ oc apply -f - <<EOF
    <Secret_prepared_in_the_previous_step>
    EOF
    Copy to Clipboard Toggle word wrap

6.1.1.3. config.json 파일에서 이미지 가져오기 보안 생성

개인 컨테이너 레지스트리에 대한 인증 정보를 $HOME/.docker/config.json 파일에 이미 저장한 경우 해당 파일을 사용하여 이미지 가져오기 보안을 생성할 수 있습니다.

사전 요구 사항

  • 대상 OpenShift 클러스터에 대한 관리 권한이 있는 활성 oc 세션. CLI 시작하기를 참조하십시오.
  • base64 명령줄 툴은 사용 중인 운영 체제에 설치됩니다.

프로세스

  1. $HOME/.docker/config.json 파일을 Base64로 인코딩합니다.

    $ cat config.json | base64 | tr -d '\n'
    Copy to Clipboard Toggle word wrap
  2. 사용자 프로젝트에 새 OpenShift 보안을 생성합니다.

    apiVersion: v1
    kind: Secret
    metadata:
      name: <Secret_name>
      labels:
        controller.devfile.io/devworkspace_pullsecret: 'true'
        controller.devfile.io/watch-secret: 'true'
    data:
      .dockerconfigjson: <Base64_content_of_config.json>
    type: kubernetes.io/dockerconfigjson
    Copy to Clipboard Toggle word wrap
  3. 보안을 적용합니다.

    $ oc apply -f - <<EOF
    <Secret_prepared_in_the_previous_step>
    EOF
    Copy to Clipboard Toggle word wrap

6.1.2. Git-provider 액세스 토큰 사용

GitHub, GitLab, Bitbucket 또는 Microsoft Azure Repos에 대한 OAuth는 조직의 OpenShift Dev Spaces 인스턴스 관리자가 구성해야 합니다. 관리자가 OpenShift Dev Spaces 사용자에 대해 구성할 수 없는 경우 개인 액세스 토큰을 사용하는 해결 방법이 있습니다. OpenShift Dev Spaces 대시보드의 사용자 환경 설정 페이지에서 개인 액세스 토큰을 구성할 수 있습니다. https:// <openshift_dev_spaces_fqdn> /dashboard/#/user-preferences?tab=personal-access-tokens, 또는 네임스페이스의 Kubernetes 시크릿으로 수동으로 적용할 수 있습니다.

액세스 토큰을 Secret으로 마운트하면 OpenShift Dev Spaces Server가 리포지토리의 /.che/.vscode 폴더에 대한 액세스를 포함하여 작업 공간 생성 중에 복제된 원격 리포지토리에 액세스할 수 있습니다.

조직의 OpenShift Dev Spaces 인스턴스의 OpenShift 클러스터의 사용자 프로젝트에 보안을 적용합니다.

시크릿을 적용한 후 GitHub, GitLab, Bitbucket Server 또는 Microsoft Azure Repos에서 호스팅되는 개인 Git 리포지토리 복제를 사용하여 작업 영역을 생성할 수 있습니다.

Git 공급자당 여러 access-token 시크릿을 생성하고 적용할 수 있습니다. 사용자 프로젝트의 각 시크릿을 적용해야 합니다.

사전 요구 사항

  • 클러스터에 로그인했습니다.

    작은 정보

    OpenShift에서 oc 명령줄 툴을 사용하여 클러스터에 로그인할 수 있습니다.

    $ oc login https://<openshift_dev_spaces_fqdn> --username=<my_user>

프로세스

  1. Git 공급자의 웹 사이트에서 액세스 토큰을 생성합니다.

    중요

    개인 액세스 토큰은 민감한 정보이며 기밀로 유지되어야 합니다. 암호처럼 취급합니다. 인증에 문제가 있는 경우 올바른 토큰을 사용하고 있으며 리포지토리 복제에 적절한 권한이 있는지 확인합니다.

    1. 컴퓨터에서 로컬로 터미널을 엽니다.
    2. 개인 액세스 토큰을 사용하여 리포지토리를 복제하려면 git 명령을 사용합니다. git 명령의 형식은 Git 공급자에 따라 다릅니다. 예를 들어 다음 명령을 사용하여 GitHub 개인 액세스 토큰 확인을 수행할 수 있습니다.
    git clone https://<PAT>@github.com/username/repo.git
    Copy to Clipboard Toggle word wrap

    & lt;PAT >를 개인 액세스 토큰으로 바꾸고 username/repo 를 적절한 리포지토리 경로로 바꿉니다. 토큰이 유효하고 필요한 권한이 있는 경우 복제 프로세스에 성공해야 합니다. 그렇지 않으면 잘못된 개인 액세스 토큰, 사용 권한이 부족하거나 기타 문제가 있음을 나타냅니다.

    중요

    GitHub Enterprise Cloud의 경우 조직 내에서 토큰을 사용할 수 있는 권한이 있는지 확인합니다.

  2. 웹 브라우저에서 https:// <openshift_dev_spaces_fqdn> /api/user/id 로 이동하여 OpenShift Dev Spaces 사용자 ID를 가져옵니다.
  3. 새 OpenShift 시크릿을 준비합니다.

    kind: Secret
    apiVersion: v1
    metadata:
      name: personal-access-token-<your_choice_of_name_for_this_token>
      labels:
        app.kubernetes.io/component: scm-personal-access-token
        app.kubernetes.io/part-of: che.eclipse.org
      annotations:
        che.eclipse.org/che-userid: <devspaces_user_id>
    1
    
        che.eclipse.org/scm-personal-access-token-name: <git_provider_name>
    2
    
        che.eclipse.org/scm-url: <git_provider_endpoint>
    3
    
        che.eclipse.org/scm-organization: <git_provider_organization>
    4
    
    stringData:
      token: <Content_of_access_token>
    type: Opaque
    Copy to Clipboard Toggle word wrap
    1
    OpenShift Dev Spaces 사용자 ID입니다.
    2
    Git 공급자 이름: github 또는 gitlab 또는 bitbucket-server 또는 azure-devops.
    3
    Git 공급자 URL입니다.
    4
    이 행은 azure-devops: Azure DevOps Server가 사용되는 경우 Git 공급자 사용자 조직 또는 컬렉션에만 적용할 수 있습니다.
  4. https:// <openshift_dev_spaces_fqdn> /api/kubernetes/namespace 를 방문하여 OpenShift Dev Spaces 사용자 네임스페이스를 이름으로 가져옵니다.
  5. 클러스터의 OpenShift Dev Spaces 사용자 네임스페이스로 전환합니다.

    작은 정보

    On OpenShift:

    • oc 명령줄 툴에서 현재 클러스터에 있는 네임스페이스를 반환할 수 있습니다. 현재 네임스페이스를 확인하는 데 사용할 수 있습니다.

      $ oc project

    • 필요한 경우 명령줄에서 OpenShift Dev Spaces 사용자 네임스페이스로 전환할 수 있습니다.

      $ oc project &lt ;your_user_namespace>

  6. 시크릿을 적용합니다.

    작은 정보

    OpenShift에서는 oc 명령줄 툴을 사용할 수 있습니다.

    $ oc apply -f - <<EOF
    <Secret_prepared_in_step_5>
    EOF
    Copy to Clipboard Toggle word wrap
중요

Azure DevOps Server를 사용하는 경우 다음 섹션을 사용하여 작업 공간의 gitconfig 도 수정해야 합니다.

[http]
    extraheader = "Authorization: Basic <base64-encoded(:personal-access-token)>"
Copy to Clipboard Toggle word wrap

키-값 쌍을 생성하려면 다음 명령을 사용합니다.

echo -n "extraheader = \"Authorization: Basic "$(printf ":%s" <personal access token> | base64)\"
Copy to Clipboard Toggle word wrap

자세한 내용은 설명서 페이지를 참조하십시오.

추가 헤더 구성은 Azure Devops Server에 대한 원격 git 작업에 필요합니다(예: git clone ). 이 인증 방법은 git 인증 정보 저장소보다 우선 순위가 높으므로 다른 Git 공급자에 대한 원격 작업이 실패합니다.

검증

  1. Git 공급자가 호스팅하는 원격 Git 리포지토리의 URL을 사용하여 새 작업 공간을 시작합니다.
  2. 일부 변경 사항을 수행하고 작업 영역에서 원격 Git 리포지토리로 내보냅니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat