我在此用例中有 2 个 AWS 账户,
账户 A 是我的 EKS 集群所在的位置,我想从账户 B 访问该集群,特别是 API 服务器端点和证书数据,我可以通过 eks:DescribeCluster 操作获取这些数据。
具体来说,我的 lambda 在账户 B 中运行,并且必须从账户 A 中的 EKS 集群获取上述数据,为了实现这一目标,最好的解决方案是什么?
我采取的方法是执行链式 sts:AssumeRole 操作来实现上述目标,即账户 B Lambda 角色在账户 A 中承担一个角色(此角色 TrustPolicy 已更新以实现此目的)并且它有效,但是我想知道其他什么此用例可使用替代解决方案。
谢谢
您需要为此创建跨账户策略:
允许承担 lambda 的角色:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::Account A:role/my-lambda-execution-role"
},
"Action": "sts:AssumeRole"
}
]
}
对于你EKS:
{
"Version": "2012-10-17",
"Statement": {
"Effect": "Allow",
"Action": "sts:AssumeRole",
"Resource": "arn:aws:iam::Account A:role/role-on-source-account"
}
}
假设角色允许
eks:DescribeCluster
此阅读更详细地解释了:https://repost.aws/knowledge-center/lambda-function-assume-iam-role。尝试 IAM 角色,直到获得所需的效果。