Ncloud Single Sign-On으로 OIDC 인증 설정하여 kubectl 인증 사용 예제

Prev Next

VPC 환경에서 이용 가능합니다.

OpenID Connect(OIDC) 인증 설정에서 Ncloud Single Sign-On Tenant를 Issuer로 추가하고, 포탈 로그인을 통해 kubectl을 사용하는 예제입니다.

참고

예제를 테스트하기 위해 사전에 준비해야 하는 내용은 다음과 같습니다.

oidc-login plugin 설정

  1. Ncloud Single Sign-On에서 생성된 Issuer URL과 ClientID, ClinetSecret으로 oidc-login setup을 수행해 주십시오.
    • 브라우저에서 로그인 화면이 나오면 로그인합니다. 이미 로그인한 상태라면 로그인 화면이 표시되지 않습니다.
      kubectl oidc-login setup \
      --oidc-issuer-url=https://sso.fin-ncloud.com/tenants/f42162be-f574-477f-985b-c624579f2b08 \
      --oidc-client-id=bf24746a-1957-4d45-8ad6-da86029296b2 \
      --oidc-client-secret=22202039-c06d-4ad0-95d0-fb537378cc20
      
  2. id_token의 내용을 확인해 주십시오.
    {
      "sub": "bcf8067c-da7e-4818-ae58-39add6bd7e6a",
      "aud": "bf24746a-1957-4d45-8ad6-da86029296b2",
      "id_no": "bcf8067c-da7e-4818-ae58-39add6bd7e6a",
      "user_type": "CUSTOMER",
      "azp": bf24746a-1957-4d45-8ad6-da86029296b2",
      "user_name": "nbp",
      "iss": "https:\/\/sso.fin-ncloud.com\/tenants\/f42162be-f574-477f-985b-c624579f2b08",
      "mbr_no": "2551575",
      "exp": 1670295764,
      "iat": 1670293964,
      "nonce": "IZ32TJmuMGF1iisd8t7VGGSF2DkT5PY1FmVwpbT85Uw"
    }
    
  3. IAM 인증 상태에서 kubeconfig로 oidc 인증 유저용 클러스터 롤을 추가해 주십시오.
  • Ncloud Kubernetes Service OIDC 설정에서 username prefix/claim을 설정하지 않으면 기본적으로 iss#sub이 username으로 설정됩니다.
  • username 변경을 위해서는 4번 OIDC 설정에서 prefix/claim을 지정할 수 있습니다.
    kubectl create clusterrolebinding oidc-cluster-admin --clusterrole=cluster-admin --user='https://sso.fin-ncloud.com/tenants/f42162be-f574-477f-985b-c624579f2b08#bcf8067c-da7e-4818-ae58-39add6bd7e6a'
    
  1. 콘솔에서 Ncloud Kubernetes Service OpenID Connect(OIDC) 인증 설정을 진행해 주십시오.
    • Issuer URL: https://sso.fin-ncloud.com/tenants/f42162be-f574-477f-985b-c624579f2b08
    • Client ID: bf24746a-1957-4d45-8ad6-da86029296b2
  2. kubeconfig 파일에 oidc 인증을 추가해 주십시오.
    kubectl config set-credentials oidc \
      --exec-api-version=client.authentication.k8s.io/v1beta1 \
      --exec-command=kubectl \
      --exec-arg=oidc-login \
      --exec-arg=get-token \
      --exec-arg=--oidc-issuer-url=https://sso.fin-ncloud.com/tenants/f42162be-f574-477f-985b-c624579f2b08 \
      --exec-arg=--oidc-client-id=bf24746a-1957-4d45-8ad6-da86029296b2 \
      --exec-arg=--oidc-client-secret=22202039-c06d-4ad0-95d0-fb537378cc20
    
  3. oidc 인증을 사용하여 kubectl 명령을 수행해 주십시오.
    kubectl --user=oidc get nodes
    
  4. 현재 kubeconfig context가 oidc 인증을 사용하도록 설정해 주십시오.
    kubectl config set-context --current --user=oidc