[超小ネタ] Amazon Elastic Container Service for Kubernetes(EKS)でkubectlする際に毎回MFAを求められて面倒なのを回避する
はじめに
おはようございます、加藤です。皆さんAmazon EKSは使っていらっしゃいますか?MFAが有効なアカウントでkubectlを実行すると毎回MFAを求められて面倒です、この問題に対処できたので方法をご紹介します。
方法
まずはこちらのブログをお読みください。
はい!後は~/.aws/config
で管理しているEKS用のプロファイル名と同名の作業ディレクトリをどこかに作成して下記のファイルを作成しておくだけで解決です!
これでディレクトリに移動してきた時に一度MFAを入力すれば、有効期限内は再入力が不要です。
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
ですが、自分はすごく困ったので誰かのお役に立てればと書いてみました!