-
네이버클라우드 Kubernetes (NKS) subaccount iam 인증 kubeconfig 생성NAVER Cloud 2023. 2. 2. 20:20
네이버클라우드에서 Kubernetes 서비스를 sub account 로 접근해야 하는 경우 ncp-iam-authenticator 를 통해 kubeconfig 파일을 생성하고, sub account 에 대한 Configmap 을 생성해 주어야 한다.
kubeconfig.yaml 파일만 가지고 kubectl 명령을 수행할 수 없고, kubectl 명령어를 수행하는 PC 나 서버가 아래 조건을 충족해야 한다.
ncp-iam-authenticator 설치
sub account 의 Access/Secret Key 를 .ncloud/configure 파일에 등록
sub account 사용자에 대한 Configmap 생성
kubectl 은 당연히 설치되어 있어야 함1. ncp-iam-authenticator 설치
아래 링크를 참고하여 kubectl 을 수행할 Device 의 OS 에 맞게 설치한다.
https://guide.ncloud-docs.com/docs/k8s-iam-auth-ncp-iam-authenticator
설치가 정상적으로 진행되면 아래와 같이 ncp-iam-authenticator 명령을 수행했을 때 결과가 조회되어야 한다.
$path 관련 에러가 발생하거나 하면 다시 마음을 가다듬고 가이드 문서에 있는 3번부터 수행해보도록 하자.
복붙에만 집중하다보니 .ncloud/configure 파일이 어디에 있는지 모르겠다면, echo $HOME 커맨드 수행 결과로 나오는 디렉토리로 이동하여 찾아보도록 한다.
ncp-iam-authenticator help cli written to authenticate with iam in ncloud kubernetes service Usage: ncp-iam-authenticator [command] Available Commands: create-kubeconfig Get Kubeconfig to access kubernetes help Help about any command token Authenticate using SubAccount and get token for Kubernetes version Show the version info of the ncp-iam-authenticator Flags: --config string config path -h, --help help for ncp-iam-authenticator --profile string profile Use "ncp-iam-authenticator [command] --help" for more information about a command.
2. sub account 의 Access/Secret Key 를 .ncloud/configure 파일에 등록
sub account 의 Access/Secret Key 는 ncloud 콘솔에서 확인할 수 있다. (Root 계정만 포털에서 확인한다.)
만약 Access Key 메뉴가 보이지 않는다면 누군가 sub account 를 생성할 때 API 사용 여부를 체크하지 않았기 때문이다.
sub account 를 생성해 준 분에게 API 사용 여부를 체크해달라고 요청한 후 다시 해본다.
kubeconfig.yaml 파일을 생성하는 단계라면 굳이 vi 로 .ncloud/configure 에 등록하지 않아도 kubeconfig 파일을 생성하는 과정에 access/secret key 를 물어보기 때문에 복붙만 잘 하면 된다.
ncp-iam-authenticator create-kubeconfig --region SGN --clusterUuid 03f3e801-xxxx-xxxx-xxxxx-xxxx95b19c6b --output kubeconfig.yaml Ncloud Access Key Id []: Access Key 입력 Ncloud Secret Access Key []: Secret Key 입력 Ncloud API URL []: https://ncloud.apigw.ntruss.com
위 과정이 정상적으로 완료되었다면 cat ~/.ncloud/configure 명령으로 파일을 열어보면 access key, secret key, api url 정보가 들어간 것을 확인할 수 있다.
이미 생성된 kubeconfig.yaml 파일을 받았다면, vi ~/.ncloud/configure 파일에 위 이미지와 같이 입력해 주면 된다.
3. Sub account 사용자에 대한 configmap 생성
아래 사용자 가이드를 참고하여 sub account 에 대한 접근 정보를 configmap 으로 등록해준다.
https://guide.ncloud-docs.com/docs/k8s-iam-auth-management
cat <<EOF | kubectl --kubeconfig kubeconfig.yaml apply -f - apiVersion: v1 kind: ConfigMap metadata: name: ncp-auth namespace: kube-system data: mapSubAccounts: | - subAccountIdNo: c570c850-xxxx-xxxx-xxxx-246e96591594 ## subaccount 정보에서 조회 가능 username: saasking00 ## subaccount ID groups: - system:masters ## subaccount 에 부여할 그룹 정보 EOF
복수의 sub account 를 등록하는 경우에는 mapSubAccounts 하위에 아래와 같이 입력한다.
apiVersion: v1 kind: ConfigMap metadata: name: ncp-auth namespace: kube-system data: mapSubAccounts: | - subAccountIdNo: [id_no] username: [user1] groups: - system:masters - subAccountIdNo: [id_no] username: [user2] groups: - developer
이제 sub account 로 kubectl 명령어를 수행하기 위한 준비는 끝났다.
kubectl 명령어가 정상적으로 수행되는지 확인한다. 에러가 난다면 그것은 아마도.. 어딘가의 오타라던가.. 무언가의 누락이라던가..
kubectl get nodes --kubeconfig kubeconfig.yaml
그리고 매번 --kubeconfig kubeconfig.yaml 이런걸 쓰는게 너무 귀찮다면..
profile 파일에 alias 를 등록해두면 아주 편해진다.
cat ~/.bash_profile alias kubectl='kubectl --kubeconfig="/쿠베/컨피그/파일위치/kubeconfig.yaml"'
반응형'NAVER Cloud' 카테고리의 다른 글
네이버클라우드 ALB 에 Path Pattern 분리 (1) 2023.12.11 NKS 에서 GPU 사용 job 실행해보기 (0) 2023.07.25 ALB 사용 환경에서 특정 IP 만 웹 접근하도록 설정 (0) 2022.01.14 VM 의 NIC 별 통신 트래픽 확인하기 - flow log 설정 (0) 2022.01.10 ALB Ingress 로 subdomain 분기 설정 (0) 2021.12.20