diff --git a/plugin/pkg/admission/securitycontext/scdeny/admission.go b/plugin/pkg/admission/securitycontext/scdeny/admission.go index a8a85d35e30..5ff6c07a0fd 100644 --- a/plugin/pkg/admission/securitycontext/scdeny/admission.go +++ b/plugin/pkg/admission/securitycontext/scdeny/admission.go @@ -49,7 +49,7 @@ func NewSecurityContextDeny() *Plugin { } } -// Validate will deny any pod that defines SELinuxOptions or RunAsUser. +// Validate will deny any pod that defines SupplementalGroups, SELinuxOptions, RunAsUser or FSGroup func (p *Plugin) Validate(a admission.Attributes) (err error) { if a.GetSubresource() != "" || a.GetResource().GroupResource() != api.Resource("pods") { return nil @@ -60,20 +60,19 @@ func (p *Plugin) Validate(a admission.Attributes) (err error) { return apierrors.NewBadRequest("Resource was marked with kind Pod but was unable to be converted") } - if pod.Spec.SecurityContext != nil && pod.Spec.SecurityContext.SupplementalGroups != nil { - return apierrors.NewForbidden(a.GetResource().GroupResource(), pod.Name, fmt.Errorf("SecurityContext.SupplementalGroups is forbidden")) - } if pod.Spec.SecurityContext != nil { + if pod.Spec.SecurityContext.SupplementalGroups != nil { + return apierrors.NewForbidden(a.GetResource().GroupResource(), pod.Name, fmt.Errorf("pod.Spec.SecurityContext.SupplementalGroups is forbidden")) + } if pod.Spec.SecurityContext.SELinuxOptions != nil { return apierrors.NewForbidden(a.GetResource().GroupResource(), pod.Name, fmt.Errorf("pod.Spec.SecurityContext.SELinuxOptions is forbidden")) } if pod.Spec.SecurityContext.RunAsUser != nil { return apierrors.NewForbidden(a.GetResource().GroupResource(), pod.Name, fmt.Errorf("pod.Spec.SecurityContext.RunAsUser is forbidden")) } - } - - if pod.Spec.SecurityContext != nil && pod.Spec.SecurityContext.FSGroup != nil { - return apierrors.NewForbidden(a.GetResource().GroupResource(), pod.Name, fmt.Errorf("SecurityContext.FSGroup is forbidden")) + if pod.Spec.SecurityContext.FSGroup != nil { + return apierrors.NewForbidden(a.GetResource().GroupResource(), pod.Name, fmt.Errorf("pod.Spec.SecurityContext.FSGroup is forbidden")) + } } for _, v := range pod.Spec.InitContainers {