有没有办法为cloudfromation中的任何用户附加某些策略?通过aws js创建堆栈时,您可以使用Principal作为"*"
传递堆栈策略文档。但是,如果您在cloudformation模板中创建AWS :: IAM :: Policy,则必须提供角色,用户或组,并且"*"
不起作用。
或者我如何附加嵌套堆栈的策略文档?
答案 0 :(得分:0)
嵌套的CloudFormation堆栈使用与您在AWS控制台中指定的父堆栈相同的堆栈策略文档,或者在创建/更新堆栈时使用API(例如,使用AWS SDK for JS,如您所述)。作为documented,对于堆栈策略文档,Principal
元素是必需的,但仅支持通配符(*
)。
您可以通过添加Condition
ResourceType
等于AWS::CloudFormation::Stack
的语句来进一步限制对嵌套堆栈的操作,如文档中Prevent Updates to Nested Stacks示例所述:
{
"Statement" : [
{
"Effect" : "Deny",
"Action" : "Update:*",
"Principal": "*",
"Resource" : "*",
"Condition" : {
"StringEquals" : {
"ResourceType" : ["AWS::CloudFormation::Stack"]
}
}
},
{
"Effect" : "Allow",
"Action" : "Update:*",
"Principal": "*",
"Resource" : "*"
}
]
}
AWS::IAM::Policy
资源与为嵌套堆栈指定策略的特定用例无关,但为了参考,AWS::IAM::Policy
创建了一个附加到用户或组的策略,而不是允许指定Principal
元素,如文档中所述:
请勿在附加到IAM用户和组的策略中使用Principal元素。同样,您不在IAM角色的访问策略中指定主体。在这些情况下,主体隐含地是策略附加到的用户(对于IAM用户)或承担该角色的用户(对于角色访问策略)。当策略附加到IAM组时,主体是该组中正在发出请求的IAM用户。
答案 1 :(得分:0)
我所做的是对相同(或不同)帐户的信任关系政策。它说root,但实际上应用于整个帐户:
/[a-z]+/gi