跳转至

安全治理

服务网格提供了一种授权机制和两种认证方式(请求身份认证对等身份认证), 用户可以在服务网格中通过向导和 YAML 编写两种方式创建、编辑资源文件, 并可以针对网格全局、命名空间、工作负载三个层面创建规则。当资源创建成功后,Istiod 将转换为配置分发至边车代理执行。

安全治理

授权机制

服务网格提供的授权机制允许您控制对服务的访问。 使用授权机制,您可以定义规则,指定允许哪些服务相互通信。 这些规则可以基于各种因素,例如流量的源和目的地、使用的协议以及发出请求的客户端的身份。 通过使用 服务网格的授权机制,您可以确保只有经过授权的流量允许在您的服务网格中流动。

以下是如何使用 服务网格的授权机制限制两个服务之间流量的示例:

apiVersion: security.istio.io/v1beta1
kind: AuthorizationPolicy
metadata:
  name: my-auth-policy
spec:
  selector:
    matchLabels:
      app: my-service
  action: ALLOW
  rules:
  - from:
    - source:
        notNamespaces: ["my-namespace"]
    to:
    - operation:
        methods: ["GET"]

在此示例中,我们创建了一个 AuthorizationPolicy 资源,允许流量从除 my-namespace 以外的任何命名空间流向 my-service 服务,但仅限于 GET 请求。 另请参见图形界面的创建方式

请求身份验证

请求身份验证用于验证向服务发出请求的客户端的身份。

以下是如何使用请求级身份验证验证客户端身份的示例:

apiVersion: security.istio.io/v1beta1
kind: RequestAuthentication
metadata:
  name: my-authn-policy
spec:
  selector:
    matchLabels:
      app: my-service
  jwtRules:
  - issuer: "https://my-auth-server.com"
    jwksUri: "https://my-auth-server.com/.well-known/jwks.json"

在此示例中,我们创建了一个 RequestAuthentication 资源,用于验证向 my-service 服务发出请求的客户端的身份。 我们使用 JSON Web Token(JWT)来验证客户端,指定了发行者和用于验证令牌的公钥的位置。 另请参见图形界面的创建方式

对等身份验证

对等身份验证用于验证服务本身的身份。服务网格提供了几种对等身份验证选项,包括双向 TLS 身份验证和基于 JSON Web Token 的身份验证。

以下是如何使用双向 TLS 身份验证验证服务身份的示例:

apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:
  name: my-peer-authn-policy
spec:
  selector:
    matchLabels:
      app: my-service
  mtls:
    mode: STRICT

在此示例中,我们创建了一个 PeerAuthentication 资源,要求 my-service 服务进行双向 TLS 身份验证。 我们使用 STRICT 模式,该模式要求客户端和服务器都提供有效的证书。 另请参见图形界面的创建方式

更多说明,请参阅服务网格身份和认证

评论