AEl*_*dge 6 amazon-web-services amazon-iam kubernetes istio
我目前正在探索使用EKS在AWS上运行Istio/Kubernetes集群.我希望能够为群集中运行的每个服务分配不同的IAM角色,以限制每个服务的AWS权限.
在非Istio Kubernetes集群中,这个设施由kube2iam等项目提供,但这在Istio世界看来并不理想,因为kube2iam依赖于iptables规则,Istio已经在使用iptables规则将所有出站流量转移到Envoy边车.
Istio 安全文档说,身份模型适用于不同的底层实现,而在AWS上,实现是IAM:
在Istio身份模型中,Istio使用一流的服务标识来确定服务的身份.这为代表人类用户,个人服务或一组服务提供了极大的灵活性和粒度.在没有此类身份的平台上,Istio可以使用可以对服务实例进行分组的其他身份,例如服务名称.
不同平台上的Istio服务标识:
Kubernetes:Kubernetes服务帐户
GKE/GCE:可以使用GCP服务帐户
GCP:GCP服务帐户
AWS:AWS IAM用户/角色帐户
但我没有遇到任何关于如何将IAM角色分配给Istio ServiceRoles的其他文档.
有没有人找到解决方案?
小智 1
我也在为此苦苦挣扎,但几乎没有找到帮助。我确实根据这个人的建议取得了成功 https://groups.google.com/forum/m/#!topic/istio-users/3-fp2JPb2dQ
在我添加该服务条目之前,我没有运气让 kube2iam 正常工作(请参阅下文或点击链接)
基本上你添加这个
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
name: apipa
spec:
hosts:
- 169.254.169.254
ports:
- number: 80
name: http
protocol: HTTP
resolution: DNS
location: MESH_EXTERNAL
Run Code Online (Sandbox Code Playgroud)
在应用 serviceentry 之前查看 istio-proxy sidecar,您可能会在日志中发现大量 404 错误,其路径看起来都像 aws api 调用。服务进入后,这些就变成了200。
更新...后来我发现这是使用 istio 进行任何外部网格通信时的预期要求。请参阅https://istio.io/docs/concepts/traffic-management/#service-entries
| 归档时间: |
|
| 查看次数: |
730 次 |
| 最近记录: |