Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 如何在AWS EKS中使用istio网格启用自动MTL?_Security_Kubernetes_Istio_Amazon Eks_Aws Certificate Manager - Fatal编程技术网

Security 如何在AWS EKS中使用istio网格启用自动MTL?

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

我最近开始在AWS EKS集群中学习和实现istio。为了为入口网关配置TLS,我遵循了下面的步骤,它只是要求您将AWS ACM ARN id作为注释添加到istio ingressgateway中。因此,我既不必使用证书来创建
机密
,也不必使用特使代理的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

我认为有三种方法

  • 用豆荚测试
您可以将其从“严格”更改为“允许”,并从网格外部调用它,它应该可以工作。然后将其更改为strict并再次调用,它不应该工作。在这两种方式中,您都应该能够从网格内的一个pod调用它

  • 凯利
如果你想看到它的视觉方式kiali应该有一个类似挂锁的东西时,mtls是启用的,有关于这一点

  • 普罗米修斯
banzaicloud中已经提到了它,您在评论中提到,您可以检查连接安全策略度量标签。如果请求实际上已加密,则Istio将此标签设置为“相互”



如果还有任何问题,请告诉我。

您是从网格内部还是外部呼叫?如果它在网格内,那么我会说它工作得很好,看看。另外看一看。从网格内部调用。我在前面确实参考了这篇文章,但不知道如何检查
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示例的示例。是的,这些示例现在有意义了。谢谢