IAM認証 kubeconfig の作成とアップデート

Prev Next

VPC環境で利用できます。

Ncloud Kubernetes Serviceは IAMクラスタ認証のために ncp-iam-authenticatorを使用します。ncp-iam-authenticatorを通じて IAMを認証した kubeconfigを読み込んで既存ファイルにアップデートするか新しいファイルに作成できます。

参考
  • SubAccountの場合、ncp-iam-authenticatorを通じて kubeconfigを作成/アップデートするには View/getClusterDetailと View/getClusterListの権限が必要となります。
  • Jenkins、Github Actionのような 3rd-partyサービスの使用により ncp-iam-authenticatorを使用した認証ができない場合、クラスタ権限制御を参照してサービスアカウントのトークンを通じた認証を使用できます。

ncp-iam-authenticator API認証キー値の設定

ncp-iam-authenticatorを使用するには、まず API認証キー値を設定する必要があります。

参考

API認証キーは、NAVERクラウドプラットフォームコンソールの My Account > アカウントとセキュリティ管理 > セキュリティ管理 > アクセス管理 > API認証キーで確認できます。

OSの環境変数や configureファイルに APIキーを設定します(OSの環境変数が configureファイルより優先となります)。

  • OSの環境変数設定
    $ export NCLOUD_ACCESS_KEY=ACCESSKEYIDACCESSKEY
    $ export NCLOUD_SECRET_KEY=SECRETACCESSKEYSECRETACCESSKEYSECRETACCE
    $ export NCLOUD_API_GW=https://ncloud.apigw.ntruss.com
    
  • ユーザー環境のホームディレクトリの .ncloudフォルダに configureファイル
    $ cat ~/.ncloud/configure
    [DEFAULT]
    ncloud_access_key_id = ACCESSKEYACCESSKEYAC
    ncloud_secret_access_key = SECRETKEYSECRETKEYSECRETKEYSECRETKEYSECR
    ncloud_api_url = https://ncloud.apigw.ntruss.com
    
    [project]
    ncloud_access_key_id = ACCESSKEYACCESSKEYAC
    ncloud_secret_access_key = SECRETKEYSECRETKEYSECRETKEYSECRETKEYSECR
    ncloud_api_url = https://ncloud.apigw.ntruss.com
    
  • 認証キー値が確認できない場合、ncp-iam-authenticatorのコマンド実行中に APIキーの入力が要求されます。
    Ncloud Access Key Id []: ACCESSKEYACCESSKEYAC
    Ncloud Secret Access Key []: SECRETKEYSECRETKEYSECRETKEYSECRETKEYSECR
    Ncloud API URL []: https://ncloud.apigw.ntruss.com
    
  • また次のようなオプションを使用して各コマンドの際に Ncloud認証キーの設定およびデバッグの有無を設定できます。
    名前 説明 必須の有無 デフォルト値
    credentialConfig ncloud configureファイルのパス X
    profile ncloud configureファイル内の profile X
    debug debug log出力の有無 X

ncp-iam-authenticator update-kubeconfigコマンドの使用

参考

最新バージョンの ncp-iam-authenticatorでない場合、一部のコマンドが制限されるため、最新バージョンの再インストールを推奨します。

  1. ncp-iam-authenticatorがインストールされているかご確認ください。ncp-iam-authenticatorをインストールするには、ncp-iam-authenticatorのインストールをご参照ください。

  2. コマンドに使用されるオプションをご確認ください。

    参考

    kubeconfigファイルのパスに kubeconfigがなかったら、同じパスに新しいファイルを作成します。
    clusterNameや userNameを設定した場合は contextNameが userName@clusterNameに設定され、そうでない場合は nks_<regionCode>_<clusterName>_<clusterUuid>に設定されます。

    名前 説明 必須の有無 デフォルト値
    clusterUuid kubeconfigに作成する clusterの uuid O
    region kubeconfigに作成する clusterの regionCode
    • KR、SGN、JPN
    O
    clusterName kubeconfigに設定する cluster name X
    userName kubeconfigに設定する user name X
    currentContext current-contextを新しく適用する contextに変更するかに関する有無 X
    overwrite kubeconfigに適用する cluster name, user name、context nameが既存ファイルと重複する場合に上書きするかに関する有無 X
    kubeconfig updateする kubeconfigのファイルパス X
    format 作成する kubeconfigのファイル形式
    • yaml、json
    X
  3. 上記の表を参照して、ncp-iam-authenticator update-kubeconfigコマンドを使用して既存の kubeconfigファイルにクラスタの configを追加します。

    ncp-iam-authenticator update-kubeconfig --region <region-code> --clusterUuid <cluster-uuid>
    
  4. 作成された kubeconfigファイルで kubectlコマンドをテストします。

    $ kubectl get namespaces --kubeconfig kubeconfig.yaml
    NAME                    STATUS   AGE
    default                 Active   1h
    kube-node-lease         Active   1h
    kube-public             Active   1h
    kube-system             Active   1h
    kubernetes-dashboard    Active   1h
    

ncp-iam-authenticator Created-kubeconfigコマンドの使用

参考

最新バージョンの ncp-iam-authenticatorでない場合、一部のコマンドが制限されるため、最新バージョンの再インストールを推奨します。

  1. ncp-iam-authenticatorがインストールされているかご確認ください。ncp-iam-authenticatorをインストールするには、ncp-iam-authenticatorのインストールをご参照ください。

  2. コマンドに使用するオプションを確認します。

    参考

    clusterNameや userNameを設定した場合は contextNameが userName@clusterNameに設定され、そうでない場合は nks_<regionCode>_<clusterName>_<clusterUuid>に設定されます。

    名前 説明 必須の有無 デフォルト値
    clusterUuid kubeconfigに作成する clusterの uuid O
    region kubeconfigに作成する clusterの regionCode
    • KR、SGN、JPN
    O
    clusterName kubeconfigに設定する cluster name X
    userName kubeconfigに設定する cluster name X
    output kubeconfigを保存する filepath(ファイル名含む) X
    format 作成する kubeconfigのファイル形式
    • yaml、json
    X
  3. 上記の表を参照して、ncp-iam-authenticator create-kubeconfigコマンドを使用してクラスタへの kubeconfigを作成します。

    ncp-iam-authenticator create-kubeconfig --region <region-code> --clusterUuid <cluster-uuid> --output kubeconfig.yaml
    
  4. 作成された kubeconfigファイルで kubectlコマンドをテストします。

    $ kubectl get namespaces --kubeconfig kubeconfig.yaml
    NAME                    STATUS   AGE
    default                 Active   1h
    kube-node-lease         Active   1h
    kube-public             Active   1h
    kube-system             Active   1h
    kubernetes-dashboard    Active   1h