本文介绍了IAM角色参考多个EKS OIDC的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我的每个阶段(开发、试运行、PRD)有3个不同的EKS集群我需要为我们群集中部署的每个应用程序提供多个IAM角色。我们的想法是能够在IAM角色的信任关系中引用多个EKS OIDC,因此我最终将在群集上为每个应用程序提供1个IAM角色,而不是3个。
配置一个IAM角色+信任关系非常简单,如下所示:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::xxxxx:oidc-provider/oidc.eks.eu-west-1.amazonaws.com/id/xxxx-oidc-cluster-1"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringLike": {
"oidc.eks.eu-west-1.amazonaws.com/id/xxxx-oidc-cluster-1:sub": "system:serviceaccount:*:*"
}
}
}
]
}
我尝试做的是引用相同信任关系中的其他集群(和xxxx-oidc-cluster-3
)。我翻了翻官方doc关于如何构建这样的IAM JSON策略,但找不到任何可以帮助我的东西。我想我可能遗漏了什么。推荐答案
最佳做法可能是将您的IAM角色范围限定为每个群集的每个应用程序一个,但如果您确实要这样做,则需要在您的承担角色策略(信任关系)中使用多个单独的语句。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::xxxxx:oidc-provider/oidc.eks.eu-west-1.amazonaws.com/id/xxxx-oidc-cluster-1"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"oidc.eks.eu-west-1.amazonaws.com/id/xxxx-oidc-cluster-1:sub": "system:serviceaccount:*:*"
}
}
},
{
"Effect": "Allow",
"Principal": {
"Federated": "arn:aws:iam::xxxxx:oidc-provider/oidc.eks.eu-west-1.amazonaws.com/id/xxxx-oidc-cluster-2"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"oidc.eks.eu-west-1.amazonaws.com/id/xxxx-oidc-cluster-2:sub": "system:serviceaccount:*:*""
}
}
}
]
}
这篇关于IAM角色参考多个EKS OIDC的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!