0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

EKSクラスタの作成者でないメンバーがkubectlでアクセスする設定

Posted at

はじめに

KubernetesをAmazon EKSで動かすことが増えてきました。自分で調査や開発するときはeksctlでクラスタを生成してkubectlで操作していますが、先日その私が生成したクラスタを他の開発メンバーに操作してもらおうとしたとき、どうするんだっけとあたふたしたので、対応方法を備忘録的に残しておきます。

基本はAWS ナレッジセンターの情報を基に進めました。

前提条件

  • KubectlとAWS CLIがインストールされている。
  • AWSのIAMユーザにEKSの権限が付与されており、aws configureでプロファイル設定がされている。

設定

以下の操作は、eksctlでクラスタを生成した自分(管理者)ではなく、そのクラスタにアクセスしてもらう開発メンバー側でやってもらった作業です。

まずは、Amazon EKS クラスターに対する許可がある認証情報か確認します。

開発メンバー
aws sts get-caller-identity

次に、kubectlの接続設定ファイル(kubeconfig)を生成するためのコマンドを実行します。

開発メンバー
aws eks --region region update-kubeconfig --name cluster_name

--regionオプションのリージョン名、--nameオプションのクラスタ名は各自のものに置き換えてください。

なお、我々が実行した時は、このコマンド実行時にTypeError: 'NoneType' object is not iterableというエラーが発生していました。kubeconfigファイルである~/.kube/configを開いてみても、殆ど何も記述されていない状態でした。
そこで、kubeconfigファイルである~/.kube/configを手動で削除して、再度上記のコマンドを実行したらエラーが解消しました。正常終了すると、~/.kube/configは下図のような内容が記録されています。(塗りつぶしが多くてすみません。。)

sub005-01.png

次に、kubectlコマンドを実行してクラスタにアクセスできることを確認します。例えば以下のコマンドでdefaultの名前空間にあるServiceを確認します。

開発メンバー
kubectl get svc

なお、我々が実行したときは、このコマンド実行で認証エラーが発生していました。

そこで、aws-auth ConfigMapを編集しました。これは開発メンバーではなく、クラスターを作成した管理者が対応する必要があります。コマンドで以下を入力します。

管理者
kubectl edit configmap aws-auth --namespace kube-system

このコマンドを入力すると、viエディタが立ち上がりました。そこで、mapUsersに開発メンバーのIAMユーザの情報を入力します。

入力したのは下図の赤枠の部分です。userarnにIAMユーザのARN、usernameにIAMユーザ名を入力しました。

sub005-02.png

この設定後、再度開発メンバーの方からkubectl get svcコマンドを入力したら、認証エラーが発生せずに結果を取得することができました。

おわりに

今回はIAMユーザをaws-auth ConfigMapに追加しましたが、IAMロールを追加することもできるようです。詳しくはこちらのAWSの情報を参照してください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?