【发布时间】:2020-07-12 16:02:41
【问题描述】:
在我的 AWS 账户中,我正在构建一个用于创建新策略的新 Cloudformation 模板,并且我想将这些模板附加到账户中的一些现有角色。 以下是我尝试引用它们的方式:
{
"AWSTemplateFormatVersion": "2010-09-09",
"Description": "Names of existing roles to which the restrictive policies need added",
"Parameters": {
"AdditionalExecutionRoleParameter": {
"Type": "AWS::IAM::Role",
"Default": "CloudOps"
}
},
"Resources": { (and so on)
然后在新策略下方的部分中,我一直在尝试引用这些现有角色(在本例中为“AdditionalExecutionRoleParameter”)并使用 Roles 参数将策略附加到它们。但是,在尝试部署 CloudFormation 模板时,我不断收到“无法检索外部值”错误...我尝试输入角色名称“CloudOps”作为参数“默认”,并且我已经还尝试在那里输入角色 ARN ......没有任何效果。
【问题讨论】:
-
您能否提供显示的模板的相关部分,即您引用
AdditionalExecutionRoleParameter的方式和位置? -
当然...我将它与其他角色一起引用:},“角色”:[{“Ref”:“NewRoleNoProblem”},{“Ref”:“AdditionalExecutionRoleParameter”}]将策略附加到我在模板中创建的新角色没有问题;问题是如何附加到我的模板未创建的帐户中的现有角色
-
啊,我明白了。 @jarmod 已经指出了这个问题。可以使用
String数据类型代替AWS::IAM::Role传递角色。 -
对不起,我应该提到我已经尝试过了......我在尝试部署时收到此错误:角色名称的指定值无效。它必须仅包含字母数字字符和/或以下字符:+=,.@_-(服务:AmazonIdentityManagement;状态代码:400;错误代码:ValidationError;请求 ID:f2958ace-4cf8-4079-a447-eb3fe3bbe8e0)我是什么d 输入的是角色 ARN,使用 * 作为帐户 ID,因此我可以部署到多个帐户。还有其他想法吗?
-
那可能是……谢谢您的建议!我对 CFT 非常熟悉,但对宏等不太熟悉,或者我如何使用我的模板以有用的方式实现它。我得调查一下。
标签: amazon-web-services amazon-cloudformation aws-cloudformation-custom-resource