文件名称:kube2iam:kube2iam为在Kubernetes上运行的Pod提供了不同的AWS IAM角色
文件大小:68KB
文件格式:ZIP
更新时间:2024-02-20 08:09:52
kubernetes aws AmazonWebServicesGo
kube2iam 根据注释为运行在kubernetes集群中的容器提供IAM凭据。 语境 传统上,在AWS中,服务级别隔离是使用IAM角色完成的。 IAM角色是通过实例配置文件分配的,服务可以通过ec2元数据API的aws-sdk的透明用法来访问它们。 使用aws-sdk时,将对EC2元数据API进行调用,该API提供临时凭证,这些凭证随后用于对AWS服务的调用。 问题陈述 问题在于,在基于多租户容器的世界中,多个容器将共享基础节点。 给定的容器将共享相同的基础节点,通过IAM角色提供对AWS资源的访问将意味着需要创建一个IAM角色,该角色是所有IAM角色的并集。 从安全角度来看,这是不可接受的。 解 解决方案是将流向docker容器的ec2元数据API的流量重定向到在每个实例上运行的容器,调用AWS API检索临时凭证并将其返回给调用方。 其他调用将被代理到EC2元数据API。 该容器将需要在启用主机网络的情况下运行,以便它可以调用EC2元数据API本身。 用法 IAM角色 必须创建一个可以承担其他角色的IAM角色,并将其分配给每个kubernetes工作者。 { "Vers
【文件预览】:
kube2iam-master
----.dockerignore(32B)
----go.mod(2KB)
----.github()
--------PULL_REQUEST_TEMPLATE.md(411B)
--------workflows()
----namespace_test.go(1KB)
----go.sum(27KB)
----metrics()
--------metrics.go(5KB)
----deployment.yaml(891B)
----iam()
--------iam.go(5KB)
--------arn_test.go(1KB)
--------iam_test.go(722B)
--------arn.go(1KB)
----pod.go(2KB)
----cover.sh(690B)
----Dockerfile(343B)
----k8s()
--------k8s.go(6KB)
----kustomize()
--------overlays()
--------base()
----examples()
--------eks-example.yml(2KB)
----.travis.yml(1KB)
----LICENSE(1KB)
----README.md(25KB)
----Makefile(3KB)
----mappings()
--------mapper.go(5KB)
--------mapper_test.go(16KB)
----iptables()
--------iptables_test.go(957B)
--------iptables.go(974B)
----namespace.go(3KB)
----charts()
--------kube2iam()
----.gitignore(361B)
----server()
--------server.go(15KB)
----cmd()
--------main.go(5KB)
----version()
--------version.go(434B)