Bev*_*van 15 amazon-web-services aws-cloudformation
如何在EC2实例中使用现有的IAM角色,而不是在我的CloudFormation模板中创建新角色?
例如,我在AWS Console中创建了一个角色,只想使用它.
Ale*_*yak 25
您可以使用现有的InstanceProfile,而不是从堆栈中创建新的InstanceProfile.事实上,可能已经为您创建了一个 - 来自文档:
如果您使用AWS管理控制台为Amazon EC2创建角色,则控制台会自动创建实例配置文件并为其指定与该角色相同的名称.
这意味着您可能不必AWS::IAM::InstanceProfile
在堆栈中创建资源.但请注意:
控制台不会为与Amazon EC2无关的角色创建实例配置文件.
在这种情况下,您可以使用以下两个命令从AWS CLI手动执行此操作:
aws iam create-instance-profile --instance-profile-name MyExistingRole
aws iam add-role-to-instance-profile --instance-profile-name MyExistingRole --role-name MyExistingRole
Run Code Online (Sandbox Code Playgroud)
然后,如果您已在命名的UI中定义了一个角色MyExistingRole
,这就足够了:
"Resources" : {
"Instance" : {
"Type" : "AWS::EC2::Instance",
...
"Properties" : {
"IamInstanceProfile" : "MyExistingRole",
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
Pet*_*SFT 24
您需要实例配置文件,角色和实例信息(或启动配置)本身.
您的实例配置文件如下所示:
"Resources" : {
"InstanceProfile" : {
"Type" : "AWS::IAM::InstanceProfile",
"Properties" : {
"Path" : "/",
"Roles" : ["MyExistingRole"]
}
},
"Instance" : {
"Type" : "AWS::EC2::Instance",
"Properties" : {
"IamInstanceProfile" : {"Ref" : "InstanceProfile"}
...
}
}
Run Code Online (Sandbox Code Playgroud)
特别是 - 请注意,Instance配置文件中的引用是对现有RoleName的引用
另外 - 我写过关于使用实例配置文件和角色的bootstrapping实例,以确保我们不会保持安全性.
关键是使用{"Ref":RoleName}等来使用角色的实际名称.
归档时间: |
|
查看次数: |
24954 次 |
最近记录: |