|
53 | 53 | audience = "{{ .Values.tornjak.config.userManagement.audience }}" |
54 | 54 | } |
55 | 55 | } |
| 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 | +
|
56 | 98 | {{- end }} |
57 | 99 | } |
58 | 100 | {{- end }} |
0 commit comments