更新时间:2024-03-04 GMT+08:00
服务授权
服务授权用来实现对网格中服务的访问控制功能,即判断一个请求是否允许发送到当前的服务。服务授权通过负载选择器Selector选择目标负载。认证的规则通过JWTRule来描述,定义如何匹配JWT令牌上的认证信息。
创建服务授权
支持YAML创建服务授权。
- 登录UCS控制台,在左侧导航栏中单击“服务网格”。
- 单击服务网格名称,进入详情页。
- 在左侧导航栏,单击“服务安全”下的“服务授权”,进入服务授权详情页。
- 单击右上角“YAML创建”,弹出服务授权YAML创建界面。
- 设置如下:满足特定条件的请求访问才会被接受,其他不满足所设定条件的请求访问都会被拒绝。
apiVersion: security.istio.io/v1beta1 kind: AuthorizationPolicy # 创建服务安全类别为服务授权 metadata: name: forecast # 服务授权名 namespace: weather # 在weather命名空间下创建 spec: selector: matchLabels: app: forecast version: v2 rules: - from: - source: principals: ["cluster.local/ns/weather/sa/frontend"] to: - operation: methods: ["PUT","POST"] when: - key: request.headers[group] values: ["admin"]
更新服务授权
- 登录UCS控制台,在左侧导航栏中单击“服务网格”。
- 单击服务网格名称,进入详情页。
- 在左侧导航栏,单击“服务安全”下的“服务授权”,进入服务授权详情页。
- 选定要更新的策略,单击操作列下的“YAML编辑”。
- 更新设置的条件,比如版本号。
spec: selector: matchLabels: app: forecast version: v2 rules: - from: - source: principals: ["cluster.local/ns/weather/sa/frontend"] to: - operation: methods: ["PUT","POST"] when: - key: request.headers[group] values: ["admin"]
删除服务授权
删除操作无法恢复,请谨慎操作。删除服务授权不会影响关联的服务本身运行。
- 登录UCS控制台,在左侧导航栏中单击“服务网格”。
- 单击服务网格名称,进入详情页。
- 在左侧导航栏,单击“服务安全”下的“服务授权”,进入服务授权详情页。
- 选定要删除的策略,单击操作列下的“删除”。
- 弹出“删除服务授权策略”对话框,单击“是”,删除服务授权完成。
案例
TCP 服务访问授权。
apiVersion: security.istio.io/v1beta1 kind: AuthorizationPolicy metadata: name: tcp-auth-policy namespace: weather spec: selector: matchLabels: app: forecast action: ALLOW rules: - from: - source: ipBlocks: ["10.**.**.**/**"] to: - operation: ports: ["8090"]
父主题: 服务安全