Skip to content

Commit

Permalink
Merge pull request #25295 from yuvalk/master
Browse files Browse the repository at this point in the history
add a security test to verify capabilities
  • Loading branch information
openshift-merge-robot committed Oct 15, 2020
2 parents 027d3d3 + 59f91fe commit 6c53f20
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 0 deletions.
29 changes: 29 additions & 0 deletions test/extended/security/scc.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ import (
"strings"

g "github.com/onsi/ginkgo"
o "github.com/onsi/gomega"

securityv1 "github.com/openshift/api/security/v1"
securityv1client "github.com/openshift/client-go/security/clientset/versioned/typed/security/v1"
"github.com/openshift/origin/test/extended/authorization"
Expand All @@ -16,6 +18,7 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
rbacv1helpers "k8s.io/kubernetes/pkg/apis/rbac/v1"
"k8s.io/kubernetes/test/e2e/framework"
)

var _ = g.Describe("[sig-auth][Feature:SecurityContextConstraints] ", func() {
Expand Down Expand Up @@ -257,6 +260,32 @@ var _ = g.Describe("[sig-auth][Feature:SecurityContextConstraints] ", func() {
})
})

var _ = g.Describe("[sig-auth][Feature:SecurityContextConstraints] ", func() {
defer g.GinkgoRecover()
oc := exutil.NewCLI("ssc")

g.It("TestPodDefaultCapabilities", func() {
g.By("Running a restricted pod and getting it's inherited capabilities")
pod, err := exutil.NewPodExecutor(oc, "restrictedcapsh", "fedora:29")
o.Expect(err).NotTo(o.HaveOccurred())

desiredCapabilities := "000000000000051b"

capabilities, err := pod.Exec("cat /proc/1/status | grep CapInh | cut -f 2")
o.Expect(err).NotTo(o.HaveOccurred())

capString, err := pod.Exec("capsh --decode=" + capabilities)
o.Expect(err).NotTo(o.HaveOccurred())

desiredCapString, err := pod.Exec("capsh --decode=" + desiredCapabilities)
o.Expect(err).NotTo(o.HaveOccurred())

framework.Logf("comparing capabilities: %s with desired: %s", capabilities, desiredCapabilities)
framework.Logf("which translates to: %s compared with desired: %s", capString, desiredCapString)
o.Expect(capabilities).To(o.Equal(desiredCapabilities))
})
})

func isForbiddenBySCC(err error) bool {
return kapierror.IsForbidden(err) && strings.Contains(err.Error(), "unable to validate against any security context constraint")
}
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 6c53f20

Please sign in to comment.