Skip to content

Commit af24ad6

Browse files
committed
Enable RBAC on APIServer
1 parent e648d3d commit af24ad6

6 files changed

+45
-4
lines changed

parts/defaultpolicy.json

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user":"client", "namespace": "*", "resource": "*", "apiGroup": "*"}}
2+
{"apiVersion": "abac.authorization.kubernetes.io/v1beta1", "kind": "Policy", "spec": {"user":"system:serviceaccount:kube-system:default", "namespace": "*", "resource": "*", "apiGroup": "*"}}

parts/kubernetesmaster-kube-apiserver.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ spec:
3030
- "--client-ca-file=/etc/kubernetes/certs/ca.crt"
3131
- "--service-account-key-file=/etc/kubernetes/certs/apiserver.key"
3232
- "--storage-backend=etcd2"
33+
- "--authorization-mode=ABAC,RBAC"
34+
- "--authorization-policy-file=/etc/kubernetes/manifests/defaultpolicy.json"
3335
- "--v=4"
3436
volumeMounts:
3537
- name: "etc-kubernetes"

parts/kubernetesmastercustomdata.yml

+7
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,13 @@ write_files:
8484
name: localclustercontext
8585
current-context: localclustercontext
8686
87+
- path: /etc/kubernetes/manifests/defaultpolicy.json
88+
permissions: "0644"
89+
encoding: gzip
90+
owner: "root"
91+
content: !!binary |
92+
API_SERVER_POLICY_B64_GZIP_STR
93+
8794
- path: /etc/kubernetes/manifests/kube-apiserver.yaml
8895
permissions: "0644"
8996
encoding: gzip

parts/kubernetesmastercustomscript.sh

+6-1
Original file line numberDiff line numberDiff line change
@@ -304,6 +304,10 @@ users:
304304
set -x
305305
}
306306

307+
function createSuperUserClusterRoleBinding() {
308+
kubectl create clusterrolebinding superuser --clusterrole=cluster-admin --user=client
309+
}
310+
307311
# master and node
308312
ensureDocker
309313
configNetworkPolicy
@@ -318,7 +322,8 @@ if [[ ! -z "${APISERVER_PRIVATE_KEY}" ]]; then
318322
ensureEtcdDataDir
319323
ensureEtcd
320324
ensureApiserver
325+
326+
createSuperUserClusterRoleBinding
321327
fi
322328

323329
echo "Install complete successfully"
324-

pkg/acsengine/engine.go

+2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ const (
2424
kubernetesAgentCustomScript = "kubernetesagentcustomscript.sh"
2525
kubeConfigJSON = "kubeconfig.json"
2626
kubernetesWindowsAgentCustomDataPS1 = "kuberneteswindowssetup.ps1"
27+
kubePolicyJSON = "defaultpolicy.json"
2728
)
2829

2930
const (
@@ -95,6 +96,7 @@ var kubernetesAritfacts = map[string]string{
9596
"MASTER_PROVISION_B64_GZIP_STR": kubernetesMasterCustomScript,
9697
"KUBELET_SERVICE_B64_GZIP_STR": kubernetesKubeletService,
9798
"KUBELET_SERVICE_AGENT_B64_GZIP_STR": kubernetesAgentKubeletSvc,
99+
"API_SERVER_POLICY_B64_GZIP_STR": kubePolicyJSON,
98100
}
99101

100102
var kubernetesAddonYamls = map[string]string{

pkg/acsengine/templates.go

+26-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)