【发布时间】:2021-04-07 19:54:32
【问题描述】:
在“AuthorizationPolicy”中使用通配符路径时,Istio 返回“RBAC: access denied”,请参阅文件:
api-key-test-authorization.yml
apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
name: api-key-test-authorization
namespace: test
spec:
selector:
matchLabels:
api-key-secured: enabled
rules:
- to:
- operation:
paths: ["*/test1", "*/test2/*", "*/test4*"]
- to:
- operation:
paths: ["/*"]
when:
- key: request.headers[api-key]
values: ["XXXXXXXX"]
Resources.java
...
enter code here
@GetMapping(value = "/test1")
@ResponseBody
public ResponseEntity<Resource> getTest1(HttpServletResponse response) throws IOException {
System.out.println("Test 1");
return ResponseEntity.ok().build();
}
@GetMapping(value = "/test2/{id}/xpto")
@ResponseBody
public ResponseEntity<Resource> getTest2(@PathVariable("id") String id, HttpServletResponse response) throws IOException {
System.out.println(id + " XPTO");
return ResponseEntity.ok().build();
}
@GetMapping(value = "/test3/{id}")
@ResponseBody
public ResponseEntity<Resource> getTest3(@PathVariable("id") String id, HttpServletResponse response) throws IOException {
System.out.println(id + " of Test 3");
return ResponseEntity.ok().build();
}
结果:
- “http://example.com/test1”:工作正常;
- “http://example.com/test2/xxx/xpto”:返回“RBAC:拒绝访问”;
- “http://example.com/test3/xxx”:返回“RBAC:访问被拒绝”;
这些路径被配置为不需要传递“api-key”,但是当路径中有通配符(*)时,它会返回要求“api-key”的错误。
我正在使用 Istio.1.4.9
【问题讨论】:
标签: java spring kubernetes istio