ビュー:
プロファイル適用性: レベル1
KubernetesのRolesとClusterRolesは、オブジェクトのセットとそれらのオブジェクトに対して実行できるアクションに基づいてリソースへのアクセスを提供します。これらのいずれかをワイルドカード「*」に設定することが可能で、すべての項目に一致します。
ワイルドカードの使用はセキュリティの観点から最適ではありません。これは、Kubernetes APIに新しいリソースがCRDとして追加されたり、製品の後のバージョンで追加されたりする際に、意図しないアクセスが許可される可能性があるためです。
最小特権の原則は、ユーザにその役割に必要なアクセスのみを提供し、それ以上は提供しないことを推奨します。ワイルドカード権限の使用は、Kubernetes APIに過剰な権限を与える可能性があります。

監査

クラスター内の各ネームスペースで定義されたロールを取得し、ワイルドカードを確認してください。
こちらは、動詞、リソース、または apiGroups のいずれかにワイルドカード (*) を使用しているロールとクラスターロールのみを表示し、どのフィールドがワイルドカードを使用しているかを示す、ヌルセーフでカラム形式のコマンドです。
kubectl get clusterrole,role -A -o json | jq -r ' def has_star(a): (a // []) | any(. == "*");

.items[] | . as $r |
( any($r.rules[]?; has_star(.verbs)) ) as $wv |
( any($r.rules[]?; has_star(.resources)) ) as $wr |
( any($r.rules[]?; has_star(.apiGroups)) ) as $wg |
select($wv or $wr or $wg) |
[ $r.kind, $r.metadata.name,
  ($r.metadata.namespace // "cluster-wide"),
  ([ if $wv then "verbs" else empty end,
     if $wr then "resources" else empty end,
     if $wg then "apiGroups" else empty end
  ] | join(","))
] | @tsv
' | awk -F'\t' '{printf "%-15s %-40s %-20s %-20s\n", $1, $2, $3, $4}'
コマンドからのサンプル出力:
KIND                    NAME                                         NAMESPACE
WILDCARD_IN
--------------- ---------------------------------------- --------------------
--------------------
ClusterRole                  cluster-admin                                   cluster-wide
verbs,resources,apiGroups
ClusterRole                  external-metrics-reader                         cluster-wide
resources
ClusterRole                  kubelet-api-admin                               cluster-wide
verbs
ClusterRole                  system:cloud-controller-manager                 cluster-wide
resources,apiGroups
ClusterRole                  system:controller:disruption-controller         cluster-wide
apiGroups
ClusterRole                  system:controller:generic-garbage-collector     cluster-wide
resources,apiGroups
ClusterRole                  system:controller:horizontal-pod-autoscaler     cluster-wide
resources,apiGroups
ClusterRole                  system:controller:namespace-controller          cluster-wide
resources,apiGroups
ClusterRole                  system:controller:resourcequota-controller      cluster-wide
resources,apiGroups
ClusterRole                  system:gcp-controller-manager                   cluster-wide
verbs
ClusterRole                  system:gke-common-webhooks                      cluster-wide
verbs,resources,apiGroups
ClusterRole                  system:gke-hpa-actor                            cluster-wide
resources,apiGroups
ClusterRole                  system:glbc-status                              cluster-wide
verbs
ClusterRole                  system:kube-controller-manager                  cluster-wide
resources,apiGroups
ClusterRole                  system:kubelet-api-admin                        cluster-wide
verbs
ClusterRole                  system:kubestore-collector                      cluster-wide
verbs,resources,apiGroups
ClusterRole                  system:managed-certificate-controller           cluster-wide
verbs
ClusterRole                  system:metrics-server-nanny                     cluster-wide
verbs
Role                         gke-spiffe-leaderelection                       kube-system
verbs

修復

可能な場合は、clusterrolesやrolesでワイルドカードの使用を特定のオブジェクトやアクションに置き換えてください。