我在 2 个不同的 aws 账户中有 2 个 lambda,如下所示: 拉姆达A:
Lambda B:
当 LambdaB 获得代入角色令牌时,该令牌可以执行以下操作:
如何仅允许 lambdaB 使用令牌仅调用该函数。无法完全访问所有 **RoleA **?
用户可以访问所有角色策略,我希望用户只能调用该功能
如果我的理解是正确的,您的主要目标是通过 lambda B 调用 lambda A。如果情况并非如此,请纠正我。
如果是这种情况,您可以在 lambda 函数 A 中使用基于资源的策略,以允许 Lambda B 附加/使用的角色进行调用。这可以避免允许 roleB 承担角色 A(来自 lambda A 的角色)。
因此,如果您进入 lambda A 的 lambda 控制台,然后转到“配置”->“权限”->“基于资源的策略”->“查看策略文档”。然后你可以使用类似下面的东西:
{
"Version": "2012-10-17",
"Id": "default",
"Statement": [
{
"Sid": "lambda-allow-lambdaB-to-invoke",
"Effect": "Allow",
"Principal": {
"AWS": "full-arn-of-roleB-used-in-lambda-B"
},
"Action": "lambda:InvokeFunction",
"Resource": "full-arn-of-lambdaA"}
}
}
]
}
这样,在 lambdaB 内部,您可以使用 boto3 lambda 客户端调用 lambdaA,并且 lambdaB 的权限仍将仅限于 roleB,因为它不会承担任何角色(roleA)。