【发布时间】:2018-11-18 06:32:27
【问题描述】:
使用 AWS,我正在构建一个 cloud formation 堆栈,定义以下内容:
- 几个资源(为简单起见,下面没有转录)
- 一个名为
MyPolicy的策略允许使用这些资源(为简单起见,以下未转录) - 一个名为
MyRole的角色已提交给该策略
堆栈将由管理员创建;并且一旦创建,目标是允许(从堆栈外部)一些用户假设MyRole 以使用多个资源。
我的问题:应该如何定义角色以便用户可以承担(特定用户将被允许从堆栈外部)?
在 AWS 帮助页面中,他们给出了 example 其中 "Service": [ "ec2.amazonaws.com" ],这意味着 一个 ec2 实例被允许承担这个角色......但我不明白它是怎么做到的翻译给用户,并且没有给出关于该场景的示例。
以下是我使用JSON 格式的堆栈定义:
{
"AWSTemplateFormatVersion" : "2010-09-09",
"Resources" : {
"MyRole" : {
"Type": "AWS::IAM::Role",
"RoleName": "MyRole",
"AssumeRolePolicyDocument": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": { "Service": [ "??" ] },
"Action": [ "sts:AssumeRole" ]
}
]
},
"ManagedPolicyArns": [ { "Fn::GetAtt" : [ "MyPolicy", "Arn" ] } ],
}
}
}
【问题讨论】:
-
抱歉,您的问题有点不清楚。 “为了被用户接受”是什么意思?您是否要授予在用户可能没有必要权限自行部署这些资源的情况下创建堆栈的权限,或者您是否尝试在资源创建后授予使用这些资源的权限?请编辑您的问题以提供更多详细信息,并举例说明您希望他们能够做到的事情,而如果没有这样的配置,他们将无法做到。
-
如果您询问如何将 IAM 用户指定为 IAM 角色中的委托人,请参阅docs.aws.amazon.com/IAM/latest/UserGuide/…。
标签: amazon-web-services amazon-cloudformation amazon-iam