[解決済み] kubectlエラー EKSクラスタにアクセスする際、サーバーにログインする必要がある(Unauthorized)。
質問
EKSのスタートガイドにしたがってやっています。
kubectl get serviceを呼び出そうとすると、次のようなメッセージが表示されました:error: サーバーにログインする必要があります(Unauthorized)
以下は、私が行ったことです。
1. EKSクラスタを作成しました。
2. 以下のように設定ファイルを作成した。
apiVersion: v1
clusters:
- cluster:
server: https://*********.yl4.us-west-2.eks.amazonaws.com
certificate-authority-data: *********
name: *********
contexts:
- context:
cluster: *********
user: aws
name: aws
current-context: aws
kind: Config
preferences: {}
users:
- name: aws
user:
exec:
apiVersion: client.authentication.k8s.io/v1alpha1
command: heptio-authenticator-aws
args:
- "token"
- "-i"
- "*********"
- "-r"
- "arn:aws:iam::*****:role/******"
- 最新のaws cliをダウンロード・インストール
- aws configureを実行し、IAMユーザーのクレデンシャルとリージョンをus-west-2に設定しました。
- IAMユーザーにsts:AssumeRoleのポリシーをEKSロールに追加し、信頼関係として設定する
- 設定ファイルを使用するようにkubectlをセットアップする
heptio-authenticator-aws token -r arn:aws:iam::**********:role/******** -i my-cluster-ame を実行すると、トークンを取得することができます。 しかし、クラスタにアクセスしようとすると、エラーが表示され続けます。サーバーにログインしている必要があります (認証されていません)
この問題を解決する方法を教えてください。
解決方法は?
<ブロッククオートAmazon EKSクラスタを作成すると、クラスタを作成したIAMエンティティ(ユーザまたはロール)が管理者としてKubernetes RBAC認可テーブルに追加されます。初期状態では、そのIAMユーザーのみがkubectlを使用してKubernetes APIサーバーへの呼び出しを行うことができます。
そこで、他の アワーズ ユーザは、まず を編集して、IAMユーザーまたはロールをAmazon EKSクラスタに追加する必要があります。
を実行することで、ConfigMap ファイルを編集することができます。
kubectl edit -n kube-system configmap/aws-auth
その後、新しいユーザーをマッピングするためのエディターが付与されます。
apiVersion: v1
data:
mapRoles: |
- rolearn: arn:aws:iam::555555555555:role/devel-worker-nodes-NodeInstanceRole-74RF4UBDUKL6
username: system:node:{{EC2PrivateDNSName}}
groups:
- system:bootstrappers
- system:nodes
mapUsers: |
- userarn: arn:aws:iam::111122223333:user/ops-user
username: ops-user
groups:
- system:masters
mapAccounts: |
- "111122223333"
を意識してください。
mapUsers
を追加しているところです。
ops-user
と共に
mapAccounts
ラベルで
AWS
のユーザーアカウントとKubernetesクラスタ上のユーザー名を指定します。
しかし、このアクションだけではRBACで提供される権限はありません。これらのエンティティ権限を提供するには、クラスタでロールバインディングを作成する必要があります。
amazonのドキュメントにあるように( iam-docs ) によると、ConfigMap で指定されたユーザーに対して、kubernetes クラスタ上でロールバインディングを作成する必要があるとのことです。そのためには、以下のコマンドを実行します ( kub-docs ):
kubectl create clusterrolebinding ops-user-cluster-admin-binding --clusterrole=cluster-admin --user=ops-user
これはクラスタ管理者に
ClusterRole
という名前のユーザーに
ops-user
をクラスタ全体で使用します。
関連
-
[解決済み】DynamoDB - キー要素がスキーマと一致しない
-
[解決済み] CloudFormation Stack Errors with REST API Doesn't Contain Any Methods
-
[解決済み] DNS名foo.を持つRRSetはゾーンバーで許可されていません。
-
[解決済み] ec2 インスタンスのステータスチェックに失敗しました
-
[解決済み] ネットワークインターフェイスが無効なAWS EC2インスタンスに接続しようとする
-
[解決済み] Amazon MQとSQSの違いは何ですか?
-
[解決済み] CLIコマンドでAWSグルージョブを作成する方法とは?
-
[解決済み] AWS - Disconnected : サポートされている認証方法がありません (サーバーは :publickey を送信)
-
[解決済み] Amazon SNSとAmazon SQSの違いは何ですか?
-
[解決済み] AWS EFS vs EBS vs S3(違い&いつ使う?)【終了しました。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] LATERAL VIEW EXPLODE in presto(ラテラルビュー エクスプロード イン プレスト
-
[解決済み] CloudFormation Stack Errors with REST API Doesn't Contain Any Methods
-
[解決済み] MSCK REPAIR TABLEは裏で何をしているのか、なぜこんなに遅いのか?
-
[解決済み] Amazon S3バケットが403 Forbiddenを返す
-
[解決済み] タスク実行時にAWS ECSエラーが発生しました。クラスタにコンテナインスタンスが見つかりませんでした。
-
[解決済み] DynamoDB Upsert - Update or Create?
-
[解決済み] CLIコマンドでAWSグルージョブを作成する方法とは?
-
[解決済み] `aws s3 cp` vs `aws s3 sync` 動作とコスト [終了しました]。
-
[解決済み] AWSプライベートリンクとVPCエンドポイント
-
[解決済み】LightsailとEC2の違いは何ですか?[クローズド]