ビュー:
プロファイル適用性: レベル1
ClusterRoleBinding system:public-info-viewerを除き、system:unauthenticatedグループで非デフォルトのClusterRoleBindingsRoleBindingsを避けてください。
Kubernetesは、認証情報が提供されていないAPIサーバリクエストに対してグループsystem:unauthenticatedを割り当てます。このグループにロールをバインドすると、認証されていないユーザにそのロールによって付与された権限が与えられるため、強く推奨されません。
初期設定:
ClusterRoleBindingsはグループsystem:unauthenticatedと共に:
system:public-info-viewer
グループsystem:unauthenticatedRoleBindingsはありません。

影響

認証されていないユーザは、設定されたバインディングに関連付けられたロールに関連する特権と権限を持ちます。
環境から非デフォルトのclusterrolebindingsまたはrolebindingsを削除する前に、それらがクラスターの運用に必要でないことを確認する必要があります。クラスター操作には、より具体的で認証されたユーザを活用してください。

監査

CusterRoleBindingsRoleBindingsの両方を監査する必要があります。次のコマンドを使用して、system:unauthenticatedをグループ化するための非デフォルトのClusterRoleBindingsがないことを確認してください:
$ kubectl get clusterrolebindings -o json | jq -r '["Name"], ["-----"], 
(.items[] | select((.subjects | length) > 0) | select(any(.subjects[]; .name 
== "system:unauthenticated")) | [.metadata.namespace, .metadata.name]) | 
@tsv'
次のデフォルトClusterRoleBindingのみが表示されるべきです。
Name 
----- 
               system:public-info-viewer
デフォルト以外のバインディングが存在する場合、次のコマンドでその権限を確認し、特権を再評価してください。
$ kubectl get clusterrolebinding [CLUSTER_ROLE_BINDING_NAME] -o json \ 
    | jq ' .roleRef.name +" " + .roleRef.kind' \ 
    | sed -e 's/"//g' \ 
    | xargs -l bash -c 'kubectl get $1 $0 -o yaml'
system:unauthenticatedグループを含むRoleBindingがないことを確認してください。
$ kubectl get rolebindings -A -o json \ 
    | jq -r '["Namespace", "Name"], ["---------", "-----"], (.items[] | 
select((.subjects | length) > 0) | select(any(.subjects[]; .name == 
"system:unauthenticated")) | [.metadata.namespace, .metadata.name]) | @tsv'
RoleBindingsはリストされていないはずです。
バインディングが存在する場合は、次のコマンドでその権限を確認し、特権を再評価してください。
$ kubectl get rolebinding [ROLE_BINDING_NAME] --namespace 
[ROLE_BINDING_NAMESPACE] -o json \ 
    | jq ' .roleRef.name +" " + .roleRef.kind' \ 
    | sed -e 's/"//g' \ 
    | xargs -l bash -c 'kubectl get $1 $0 -o yaml --namespace 
[ROLE_BINDING_NAMESPACE]'

修復

すべての非デフォルトclusterrolebindingsrolebindingsをグループsystem:unauthenticatedに特定します。それらが使用されているか確認し、上記の監査セクションのコマンドを使用して、またはGKEドキュメントを参照して、バインディングに関連する権限を確認してください。
非デフォルトの安全でないバインディングを、認証されたユーザ定義のグループに置き換えることを強く検討してください。可能であれば、最小特権の役割を持つ非デフォルトのユーザ定義グループにバインドしてください。
グループsystem:unauthenticatedにデフォルト以外の安全でないバインディングがある場合、クラスター操作を考慮し、必要かつ安全なバインディングのみを残して削除してください。
kubectl delete clusterrolebinding 
[CLUSTER_ROLE_BINDING_NAME] 
kubectl delete rolebinding 
[ROLE_BINDING_NAME] 
--namespace 
[ROLE_BINDING_NAMESPACE]