使用云形成创建ec2实例以及IAM角色

sri*_*ram 2 amazon-web-services aws-cloudformation

我对亚马逊的云形成技术很陌生.我正在尝试与IAM角色一起启动ec2实例.

我有这个的cloudformation脚本.但我面临的问题是IAM角色和Ec2实例的创建,但它们并没有相互联系.

我确实使用AWS::IAM::Role和创建了IAM角色AWS::IAM::InstanceProfile.

我还应该使用其他命令吗?

提前致谢.

Bre*_*ett 12

不得不挖掘得到最终结果,但这是一个例子

  1. 定义访问角色(这将允许EC2实例进入/承担角色),
  2. 为角色定义策略(即当EC2承担角色时,它可以访问哪些资源),
  3. 定义实例配置文件(由EC2实例引用,并具有映射的访问角色)

    "S3AccessRole" : {
        "Type"  : "AWS::IAM::Role",
        "Properties" : {
            "AssumeRolePolicyDocument" : {
                "Statement" : [ {
                    "Effect" : "Allow",
                    "Principal" : {
                        "Service" : [ "ec2.amazonaws.com" ]
                    },
                    "Action" : [ "sts:AssumeRole" ]
                } ]
            },
            "Path" : "/"
        }
    },
    
    "S3RolePolicies" : {
        "Type" : "AWS::IAM::Policy",
        "Properties" : {
            "PolicyName" : "s3access",
            "PolicyDocument" : {
                "Statement" : [ {
                    "Effect" : "Allow",
                    "Action" : "s3:*",
                    "Resource" : "*"
                }]
            },
            "Roles" : [ { "Ref" : "S3AccessRole" } ]
        }
    },
    
    "S3InstanceProfile" : {
        "Type" : "AWS::IAM::InstanceProfile",
        "Properties" : {
            "Path" : "/",
            "Roles" : [ { "Ref" : "S3AccessRole" } ]
        }
    }
    
    Run Code Online (Sandbox Code Playgroud)

上述策略允许所有访问s3资源.根据您的需求进行调整.EC2实例属性中的IamInstanceProfile引用将引用{ "Ref" : "S3InstanceProfile" }

请注意,截至2015年5月,当您创建一个创建IAM角色的堆栈时,您需要选中一个确认此类创建的框,否则您将收到"Stack creation error: Requires capabilities : [CAPABILITY_IAM]"错误消息.