我的 aws 角色的信任策略有啥问题,它不能被假定为跨账户?
Posted
技术标签:
【中文标题】我的 aws 角色的信任策略有啥问题,它不能被假定为跨账户?【英文标题】:What's wrong with the trust policy on my aws role that it can't be assumed cross-accounts?我的 aws 角色的信任策略有什么问题,它不能被假定为跨账户? 【发布时间】:2022-01-19 20:29:24 【问题描述】:我的 lambda,名为“configure-idp”,在帐户 AAAAAAAAAAAA 中作为角色“configure-saml-providerA”运行。我需要在帐户 BBBBBBBBBBBB 中担任角色“configure-saml-providerB”,该帐户有权为帐户 BBBBBBBBBBBB 配置 ipd。对“configure-saml-providerB”的信任如下:
"Version": "2012-10-17",
"Statement": [
"Effect": "Allow",
"Principal":
"AWS": "arn:aws:sts::AAAAAAAAAAAA:assumed-role/configure-saml-providerA/configure-idp"
,
"Action": "sts:AssumeRole"
]
然而,当我的 lambda 尝试运行 assume_role
命令(见下文)时,我得到:
An error occurred (AccessDenied) when calling the AssumeRole operation: User: arn:aws:sts::AAAAAAAAAAAA:assumed-role/configure-saml-providerA/configure-idp is not authorized to perform: sts:AssumeRole on resource: arn:aws:iam::BBBBBBBBBBBB:role/configure-saml-provider
上面提到的assume_role
代码是:
client = boto3.client('sts')
assumed_role_object = client.assume_role(
RoleArn = f"arn:aws:iam::BBBBBBBBBBBB:role/configure-saml-providerB",
RoleSessionName = "LambdaSetIDPSession"
)
我还尝试将信任中的主要 ARN 更改为如下所示:
arn:aws:sts::AAAAAAAAAAAA:role/configure-saml-providerA
但得到同样的错误。
当对角色的信任设置为允许我担任arn:aws:iam::BBBBBBBBBBBB:role/configure-saml-providerB
角色时,为什么我无法担任该角色?
【问题讨论】:
【参考方案1】:考虑以下
https://aws.amazon.com/es/premiumsupport/knowledge-center/iam-assume-role-error/
也许您是 aws 组织的一员,并且有一个 SCP 限制您担任角色?
【讨论】:
谢谢@Mathias-lagomarsino。我实际上是一个组织的一部分,但是没有 SCP 可以防止角色假设。谢谢你的宝贵建议。也许遇到这种情况的其他用户会发现这可以解决他们的问题。【参考方案2】:问题是我在尝试担任角色时使用了帐户别名而不是 ARN 中的帐户 ID。你不会在帖子中看到我混淆了敏感信息。
【讨论】:
以上是关于我的 aws 角色的信任策略有啥问题,它不能被假定为跨账户?的主要内容,如果未能解决你的问题,请参考以下文章