로그인

이 페이지에서는 Google Distributed Cloud (GDC) 에어 갭 내에서 워크로드와 리소스에 액세스하고 이를 관리하는 방법을 설명합니다. 인증, 영역 및 전역 리소스의 kubeconfig 파일 생성, 세션 비활성 관리 방법을 설명합니다. 이러한 프로세스를 이해하면 프로젝트와 워크로드에 안전하고 안정적으로 액세스할 수 있습니다.

이 페이지는 GDC 리소스를 사용하려는 플랫폼 관리자 그룹 (예: IT 관리자) 또는 애플리케이션 운영자 그룹 (예: 애플리케이션 개발자)의 사용자를 대상으로 합니다. 자세한 내용은 GDC 오프라인 문서의 대상을 참고하세요.

GDC 콘솔, gdcloud CLI 또는 kubectl CLI를 사용하여 워크로드에 액세스할 수 있습니다.

액세스 권한을 위해 계정 인증

GDC 콘솔 또는 클러스터에 로그인하려면 다음 단계를 따르세요.

콘솔

새 브라우저 탭에서 다음 URL을 열어 Distributed Cloud 사용자 인터페이스 (UI)에 액세스합니다.

https://GDC_URL

GDC_URL을 인프라 운영자 (IO)가 제공하는 Distributed Cloud에 액세스하는 데 사용하는 도메인 이름으로 바꿉니다. 처음으로 URL을 열면 인프라 운영자 (IO)가 페이지를 구성한 경우 Distributed Cloud가 ID 공급업체 로그인 페이지로 리디렉션합니다.

예를 들어 다음 이미지는 org-1라는 조직의 콘솔 UI에 로그인합니다.

org-1 프로젝트의 시작 화면을 보여주는 콘솔 UI

CLI

gdcloud CLI에 로그인할 때 gdcloud auth login 명령어를 사용하여 gdcloud CLI에 대해 주 구성원을 인증합니다. gcloud CLI는 Google Cloud 리소스 및 서비스 관리를 위해 인증 및 승인에 이 주 구성원을 사용합니다.

로그인하기 전에 다음 사항을 확인하세요.

  • gdcloud CLI 바이너리를 다운로드하고 시스템에 설치합니다. 자세한 내용은 gdcloud CLI 다운로드를 참고하세요.
  • gdcloud CLI 기본 구성을 설정하고 초기화합니다. 로그인 구성 엔드포인트를 가져오는 데 사용되는 올바른 조직 URL을 설정해야 합니다. 자세한 내용은 gdcloud CLI 설치를 참고하세요.
  • 인증 플러그인 gdcloud-k8s-auth-plugin을 설치합니다. 자세한 내용은 gdcloud CLI 인증을 참고하세요.

관리 API 서버 또는 Kubernetes 클러스터에 로그인하려면 다음 단계를 완료하세요.

  • 관리 API 서버:
  1. 관리 API 서버 kubeconfig 파일을 저장할 경로를 내보냅니다.

    export KUBECONFIG=MANAGEMENT_API_SERVER
    

    MANAGEMENT_API_SERVER를 kubeconfig 파일을 저장할 디렉터리의 경로로 바꿉니다.

  2. gdcloud CLI 인스턴스를 인증하여 로그인합니다. 인증에는 두 가지 방법이 있습니다.

    • 표준 브라우저 로그인: 브라우저에서 로그인할 때 이 인증 흐름을 사용합니다.

      gdcloud auth login
      
    • 보조 기기 로그인: 기본 기기에 브라우저가 없는 경우 이 인증 흐름을 사용합니다. 이 흐름은 브라우저 액세스 권한이 없는 기본 기기에서 로그인을 시작하고 브라우저 액세스 권한이 있는 보조 기기에서 로그인을 계속합니다.

      브라우저가 없는 기본 기기에서 로그인을 시작합니다.

      gdcloud auth login --no-browser
      

      KUBECONFIG 환경 변수가 조직의 모든 API 서버 및 클러스터의 kubeconfig 파일로 업데이트됩니다. KUBECONFIG 변수가 설정되지 않은 경우 kubectl CLI는 $HOME/.kube/config에 저장된 기본 kubeconfig 파일을 사용합니다.

      kubeconfig 파일 편집을 건너뛰려면 명령어에 --skip-kubeconfig-update 플래그를 추가합니다. 예를 들면 다음과 같습니다.

      gdcloud auth login --no-browser --skip-kubeconfig-update
      

      출력된 gdcloud CLI 명령어 출력을 복사하여 브라우저 액세스 권한이 있는 머신에서 실행합니다.

  3. 웹페이지의 안내에 따라 로그인 절차를 완료합니다.

    로그인이 완료되면 브라우저에 인증이 완료되었습니다. 이 창을 닫아 주세요.

  4. 터미널에 표시된 안내를 따릅니다. 로그인에 성공하면 터미널에 로그인되었습니다라는 메시지가 표시됩니다.

  • Kubernetes 클러스터:
  1. gdcloud CLI 인스턴스를 인증하여 로그인합니다. 인증에는 두 가지 방법이 있습니다.

    • 표준 브라우저 로그인: 브라우저에서 로그인할 때 이 인증 흐름을 사용합니다.

      gdcloud auth login
      
    • 보조 기기 로그인: 기본 기기에 브라우저가 없는 경우 이 인증 흐름을 사용합니다. 이 흐름은 브라우저 액세스 권한이 없는 기본 기기에서 로그인을 시작하고 브라우저 액세스 권한이 있는 보조 기기에서 로그인을 계속합니다.

      1. 브라우저가 없는 기본 기기에서 로그인을 시작합니다.

        gdcloud auth login --no-browser
        

        기본 기기의 명령어는 c단계에서 보조 기기에서 실행해야 하는 다른 gdcloud 명령어를 출력합니다.

      2. 1단계를 반복하여 보조 기기에서 인증서를 다운로드합니다.

      3. 기본 기기에 인쇄된 명령어를 입력하여 보조 기기에서 로그인을 완료합니다(a단계).

    이 작업은 구성된 ID 공급업체 (IdP)에 로그인하기 위해 브라우저를 엽니다. 초기 gdcloud CLI 설정 중에 설정한 사용자 및 비밀번호를 제공하여 로그인합니다.

  2. 사용자 ID kubeconfig 파일을 변수로 내보냅니다.

    export KUBECONFIG=/tmp/CLUSTER_NAME-ZONE-kubeconfig-with-user-identity.yaml
    
  3. 사용자 ID로 영역 클러스터의 kubeconfig 파일을 생성합니다.

    gdcloud clusters get-credentials CLUSTER_NAME --zone ZONE
    

    ZONE을 영역 이름으로 바꿉니다.

    사용자 ID로 kubeconfig 파일이 생성됩니다. 다음 YAML 파일은 예시를 보여줍니다.

    apiVersion: v1
    clusters:
    - cluster:
      certificate-authority-data: <REDACTED>
      server: https://10.200.0.32:443
    name: cluster-name
    contexts:
    - context:
      cluster: cluster-name
      user: cluster-name-anthos-default-user
    name: cluster-name-cluster-name-anthos-default-user
    current-context: cluster-name-cluster-name-anthos-default-user
    kind: Config
    preferences: {}
    users:
    - name: cluster-name-anthos-default-user
    user:
      exec:
        apiVersion: client.authentication.k8s.io/v1
        args:
        - --audience=root-admin
        command: gdcloud-k8s-auth-plugin
        env: null
        installHint: Run 'gdcloud components install gdcloud-k8s-auth-plugin' to use plugin
        interactiveMode: Never
        provideClusterInfo: false
    
  4. 클러스터에 액세스할 수 있는지 확인하려면 생성된 kubeconfig 파일로 사용자 ID를 사용하여 로그인합니다.

    kubectl --kubeconfig /tmp/admin-kubeconfig-with-user-identity.yaml version
    

로그아웃

GDC 콘솔에서 로그아웃하려면 다음 단계를 따르세요.

콘솔

메뉴 바에서 로그아웃을 클릭합니다.

CLI

CLI에서 로그아웃합니다.

gdcloud auth revoke

kubeconfig 파일 수동 생성

KRM API를 직접 호출하여 kubectl CLI로 리소스를 관리하는 경우 관리하는 리소스 유형에 따라 리소스를 호스팅하는 클러스터 또는 API 서버의 kubeconfig 파일을 생성해야 합니다.

영역 리소스를 배포할 영역 또는 전역 리소스의 전역 API 서버를 결정하려면 GDC 유니버스 구성도 알고 있어야 합니다. 자세한 내용은 전역 및 영역 API 서버를 참고하세요.

조작하려는 리소스가 전역 리소스인지 영역 리소스인지 확인합니다. 잘 모르겠다면 리소스 전용 문서를 참고하세요.

리소스 유형에 따라 해당 설정을 완료합니다.

영역 관리 API 서버 리소스

영역별 관리 API 서버의 kubeconfig 파일을 생성하려면 다음 단계를 완료하세요.

  1. 사용 가능한 모든 영역을 보려면 다음을 실행하세요.

    gdcloud zones list
    

    커스텀 리소스를 호스팅하는 영역의 이름을 기록해 둡니다.

  2. ZONE 환경 변수를 영역 리소스를 호스팅하는 영역으로 설정합니다.

    export ZONE="ZONE"
    

    ZONE을 영역 이름으로 바꿉니다.

  3. MANAGEMENT_API_SERVER 환경 변수를 설정합니다.

    export MANAGEMENT_API_SERVER="ORG_NAME-admin"
    

    ORG_NAME을 조직 이름(예: org-1)으로 바꿉니다.

  4. 타겟팅된 영역의 관리 API 서버 kubeconfig 파일을 생성하고 사용자 인증 정보를 검증합니다.

    export KUBECONFIG=${HOME}/${MANAGEMENT_API_SERVER:?}-kubeconfig.yaml
    rm ${KUBECONFIG:?}
    gdcloud clusters get-credentials ${MANAGEMENT_API_SERVER:?} --zone ${ZONE:?}
    [[ $(kubectl config current-context) == *${MANAGEMENT_API_SERVER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
    

    rm ${KUBECONFIG:?} 명령어는 홈 디렉터리의 기존 kubeconfig 파일을 삭제합니다. 새 kubeconfig 파일을 생성하면 기존 파일이 덮어쓰여집니다. 기존 파일을 덮어쓰거나 삭제하지 않으려면 다른 안전한 위치에 백업하세요.

영역 Kubernetes 클러스터 리소스

다음 단계를 완료하여 영역 Kubernetes 클러스터의 kubeconfig 파일을 생성합니다.

  1. 사용 가능한 모든 영역을 보려면 다음을 실행하세요.

    gdcloud zones list
    

    커스텀 리소스를 호스팅하는 영역의 이름을 기록해 둡니다.

  2. ZONE 환경 변수를 Kubernetes 클러스터를 호스팅하는 영역으로 설정합니다.

    export ZONE="ZONE"
    

    ZONE을 영역 이름으로 바꿉니다.

  3. KUBERNETES_CLUSTER 환경 변수를 설정합니다.

    export KUBERNETES_CLUSTER="KUBERNETES_CLUSTER_NAME"
    

    KUBERNETES_CLUSTER_NAME을 Kubernetes 클러스터 이름으로 바꿉니다.

  4. 타겟팅된 영역 변수에 대해 Kubernetes 클러스터 kubeconfig 파일을 생성하고 사용자 인증 정보를 검증합니다.

    export KUBECONFIG=${HOME}/${KUBERNETES_CLUSTER:?}-kubeconfig.yaml
    rm ${KUBECONFIG:?}
    gdcloud clusters get-credentials ${KUBERNETES_CLUSTER:?} --zone ${ZONE:?}
    [[ $(kubectl config current-context) == *${KUBERNETES_CLUSTER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
    

    rm ${KUBECONFIG:?} 명령어는 홈 디렉터리의 기존 kubeconfig 파일을 삭제합니다. 새 kubeconfig 파일을 생성하면 기존 파일이 덮어쓰여집니다. 기존 파일을 덮어쓰거나 삭제하지 않으려면 다른 안전한 위치에 백업하세요.

전역 API 서버 리소스

다음 단계에 따라 전역 API 서버의 kubeconfig 파일을 생성하세요.

  1. GLOBAL_API_SERVER 환경 변수를 설정합니다.

    export GLOBAL_API_SERVER="global-api"
    
  2. 전역 API 서버 kubeconfig 파일을 생성하고 사용자 인증 정보를 검증합니다.

    export KUBECONFIG=${HOME}/${GLOBAL_API_SERVER:?}-kubeconfig.yaml
    rm ${KUBECONFIG:?}
    gdcloud clusters get-credentials ${GLOBAL_API_SERVER:?}
    [[ $(kubectl config current-context) == *${GLOBAL_API_SERVER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
    

    rm ${KUBECONFIG:?} 명령어는 홈 디렉터리의 기존 kubeconfig 파일을 삭제합니다. 새 kubeconfig 파일을 생성하면 기존 파일이 덮어쓰여집니다. 기존 파일을 덮어쓰거나 삭제하지 않으려면 다른 안전한 위치에 백업하세요.

세션 비활성 로그아웃

세션에서 15분 이상 활동이 없으면 GDC 콘솔과 gdcloud CLI에서 로그아웃됩니다. Distributed Cloud는 열려 있는 세션에서 커서나 키보드 움직임과 같은 활성 참여가 없는 기간을 세션 비활성으로 간주합니다. 활성 세션은 사용자 활동이 있는 경우 최대 12시간 동안 지속됩니다.

콘솔

세션 비활성 상태의 경우 GDC 콘솔에서 로그아웃됩니다. GDC 콘솔에서 비활성으로 인해 로그아웃되기 2분 전에 로그아웃을 경고하는 대화상자가 표시됩니다.

비활성으로 인해 사용자를 로그아웃하기 전 99초의 타이머가 있는 대화상자를 보여주는 콘솔 UI

활동이 없어 로그아웃되면 다음 화면이 표시됩니다.

세션 로그아웃에 관한 텍스트가 포함된 배너가 있는 로그인 화면을 보여주는 콘솔 UI: &#39;세션이 너무 오랫동안 비활성 상태여서 시스템에서 로그아웃되었습니다. 다시 로그인하거나 관리자에게 문의하여 도움을 받으시기 바랍니다.&#39;

GDC 콘솔에 다시 로그인하려면 ID 공급업체를 선택하고 로그인 사용자 인증 정보를 추가합니다. 모니터링 대시보드와 같은 서비스를 사용하고 있는데 비활성으로 인해 GDC 콘솔에서 로그아웃된 경우 다시 로그인하여 액세스 권한을 얻으세요.

gdcloud

세션이 비활성 상태이면 gdcloud CLI에서 로그아웃됩니다. gdcloud CLI에서 로그아웃한 후 명령어를 실행하려고 하면 다음과 같은 승인 오류가 표시됩니다.

Error: error when creating kube client: unable to create k8sclient: Unauthorized

GDC에 다시 로그인하려면 로그인의 CLI 단계를 따르세요.

관리 API 서버를 통해 GDC에 다시 로그인하면 kubeconfig 파일이 자동으로 업데이트됩니다. kubeconfig 파일이 업데이트되지 않도록 하려면 gdcloud auth login 명령어에 --skip-kubeconfig-update 플래그를 사용하세요.

kubectl

gdcloud CLI는 세션 비활성 상태가 되면 kubeconfig 파일을 만료합니다. 비활성 상태 후에 kubectl 명령어를 실행하려고 하면 승인 오류가 표시됩니다.

error: You must be logged in to the server (Unauthorized)

다시 로그인하고 kubeconfig 파일을 사용하려면 로그인의 CLI 단계를 따르세요. 세션 제한 시간이 초과될 때마다 kubeconfig 파일을 재생성해야 합니다.

로그인 및 신규 사용자 활동 모니터링

로그인과 같은 활동은 감사 로그로 내보내집니다. 감사 로그 보기에 대한 자세한 내용은 감사 로그를 참고하세요.