我有3个不同的EKS集群为每个阶段(开发,暂存,prd),我需要在我们的集群中部署的每个应用程序具有多个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-2和xxxx-oidc-cluster-3)。我深入研究了官方doc,了解如何构建这样的IAM JSON策略,但找不到任何可以提供帮助的东西。我想也许我漏掉了什么。
发布于 2021-10-26 20:50:20
最佳实践可能是将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:*:*""
}
}
}
]
}https://stackoverflow.com/questions/68573013
复制相似问题