[超小ネタ] Amazon Elastic Container Service for Kubernetes(EKS)でkubectlする際に毎回MFAを求められて面倒なのを回避する

Amazon Elastic Container Service for Kubernetes(EKS)でkubectlする際に毎回MFAを求められて面倒なのを回避する。
2018.10.27

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

はじめに

おはようございます、加藤です。皆さんAmazon EKSは使っていらっしゃいますか?MFAが有効なアカウントでkubectlを実行すると毎回MFAを求められて面倒です、この問題に対処できたので方法をご紹介します。

方法

まずはこちらのブログをお読みください。

[小ネタ]ディレクトリ移動した際に自動で一時クレデンシャルを取得・設定する

はい!後は~/.aws/configで管理しているEKS用のプロファイル名と同名の作業ディレクトリをどこかに作成して下記のファイルを作成しておくだけで解決です!
これでディレクトリに移動してきた時に一度MFAを入力すれば、有効期限内は再入力が不要です。

.envrc

eval $(assume-role $(basename $(pwd)))
export KUBECONFIG="~/.kube/config"
alias kubectl='eks-kubectl'

流石に短すぎるので解説していきます。

eval $(assume-role $(basename $(pwd)))

現在のディレクトリ名を取得して、Assume Roleします。この際にMFAが有効な状態で一時クレデンシャルが生成されるので、有効期限内はMFAを再入力する必要がありません。

export KUBECONFIG="~/.kube/config"

使用するKubernetes(k8s)のコンフィグファイルを環境変数に取り込むことで指定しています。複数のk8s環境を使用している場合は、これを設定しておくとディレクトリ移動時に環境が切り替わるのでとても便利です。

alias kubectl='eks-kubectl'

私はEKS用のkubectlはeks-kubectlとリネームして使用しています。毎回これを入力するのは面倒なので、このディレクトリに居るときはkubectlと入力するとEKS用のkubectlが実行される様にしました。

あとがき

すごく短いブログになると、理解はしていましたがやはり短いですねw
ですが、自分はすごく困ったので誰かのお役に立てればと書いてみました!