EKSのクラスタにアクセスするには、VPCの中にあるEC2からIAMロールで権限を付与するのが安全です。
どうしてもVPCの外からアクセスする必要がある場合は、下記のようにします。
EKS用のIAMユーザを作成
- IAMでEKS専用のグループを作成しEKSの操作に必要な権限を付与
- IAMで
プログラムによるアクセス
のみ許可したIAMユーザを作成し上記グループに追加
アクセスキーの作成
作成したユーザでユーザのアクセスキーを作成します。
言うまでもありませんが、作成したアクセスキーは厳重に管理する必要があります。
kubeconfigの作成
awscliは、下記のバージョンで試しました。
$ aws --version aws-cli/1.17.5 Python/3.6.8 Linux/4.9.184-linuxkit botocore/1.14.5
aws --profile eks configure
で作成したアクセスキーを登録します。
$ aws --profile eks configure AWS Access Key ID [None]: アクセスキー AWS Secret Access Key [None]: シークレットキー Default region name [None]: ap-northeast-1 Default output format [None]: json
$ export AWS_DEFAULT_PROFILE=eks $ aws eks list-clusters --query 'clusters[]' --output table -------------- |ListClusters| +------------+ | sample | +------------+
下記のコマンドでkubeconfigを作成します。
CLUSTER=sample aws eks update-kubeconfig --name $CLUSTER
動作確認
接続先を確認します。
$ kubectl config current-context arn:aws:eks:ap-northeast-1:******:cluster/sample
あとは、普通にkubectlが利用できます。
$ kubectl get node NAME STATUS ROLES AGE VERSION ip-10-15-82-136.ap-northeast-1.compute.internal Ready <none> 4d22h v1.14.7-eks-1861c5 ip-10-18-16-88.ap-northeast-1.compute.internal Ready <none> 4d22h v1.14.7-eks-1861c5
後片付け
使い終わったらかならず、IAMユーザのアクセスキーを失効させます。
以上