首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将Istio与AWS IAM集成

将Istio与AWS IAM集成
EN

Stack Overflow用户
提问于 2018-10-10 11:59:36
回答 2查看 1.5K关注 0票数 7

我目前正在探索使用EKS在AWS上运行Istio / Kubernetes集群。我希望能够为群集中运行的每个服务分配不同的IAM角色,以限制每个服务的AWS权限。

在非Istio Kubernetes集群中,此功能由kube2iam等项目提供,但在Istio世界中,这似乎并不理想,因为kube2iam依赖iptables规则,并且Istio已经使用iptables规则将所有出站流量转移到特使侧车。

Istio security documentation表示,身份模型迎合了不同的底层实现,而在亚马逊网络服务上,该实现是IAM:

在Istio标识模型中,Istio使用一级服务标识来确定服务的标识。这为表示人类用户、单个服务或一组服务提供了极大的灵活性和粒度。在没有此类标识的平台上,Istio可以使用可以对服务实例进行分组的其他标识,例如服务名称。

不同平台上的Istio服务标识:

Kubernetes: Kubernetes服务帐号

GKE/GCE:可以使用GCP服务帐户

GCP: GCP服务帐户

AWS: AWS IAM用户/角色帐户

但我还没有看到任何关于如何将IAM角色分配给Istio ServiceRoles的额外文档。

有人找到解决这个问题的办法了吗?

更新:请参阅IRSA

EN

回答 2

Stack Overflow用户

发布于 2018-12-19 08:26:00

我也在为此而苦苦挣扎,但几乎没有找到什么帮助。我确实成功地使用了这个人的建议https://groups.google.com/forum/m/#!topic/istio-users/3-fp2JPb2dQ

在我添加该服务入口之前,我一直没有让kube2iam正常工作(见下文或点击链接)。

基本上你可以添加这个

代码语言:javascript
运行
复制
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

从应用serviceentry之前查看istio-proxy侧边车可以看出,日志中有许多404错误,路径看起来都像aws api调用。在服务进入后,这些都变成了200。

更新....后来我发现,当使用istio进行任何外部网格通信时,这是预期的要求。请参阅https://istio.io/docs/concepts/traffic-management/#service-entries

票数 1
EN

Stack Overflow用户

发布于 2019-10-08 23:14:21

Istio配置允许从代理https://istio.io/docs/tasks/traffic-management/egress/egress-control/#direct-access-to-external-services中排除某些IP范围

因此,如果您将global.proxy.excludeIPRanges: "169.254.169.254/32"添加到istio配置,则所有对AWS元数据IP的请求将不会由istio处理,而是直接发送到此IP。

它将允许应用kube2iam iptables规则。

请参阅https://github.com/istio/istio/issues/9297#issuecomment-516353921

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52732417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档