問題タブ [kubernetes-rbac]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
337 参照

kubernetes - ユーザー "system:serviceaccount:default:flink" は、クラスター スコープで API グループ "" のリソース "ノード" を一覧表示できません

1 つの k8s ポッドで k8s API を呼び出そうとしています。ただし、次の権限の問題が発生します。

私の yaml ファイルでは、既にRole&を指定していますRoleBinding。ここで何が恋しいですか?

0 投票する
3 に答える
68 参照

kubernetes - system:node が curl を介して apiserver からシークレットを取得できない

私はセキュリティ研究のために POC を行っており、ワーカー ノードから名前空間のシークレットに直接アクセスしようとしています。Kubernetes 1.20 を実行している GKE 上のクラスタがあります

ワーカー (非マスター) ノードから次のコマンドを実行しています。

そして、それはうまくいきます。

ただし、シークレットを取得しようとすると失敗します。

ドキュメントを見ると、ノードで実行されている kubelet がシークレットにアクセスできるはずであることがわかります: https://kubernetes.io/docs/reference/access-authn-authz/node/

私の理解では、承認はClusterRole system:node. それを見ると、get秘密に対する役割があることがわかります。

kubelet と kube-apiserver 間の通信に関するその他の関連ドキュメント: https://kubernetes.io/docs/concepts/architecture/control-plane-node-communication/#node-to-control-plane

0 投票する
2 に答える
83 参照

kubernetes - GKE で Google Cloud Groups RBAC を有効にすると禁止される

既存の GKE クラスタで Google Cloud Groups RBAC を有効にしています。

そのために、最初にワークスペースにすべてのグループを作成し、ドキュメントに従って必要な「gke-security-groups@ourdomain.com」も作成しました。

これらのグループは、シングル サインオン用に Active Directory と統合された Workspace で作成されます。

ドキュメントに記載されているように、すべてのグループは「gke-security-groups@ourdomain」のメンバーです。また、すべてのグループがメンバーを表示できます。

クラスタが更新され、Google Cloud Groups RBAC のフラグが有効になり、値を「gke-security-groups@ourdomain.com」に指定しました。

次に、グループの 1 つ (group_a@ourdomain.com と呼びましょう) を IAM に追加し、次へのアクセスのみを許可するカスタム ロールを割り当てました。

これは、ユーザーが Kubernetes クラスターにログインし、そこから Kubernetes RBAC を適用できるようにするための最小値です。

Kubernetes では、特定の名前空間内のポッドのリストを提供するロールと、IAM に追加したばかりのグループを指定するロール バインディングを適用しました。


今まですべてがよさそうだ。しかし、グループ「group_a@ourdomain.com」に属するユーザーでこの名前空間のポッドを一覧表示しようとすると、次のようになります。

サーバーからのエラー (禁止): ポッドは禁止されています: ユーザー "my-user@ourdomain.com" は、名前空間 "custom-namespace" の API グループ "" のリソース "ポッド" を一覧表示できません: ["container.pods. list"] パーミッション。

もちろん、container.pods.list を group_a@ourdomain が割り当てられたロールに与えると、ポッドを一覧表示できますが、GCloud でのこの権限はグローバルであるため、すべての名前空間に対して開きます。

ここで何が欠けていますか?

これが関連しているかどうかはわかりませんが、gcloud の組織はたとえば「my-company.io」と呼ばれ、SSO のグループは「...@groups.my-company.io」と呼ばれ、gke-security は-groups グループも「groups.my-company.io」ドメインで作成されました。

また、RoleBinding のグループの代わりに、ユーザーを直接指定すると機能します。