3.11. ID 및 권한 관리


이 섹션에서는 Red Hat OpenShift Dev Spaces의 ID 및 권한 부여 관리의 다양한 측면을 설명합니다.

3.11.1. Git 공급자의 OAuth 구성

참고

Red Hat OpenShift Dev Spaces에서 작업 공간 시작 시 개인 액세스 토큰을 강제로 새로 고치는 실험적 기능을 활성화하려면 다음과 같이 사용자 정의 리소스 구성을 수정합니다.

spec:
  components:
    cheServer:
      extraProperties:
        CHE_FORCE_REFRESH_PERSONAL_ACCESS_TOKEN: "true"

OpenShift Dev Spaces와 Git 공급자 간에 OAuth를 구성하여 사용자가 원격 Git 리포지토리에서 작업할 수 있습니다.

3.11.1.1. GitHub용 OAuth 2.0 구성

사용자가 GitHub에서 호스팅되는 원격 Git 리포지토리를 사용할 수 있도록 하려면 다음을 수행합니다.

  1. GitHub OAuth 앱(OAuth 2.0)을 설정합니다.
  2. GitHub OAuth 앱 시크릿을 적용합니다.
3.11.1.1.1. GitHub OAuth 앱 설정

OAuth 2.0을 사용하여 GitHub OAuth 앱을 설정합니다.

사전 요구 사항

  • GitHub에 로그인되어 있습니다.

프로세스

  1. https://github.com/settings/applications/new 로 이동합니다.
  2. 다음 값을 입력합니다.

    1. 애플리케이션 이름: <애플리케이션 이름>
    2. Homepage URL: https://<openshift_dev_spaces_fqdn>/
    3. Authorization callback URL: https://<openshift_dev_spaces_fqdn>/api/oauth/callback
  3. Register application을 클릭합니다.
  4. 새 클라이언트 시크릿 생성 을 클릭합니다.
  5. GitHub OAuth 앱 시크릿을 적용할 때 사용할 GitHub OAuth 클라이언트 ID 를 복사하고 저장합니다.
  6. GitHub OAuth 앱 시크릿을 적용할 때 사용할 GitHub OAuth 클라이언트 시크릿을 복사하고 저장합니다.
3.11.1.1.2. GitHub OAuth 앱 시크릿 적용

GitHub OAuth 앱 시크릿을 준비하고 적용합니다.

사전 요구 사항

  • GitHub OAuth 앱 설정이 완료되었습니다.
  • GitHub OAuth 앱을 설정할 때 생성된 다음 값이 준비됩니다.

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

프로세스

  1. 보안을 준비합니다.

    kind: Secret
    apiVersion: v1
    metadata:
      name: github-oauth-config
      namespace: openshift-devspaces 1
      labels:
        app.kubernetes.io/part-of: che.eclipse.org
        app.kubernetes.io/component: oauth-scm-configuration
      annotations:
        che.eclipse.org/oauth-scm-server: github
        che.eclipse.org/scm-server-endpoint: <github_server_url> 2
        che.eclipse.org/scm-github-disable-subdomain-isolation: 'false' 3
    type: Opaque
    stringData:
      id: <GitHub_OAuth_Client_ID> 4
      secret: <GitHub_OAuth_Client_Secret> 5
    1
    OpenShift Dev Spaces 네임스페이스입니다. 기본값은 openshift-devspaces 입니다.
    2
    조직에서 사용하는 GitHub 제품에 따라 다릅니다. GitHub.com 또는 GitHub Enterprise Cloud에서 리포지토리를 호스팅하는 경우 이 행을 생략하거나 기본 https://github.com 을 입력합니다. GitHub Enterprise Server에서 리포지토리를 호스팅하는 경우 GitHub Enterprise Server URL을 입력합니다.
    3
    비활성화된 하위 도메인 격리 옵션과 함께 GitHub Enterprise Server를 사용하는 경우 주석을 true 로 설정해야 합니다. 그러지 않으면 주석을 생략하거나 false 로 설정할 수 있습니다.
    4
    GitHub OAuth 클라이언트 ID.
    5
    GitHub OAuth 클라이언트 시크릿.
  2. 보안을 적용합니다.

    $ oc apply -f - <<EOF
    <Secret_prepared_in_the_previous_step>
    EOF
  3. 출력에서 Secret이 생성되었는지 확인합니다.

다른 GitHub 공급자에 대해 OAuth 2.0을 구성하려면 위의 단계를 반복하고 다른 이름으로 두 번째 GitHub OAuth 시크릿을 생성해야 합니다.

3.11.1.2. GitLab에 대한 OAuth 2.0 구성

사용자가 GitLab 인스턴스를 사용하여 호스팅되는 원격 Git 리포지토리에서 작업할 수 있도록 하려면 다음을 수행합니다.

  1. GitLab 인증 애플리케이션(OAuth 2.0)을 설정합니다.
  2. GitLab 인증 애플리케이션 시크릿을 적용합니다.
3.11.1.2.1. GitLab 인증 애플리케이션 설정

OAuth 2.0을 사용하여 GitLab 인증 애플리케이션을 설정합니다.

사전 요구 사항

  • GitLab에 로그인되어 있습니다.

프로세스

  1. avatar를 클릭하고 Edit profile Applications 로 이동합니다.
  2. 이름으로 OpenShift Dev Spaces입력합니다.
  3. Redirect URIhttps:// <openshift_dev_spaces_fqdn> /api/oauth/callback 을 입력합니다.
  4. ConfidentialExpire 액세스 토큰 확인란을 선택합니다.
  5. Scopes 에서 api,write_repository, openid 체크박스를 선택합니다.
  6. Save application 을 클릭합니다.
  7. GitLab 인증 애플리케이션 시크릿을 적용할 때 사용할 GitLab 애플리케이션 ID 를 복사하고 저장합니다.
  8. GitLab-authorized 애플리케이션 시크릿을 적용할 때 사용할 GitLab 클라이언트 시크릿을 복사하고 저장합니다.
3.11.1.2.2. GitLab 인증 애플리케이션 시크릿 적용

GitLab 인증 애플리케이션 시크릿을 준비하고 적용합니다.

사전 요구 사항

  • GitLab 인증 애플리케이션 설정이 완료되었습니다.
  • GitLab 인증 애플리케이션을 설정할 때 생성된 다음 값이 준비됩니다.

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

프로세스

  1. 보안을 준비합니다.

    kind: Secret
    apiVersion: v1
    metadata:
      name: gitlab-oauth-config
      namespace: openshift-devspaces 1
      labels:
        app.kubernetes.io/part-of: che.eclipse.org
        app.kubernetes.io/component: oauth-scm-configuration
      annotations:
        che.eclipse.org/oauth-scm-server: gitlab
        che.eclipse.org/scm-server-endpoint: <gitlab_server_url> 2
    type: Opaque
    stringData:
      id: <GitLab_Application_ID> 3
      secret: <GitLab_Client_Secret> 4
    1
    OpenShift Dev Spaces 네임스페이스입니다. 기본값은 openshift-devspaces 입니다.
    2
    GitLab 서버 URL 입니다. SAAS 버전에 https://gitlab.com 를 사용합니다.
    3
    GitLab 애플리케이션 ID 입니다.
    4
    GitLab 클라이언트 시크릿.
  2. 보안을 적용합니다.

    $ oc apply -f - <<EOF
    <Secret_prepared_in_the_previous_step>
    EOF
  3. 출력에서 Secret이 생성되었는지 확인합니다.

3.11.1.3. Bitbucket 서버에 대한 OAuth 2.0 구성

OAuth 2.0을 사용하여 사용자가 Bitbucket 서버에서 호스팅되는 원격 Git 리포지토리로 작업할 수 있습니다.

  1. Bitbucket 서버에서 OAuth 2.0 애플리케이션 링크를 설정합니다.
  2. Bitbucket 서버에 대한 애플리케이션 링크 시크릿을 적용합니다.

3.11.1.4. Bitbucket Cloud에 대한 OAuth 2.0 구성

사용자가 Bitbucket Cloud에서 호스팅되는 원격 Git 리포지토리에서 작업할 수 있습니다.

  1. Bitbucket Cloud에서 OAuth 소비자(OAuth 2.0)를 설정합니다.
  2. Bitbucket Cloud에 OAuth 소비자 시크릿을 적용합니다.
3.11.1.4.1. Bitbucket 클라우드에서 OAuth 소비자 설정

Bitbucket Cloud에서 OAuth 2.0에 대한 OAuth 소비자를 설정합니다.

사전 요구 사항

  • Bitbucket Cloud에 로그인되어 있습니다.

프로세스

  1. avatar를 클릭하고 모든 작업 공간 페이지로 이동합니다.
  2. 작업 영역을 선택하고 클릭합니다.
  3. 설정 OAuth 소비자 추가 소비자 로 이동합니다.
  4. 이름으로 OpenShift Dev Spaces입력합니다.
  5. 콜백 URLhttps:// <openshift_dev_spaces_fqdn> /api/oauth/callback 을 입력합니다.
  6. 권한 에서 모든 계정리포지토리 확인란을 선택하고 저장을 클릭합니다.
  7. 추가된 소비자를 확장한 다음 Bitbucket OAuth 소비자 시크릿을 적용할 때 사용할 Key 값을 복사하여 저장합니다.
  8. Bitbucket OAuth 소비자 시크릿을 적용할 때 사용할 Secret 값을 복사하고 저장합니다.
3.11.1.4.2. Bitbucket Cloud에 대한 OAuth 소비자 시크릿 적용

Bitbucket Cloud에 대한 OAuth 소비자 시크릿을 준비하고 적용합니다.

사전 요구 사항

  • OAuth 소비자는 Bitbucket Cloud에서 설정됩니다.
  • Bitbucket OAuth 소비자를 설정할 때 생성된 다음 값이 준비됩니다.

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

프로세스

  1. 보안을 준비합니다.

    kind: Secret
    apiVersion: v1
    metadata:
      name: bitbucket-oauth-config
      namespace: openshift-devspaces 1
      labels:
        app.kubernetes.io/part-of: che.eclipse.org
        app.kubernetes.io/component: oauth-scm-configuration
      annotations:
        che.eclipse.org/oauth-scm-server: bitbucket
    type: Opaque
    stringData:
      id: <Bitbucket_Oauth_Consumer_Key> 2
      secret: <Bitbucket_Oauth_Consumer_Secret> 3
    1
    OpenShift Dev Spaces 네임스페이스입니다. 기본값은 openshift-devspaces 입니다.
    2
    Bitbucket OAuth 소비자 키.
    3
    Bitbucket OAuth 소비자 시크릿.
  2. 보안을 적용합니다.

    $ oc apply -f - <<EOF
    <Secret_prepared_in_the_previous_step>
    EOF
  3. 출력에서 Secret이 생성되었는지 확인합니다.

3.11.1.5. Bitbucket 서버에 대한 OAuth 1.0 구성

사용자가 Bitbucket 서버에서 호스팅되는 원격 Git 리포지토리에서 작업할 수 있도록 하려면 다음을 수행합니다.

  1. Bitbucket 서버에서 애플리케이션 링크(OAuth 1.0)를 설정합니다.
  2. Bitbucket 서버에 대한 애플리케이션 링크 시크릿을 적용합니다.

3.11.1.6. Microsoft Azure DevOps Services용 OAuth 2.0 구성

사용자가 Microsoft Azure Repos에서 호스팅되는 원격 Git 리포지토리에서 작업할 수 있도록 하려면 다음을 수행합니다.

  1. Microsoft Azure DevOps Services OAuth App(OAuth 2.0)을 설정합니다.
  2. Microsoft Azure DevOps Services OAuth 앱 시크릿을 적용합니다.

3.11.1.6.1. Microsoft Azure DevOps Services OAuth 앱 설정

OAuth 2.0을 사용하여 Microsoft Azure DevOps Services OAuth 앱을 설정합니다.

사전 요구 사항

  • Microsoft Azure DevOps Services 에 로그인되어 있습니다.

    중요

    OAuth를 통한 타사 애플리케이션 액세스 는 조직에 대해 활성화됩니다. 조직의 애플리케이션 연결 및 보안 정책 변경을 참조하십시오.

    프로세스

    1. https://app.vsaex.visualstudio.com/app/register/.
    2. 다음 값을 입력합니다.

      1. 회사 이름:OpenShift Dev Spaces
      2. 애플리케이션 이름:OpenShift Dev Spaces
      3. Application website: https://<openshift_dev_spaces_fqdn>/
      4. Authorization callback URL: https://<openshift_dev_spaces_fqdn>/api/oauth/callback
    3. 인증 범위 선택에서 코드(읽기 및 쓰기) 를 선택합니다.
    4. 애플리케이션 생성을 클릭합니다.
    5. Microsoft Azure DevOps Services OAuth 앱 시크릿을 적용할 때 사용할 앱 ID 를 복사하고 저장합니다.
    6. 표시 를 클릭하여 클라이언트 시크릿 을 표시합니다.
    7. Microsoft Azure DevOps Services OAuth 앱 시크릿을 적용할 때 사용할 클라이언트 시크릿을 복사하고 저장합니다.

3.11.1.6.2. Microsoft Azure DevOps Services OAuth 앱 시크릿 적용

Microsoft Azure DevOps Services 시크릿을 준비하고 적용합니다.

사전 요구 사항

  • Microsoft Azure DevOps Services OAuth 앱 설정이 완료되었습니다.
  • Microsoft Azure DevOps 서비스 OAuth 앱을 설정할 때 생성된 다음 값이 준비됩니다.

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

프로세스

  1. 보안을 준비합니다.

    kind: Secret
    apiVersion: v1
    metadata:
      name: azure-devops-oauth-config
      namespace: openshift-devspaces1
      labels:
        app.kubernetes.io/part-of: che.eclipse.org
        app.kubernetes.io/component: oauth-scm-configuration
      annotations:
        che.eclipse.org/oauth-scm-server: azure-devops
    type: Opaque
    stringData:
      id: <Microsoft_Azure_DevOps_Services_OAuth_App_ID>2
      secret: <Microsoft_Azure_DevOps_Services_OAuth_Client_Secret>3
    1
    OpenShift Dev Spaces 네임스페이스입니다. 기본값은 openshift-devspaces 입니다.
    2
    Microsoft Azure DevOps Services OAuth 앱 ID.
    3
    Microsoft Azure DevOps Services OAuth 클라이언트 시크릿.
  2. 보안을 적용합니다.

    $ oc apply -f - <<EOF
    <Secret_prepared_in_the_previous_step>
    EOF
  3. 출력에서 Secret이 생성되었는지 확인합니다.
  4. OpenShift Dev Spaces 서버 구성 요소의 롤아웃이 완료될 때까지 기다립니다.

3.11.2. Dev Spaces 사용자에 대한 클러스터 역할 구성

해당 사용자에게 클러스터 역할을 추가하여 OpenShift Dev Spaces 사용자에게 더 많은 클러스터 권한을 부여할 수 있습니다.

사전 요구 사항

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

프로세스

  1. 사용자 역할 이름을 정의합니다.

    $ USER_ROLES=<name> 1
    1
    고유한 리소스 이름입니다.
  2. OpenShift Dev Spaces Operator가 배포된 네임스페이스를 찾습니다.

    $ OPERATOR_NAMESPACE=$(oc get pods -l app.kubernetes.io/component=devspaces-operator -o jsonpath={".items[0].metadata.namespace"} --all-namespaces)
  3. 필요한 역할을 생성합니다.

    $ kubectl apply -f - <<EOF
    kind: ClusterRole
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      name: ${USER_ROLES}
      labels:
        app.kubernetes.io/part-of: che.eclipse.org
    rules:
      - verbs:
          - <verbs> 1
        apiGroups:
          - <apiGroups> 2
        resources:
          - <resources> 3
    EOF
    1
    & lt;verbs > 로서 이 규칙에 포함된 모든 ResourceKinds 및 AttributeRestrictions에 적용되는 모든 Verbs를 나열합니다. * 를 사용하여 모든 동사를 표시할 수 있습니다.
    2
    & lt;apiGroups& gt; 로서 리소스를 포함하는 APIGroups의 이름을 지정합니다.
    3
    & lt;resources& gt; 로서 이 규칙이 적용되는 모든 리소스를 나열합니다. * 를 사용하여 모든 동사를 표시할 수 있습니다.
  4. OpenShift Dev Spaces Operator에 역할을 위임합니다.

    $ kubectl apply -f - <<EOF
    kind: ClusterRoleBinding
    apiVersion: rbac.authorization.k8s.io/v1
    metadata:
      name: ${USER_ROLES}
      labels:
        app.kubernetes.io/part-of: che.eclipse.org
    subjects:
      - kind: ServiceAccount
        name: devspaces-operator
        namespace: ${OPERATOR_NAMESPACE}
    roleRef:
      apiGroup: rbac.authorization.k8s.io
      kind: ClusterRole
      name: ${USER_ROLES}
    EOF
  5. che 서비스 계정에 역할을 위임하도록 OpenShift Dev Spaces Operator를 구성합니다.

    $ kubectl patch checluster devspaces \
      --patch '{"spec": {"components": {"cheServer": {"clusterRoles": ["'${USER_ROLES}'"]}}}}' \
      --type=merge -n openshift-devspaces
  6. 사용자에게 역할을 위임하도록 OpenShift Dev Spaces 서버를 구성합니다.

    $ kubectl patch checluster devspaces \
      --patch '{"spec": {"devEnvironments": {"user": {"clusterRoles": ["'${USER_ROLES}'"]}}}}' \
      --type=merge -n openshift-devspaces
  7. OpenShift Dev Spaces 서버 구성 요소의 롤아웃이 완료될 때까지 기다립니다.
  8. 사용자에게 로그아웃하고 로그인하여 새 역할을 적용하도록 요청합니다.

3.11.3. 고급 권한 부여 구성

OpenShift Dev Spaces에 액세스할 수 있는 사용자 및 그룹을 확인할 수 있습니다.

사전 요구 사항

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

프로세스

  1. CheCluster 사용자 정의 리소스를 구성합니다. 3.1.2절. “CLI를 사용하여 CheCluster 사용자 정의 리소스 구성”을 참조하십시오.

    spec:
      networking:
        auth:
          advancedAuthorization:
            allowUsers:
              - <allow_users> 1
            allowGroups:
              - <allow_groups> 2
            denyUsers:
              - <deny_users> 3
            denyGroups:
              - <deny_groups> 4
    1
    Red Hat OpenShift Dev Spaces에 액세스할 수 있는 사용자 목록입니다.
    2
    Red Hat OpenShift Dev Spaces에 액세스할 수 있는 사용자 그룹 목록(OpenShift Container Platform 전용).
    3
    사용자 목록은 Red Hat OpenShift Dev Spaces에 대한 액세스를 거부했습니다.
    4
    Red Hat OpenShift Dev Spaces 액세스는 거부된 사용자 그룹 목록입니다(OpenShift Container Platform만 해당).
  2. OpenShift Dev Spaces 서버 구성 요소의 롤아웃이 완료될 때까지 기다립니다.
참고

사용자가 OpenShift Dev Spaces에 액세스할 수 있도록 허용하려면 allowUsers 목록에 추가합니다. 또는 사용자가 멤버인 그룹을 선택하고 allowGroups 목록에 그룹을 추가합니다. OpenShift Dev Spaces에 대한 사용자 액세스를 거부하려면 denyUsers 목록에 추가합니다. 또는 사용자가 멤버인 그룹을 선택하고 denyGroups 목록에 그룹을 추가합니다. 사용자가 허용거부 목록 모두에 있는 경우 OpenShift Dev Spaces에 대한 액세스가 거부됩니다.

allowUsersallowGroups 가 비어 있으면 거부 목록에 있는 항목을 제외한 모든 사용자가 OpenShift Dev Spaces에 액세스할 수 있습니다. denyUsersdenyGroups 가 비어 있으면 허용 목록의 사용자만 OpenShift Dev Spaces에 액세스할 수 있습니다.

허용거부 목록이 모두 비어 있으면 모든 사용자가 OpenShift Dev Spaces에 액세스할 수 있습니다.

3.11.4. GDPR 준수로 사용자 데이터 제거

사용자는 일반 데이터 보호 규정(GDPR) 을 준수하여 OpenShift Container Platform에서 사용자의 데이터를 제거하여 개인 데이터를 삭제할 수 있는 권리를 행사할 수 있습니다. 다른 Kubernetes 인프라의 프로세스는 다를 수 있습니다. Red Hat OpenShift Dev Spaces 설치에 사용하는 공급자의 사용자 관리 모범 사례를 따르십시오.

주의

다음과 같이 사용자 데이터를 제거하는 것은 되돌릴 수 없습니다! 삭제된 모든 데이터는 삭제되고 복구할 수 없습니다!

사전 요구 사항

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

프로세스

  1. 다음 명령을 사용하여 OpenShift 클러스터의 모든 사용자를 나열합니다.

    $ oc get users
  2. 사용자 항목을 삭제합니다.
중요

사용자에게 연결된 리소스(예: 프로젝트, 역할 또는 서비스 계정)가 있는 경우 사용자를 삭제하기 전에 먼저 해당 리소스를 삭제해야 합니다.

$ oc delete user <username>
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

© 2024 Red Hat, Inc.