AssumeRolePolicyDocument
的用途感到困惑。要创建一个角色,您所需要的只是一个可以附加策略的父名称。
AssumeRolePolicyDocument
似乎是该父名称但是不知何故。这是做什么的?
"AssumeRolePolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": ["lambda.amazonaws.com"]
},
"Action": ["sts:AssumeRole"]
}
]
}
#1 楼
AssumeRolePolicyDocument
的目的是包含信任关系策略,该策略授予实体承担角色的权限。在您的示例中,它授予Lambda服务以承担假定角色的能力。 /docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html
https://docs.aws.amazon.com/cli/latest/reference/iam/create- role.html
#2 楼
承担角色策略文档的目的是授予IAM实体承担角色的权限。也称为“角色信任策略”。换句话说,对于您设置的给定权限,它允许来自某些AWS账户的用户承担此角色并访问该账户。建议您更新角色信任策略以将访问权限限制为仅授权用户,否则任何AWS账户都可以承担该角色并访问该帐户。
通过使用Amazon Resource Name指定主体AWS帐户,IAM用户,IAM角色,联合用户或假定角色用户(ARN),您允许或拒绝访问以承担该角色(
sts:AssumeRole
)。#3 楼
对于在命名约定上费尽心思的人:AssumeRolePolicyDocument(在CloudFormation yaml中)=信任关系(在AWS Console Web GUI中)
政策(在CloudFormation yaml中) =权限(在AWS Console Web GUI中)
#4 楼
我认为,考虑到创建角色的用户不一定是将其附加到某个地方的人,这一点要清晰得多:AssumeRolePolicyDocument
是创建角色的用户所施加的限制-例如可能是管理员。它可以防止其他用户将其附加到他们喜欢的任何AWS服务/用户。此外,它并没有告诉您实际在何处使用它。它是角色方面的一种保护(将角色作为一种资源也应加以保护)。OTOH实际上是为服务/用户分配角色,由实际上需要一些服务才能具有权限的用户完成。而且只有在角色的
AssumeRolePolicyDocument
允许的情况下,他们才被允许这样做。,当您是唯一的用户时,您可能不太关心它。但是,它确实增加了更多的安全性和文档(强制:))如何使用该角色。
评论
我想我为什么要扮演一个角色感到困惑?为什么不能仅将策略分配给它?
–mutant_city
18-10-2在23:55
@mutant_city,您需要允许Lambda权限承担角色。如果不这样做,Lambda将无法在您的环境中做任何事情。该角色具有分配给其的策略,这些策略为Lambda提供执行工作所需的特权。
– kenlukas
18-10-3在0:49
好。因此,您允许lambda承担您已将策略附加到...的角色吗?
–mutant_city
18-10-3在1:58
是的,简而言之。
– kenlukas
18-10-3在12:22