Skip to content

Commit 5e67180

Browse files
committed
Add authorizer to Tornjak config
Signed-off-by: Alan Cha <Alan.cha1@ibm.com>
1 parent ccd3a2c commit 5e67180

1 file changed

Lines changed: 42 additions & 0 deletions

File tree

charts/spire/charts/spire-server/templates/tornjak-config.yaml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,48 @@ data:
5353
audience = "{{ .Values.tornjak.config.userManagement.audience }}"
5454
}
5555
}
56+
57+
Authorizer "RBAC" {
58+
plugin_data {
59+
name = "Admin Viewer Policy"
60+
role "admin" { desc = "admin person" }
61+
role "viewer" { desc = "viewer person" }
62+
# this special character role is reserved for allowing all authenticated persons
63+
role "" { desc = "authenticated person" }
64+
65+
# home tornjak backend api allowed with any successful authentication
66+
API "/" { allowed_roles = [""] }
67+
# allowed with successful authentication and either admin or viewer role
68+
# v1 API
69+
APIv1 "GET /api/v1/spire/serverinfo" { allowed_roles = ["admin", "viewer"] }
70+
APIv1 "GET /api/v1/spire/healthcheck" { allowed_roles = ["admin", "viewer"] }
71+
APIv1 "GET /api/v1/spire/agents" { allowed_roles = ["admin", "viewer"] }
72+
APIv1 "DELETE /api/v1/spire/agents" { allowed_roles = ["admin"] }
73+
APIv1 "POST /api/v1/spire/agents/ban" { allowed_roles = ["admin"] }
74+
APIv1 "POST /api/v1/spire/agents/jointoken" { allowed_roles = ["admin"] }
75+
APIv1 "GET /api/v1/spire/entries" { allowed_roles = ["admin", "viewer"] }
76+
APIv1 "POST /api/v1/spire/entries" { allowed_roles = ["admin"] }
77+
APIv1 "DELETE /api/v1/spire/entries" { allowed_roles = ["admin"] }
78+
79+
# SPIRE Federation API calls
80+
APIv1 "GET /api/v1/spire/bundle" { allowed_roles = ["admin", "viewer"] }
81+
APIv1 "GET /api/v1/spire/federations/bundles" { allowed_roles = ["admin", "viewer"] }
82+
APIv1 "POST /api/v1/spire/federations/bundles" { allowed_roles = ["admin"] }
83+
APIv1 "PATCH /api/v1/spire/federations/bundles" { allowed_roles = ["admin"] }
84+
APIv1 "DELETE /api/v1/spire/federations/bundles" { allowed_roles = ["admin"] }
85+
86+
# Tornjak API calls
87+
APIv1 "GET /api/v1/tornjak/serverinfo" { allowed_roles = ["admin", "viewer"] }
88+
APIv1 "GET /api/v1/tornjak/agents" { allowed_roles = ["admin", "viewer"] }
89+
APIv1 "POST /api/v1/tornjak/selectors" { allowed_roles = ["admin"] }
90+
APIv1 "GET /api/v1/tornjak/selectors" { allowed_roles = ["admin", "viewer"] }
91+
APIv1 "GET /api/v1/tornjak/clusters" { allowed_roles = ["admin", "viewer"] }
92+
APIv1 "POST /api/v1/tornjak/clusters" { allowed_roles = ["admin"] }
93+
APIv1 "PATCH /api/v1/tornjak/clusters" { allowed_roles = ["admin"] }
94+
APIv1 "DELETE /api/v1/tornjak/clusters" { allowed_roles = ["admin"] }
95+
}
96+
}
97+
5698
{{- end }}
5799
}
58100
{{- end }}

0 commit comments

Comments
 (0)