Security 如何在AWS EKS中使用istio网格启用自动MTL?
我最近开始在AWS EKS集群中学习和实现istio。为了为入口网关配置TLS,我遵循了下面的步骤,它只是要求您将AWS ACM ARN id作为注释添加到istio ingressgateway中。因此,我既不必使用证书来创建Security 如何在AWS EKS中使用istio网格启用自动MTL?,security,kubernetes,istio,amazon-eks,aws-certificate-manager,Security,Kubernetes,Istio,Amazon Eks,Aws Certificate Manager,我最近开始在AWS EKS集群中学习和实现istio。为了为入口网关配置TLS,我遵循了下面的步骤,它只是要求您将AWS ACM ARN id作为注释添加到istio ingressgateway中。因此,我既不必使用证书来创建机密,也不必使用特使代理的SDS 此设置在网关处终止TLS,但我还希望在mesh中启用MTL以确保服务通信的安全。通过以下操作,我创建了此策略以在命名空间中强制使用MTL: apiVersion: security.istio.io/v1beta1 kind: PeerA
机密
,也不必使用特使代理的SDS
此设置在网关处终止TLS,但我还希望在mesh中启用MTL以确保服务通信的安全。通过以下操作,我创建了此策略以在命名空间中强制使用MTL:
apiVersion: security.istio.io/v1beta1
kind: PeerAuthentication
metadata:
name: xyz-mtls-policy
namespace: xyz-dev
spec:
mtls:
mode: STRICT
但是,即使在应用了这一点之后,我仍然看到一个服务能够使用http
调用另一个服务
因此,我的问题是:如何使用ACM证书在我的命名空间中实现MTL?如果您是从网格内部调用,我会说它工作正常,请查看并重试 Istio中的相互TLS Istio提供相互TLS作为服务对服务身份验证的解决方案 Istio使用sidecar模式,这意味着每个应用程序容器都有一个sidecar代理容器,在同一个pod中运行在它旁边
- 当服务接收或发送网络流量时,流量始终 首先通过特使代理
- 当在两个服务之间启用mTLS时,客户端和服务器端特使代理在发送请求之前验证彼此的身份
- 如果验证成功,则客户端代理将加密流量,并将其发送到服务器端代理
- 服务器端代理解密流量并将其本地转发到实际的目标服务
我使用的是istio 1.6.8,我认为它默认启用mTLS 是的,从istio 1.5版本开始默认启用。关于这一点,有很多相关的问题 自动相互TLS现在默认启用。侧车之间的交通自动配置为相互TLS。如果担心加密开销,可以通过在安装过程中添加选项--set values.global.mtls.auto=false显式禁用此选项。有关更多详细信息,请参阅
是否有明确的程序证明它确实在使用MTL 我认为有三种方法
- 用豆荚测试
- 凯利
- 普罗米修斯
如果还有任何问题,请告诉我。您是从网格内部还是外部呼叫?如果它在网格内,那么我会说它工作得很好,看看。另外看一看。从网格内部调用。我在前面确实参考了这篇文章,但不知道如何检查
connection\u security\u policy
metric。最终,我能够从普罗米修斯那里进行检查,并将其设置为mutual_tls
,即使我没有应用上述政策。我使用的是istio 1.6.8,我认为它默认启用mTLS。是否有任何明确的过程来证明它确实在使用MTL?我已经回答了你在答案中的所有问题。嘿,我如何从网格外部使用POD进行测试?编辑:根据AWS公开的pod IP地址?还是你说的服务?那么,如果是服务、nodeport、clusterip还是loadbalancer?@Grimlock在banzaicloud上有一个关于使用curl测试它的示例。有用于测试httpbin和sleep示例的示例。是的,这些示例现在有意义了。谢谢