Anthos Service Mesh 1.5 中引入了两个测试版安全 API:PeerAuthentication
和 RequestAuthentication
。Alpha 版身份验证政策已弃用。本页面介绍了如何将 Alpha 版身份验证政策更新为 Beta 版安全政策。
将服务选定的政策更改为工作负载选择器
所有安全 Beta 版政策都必须使用工作负载选择器或基于命名空间的配置模型,而不是基于服务的配置模型。
更新为 RequestAuthentication
以下示例展示了如何从 Alpha 版 Policy
更新为 RequestAuthentication
:
# Alpha policy for authentication to enable Origin Authentication for service foo.
apiVersion: "authentication.istio.io/v1alpha1"
kind: "Policy"
metadata:
name: "jwt-example"
spec:
targets:
- name: httpbin
origins:
- jwt:
issuer: "testing@secure.istio.io"
jwksUri: "https://raw.githubusercontent.com/istio/istio/release-1.5/security/tools/jwt/samples/jwks.json"
更新为相应的 Beta 版 RequestAuthentication
资源:
apiVersion: "security.istio.io/v1beta1"
kind: "RequestAuthentication"
metadata:
name: "jwt-example"
spec:
selector:
matchLabels:
app: httpbin
jwtRules:
- issuer: "testing@secure.istio.io"
jwksUri: "https://raw.githubusercontent.com/istio/istio/release-1.5/security/tools/jwt/samples/jwks.json"
更新为 PeerAuthentication
您还必须更新双向 TLS (mTLS) 的身份验证政策。Alpha 版 MeshPolicy
启用了网格范围的 PERMISSIVE
或 STRICT
mTLS。Beta 版 PeerAuthentication
资源会替换 Alpha 版 MeshPolicy
。具体来说,如果您有一个如下所示的 MeshPolicy
:
apiVersion: "authentication.istio.io/v1alpha1"
kind: "MeshPolicy"
metadata:
name: "default"
labels:
release: istio
spec:
peers:
- mtls:
mode: PERMISSIVE
使用根命名空间中的 PeerAuthentication
资源更新该政策:
apiVersion: "security.istio.io/v1beta1"
kind: "PeerAuthentication"
metadata:
name: "default"
namespace: "istio-system"
spec:
mtls:
mode: PERMISSIVE
在 Anthos Service Mesh 1.7.8 之前,默认安装包含具有 PERMISSIVE 模式的 MeshPolicy
。Anthos Service Mesh 1.7.8 不会再生成 MeshPolicy.
- 我们建议您使用基于命名空间的
PeerAuthentication
。尽管 Anthos Service Mesh 支持自动 mTLS,但它仅适用于网格级或命名空间级PeerAuthentication
。使用工作负载级PeerAuthentication
时,您需要配置相应的DestinationRule
。 - 您可以将 Alpha 版身份验证政策配置为使用原始身份验证来拒绝请求。但是,新的
RequestAuthentication
仅会在令牌无效时拒绝请求。我们建议您使用AuthorizationPolicy
来定义进一步的访问权限控制。 - 虽然 Alpha 版身份验证政策在 Anthos Service Mesh 1.7.8-asm.10 中仍有效,但它将在下一个版本中完全被弃用。我们建议您尽快完成迁移。
- 在过渡期间,如果同时存在 Alpha 版和 Beta 版政策,则仅 Beta 版政策会生效,而 Alpha 版政策会被忽略。
- 如需了解信息,请参阅 Istio 文档中的身份验证政策。