首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在新的CloudFormation模板中引用现有角色?

如何在新的CloudFormation模板中引用现有角色?
EN

Stack Overflow用户
提问于 2020-04-01 00:16:50
回答 2查看 8.7K关注 0票数 6

在我的AWS帐户中,我正在构建一个创建新策略的新Cloudformation模板,并且我希望将这些策略附加到帐户中的一些现有角色中。以下是我一直试图引用它们的方法:

代码语言:javascript
复制
{
    "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”),并使用角色参数将策略附加到它们。但是,当我试图部署CloudFormation模板时,我一直收到一个“无法检索外部值”的错误.我尝试输入"CloudOps",这是角色名,作为参数“默认”,我也尝试输入角色ARN .什么都没起作用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-29 16:13:52

好吧..。我最后做的是这么简单的事情,很好.

代码语言:javascript
复制
"Parameters": {
    "RoleNameRoleParameter": {
        "Type": "String",
        "Default": "RoleNameRole"
票数 2
EN

Stack Overflow用户

发布于 2020-04-01 00:32:48

参数type字段中并不支持所有AWS资源类型。

完整的列表在AWS-特定参数类型。例如,它包括:

  • AWS::EC2::VPC::Id
  • List
  • AWS::SSM::参数::Name

此列表不包括AWS::IAM::Role (或任何IAM资源)。

如果您只是试图将一个新的IAM策略与一个现有的名为IAM角色相关联,那么请注意,AWS::IAM::Policy构造有一个Roles属性,您应该提供要应用该策略的角色名称列表。它需要角色名称,而不是角色ARN,所以您不需要帐户ID。

如果您确实需要帐户ID,那么它可以作为伪参数使用,并且您可以从"Ref" : "AWS::AccountId"获得它,但我认为这里不需要它。

下面是一个JSON示例,说明如何创建新的IAM策略(允许s3:Get* on mybucket/*)并将其与现有的IAM角色关联,您将其名称作为参数提供给堆栈:

代码语言:javascript
复制
{
  "AWSTemplateFormatVersion": "2010-09-09",
  "Description": "Add policy to role test",
  "Parameters": {
    "TheRoleName": {
      "Type": "String",
      "Default": "CloudOps",
      "Description": "Name of role to associate policy with"
    }
  },
  "Resources": {
    "ThePolicy": {
      "Type": "AWS::IAM::Policy",
      "Properties": {
        "PolicyName": "s3-read",
        "PolicyDocument": {
          "Statement": {
            "Effect": "Allow",
            "Action": [
              "s3:Get*"
            ],
            "Resource": ["arn:aws:s3:::mybucket/*"]
          }
        },
        "Roles": [
          {
            "Ref": "TheRoleName"
          }
        ]
      }
    }
  }
}
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60961834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档