gpt4 book ai didi

amazon-web-services - 如何在 CloudFormation 脚本中将 AmazonEC2RoleforSSM 附加到 ec2 实例

转载 作者:行者123 更新时间:2023-12-03 07:42:34 26 4
gpt4 key购买 nike

我正在尝试启动多个 ec2 实例 cloudformation 脚本。我正在使用 shell 脚本循环 aws cloudformation create-stack 命令并成功启动多个实例。

现在我需要将这些实例与附加的 SSM 角色一起启动。但是我在脚本中没有看到任何使用现有角色的方法。我需要在脚本中重新创建角色:

AWSTemplateFormatVersion: 2010-09-09
Description: Compact template for creating an ec2 instance for SPT

Resources:
IAMRole:
Type: AWS::IAM::Role
Properties:
RoleName: SPTvacmRole
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal:
Service: ec2.amazonaws.com
Action: sts:AssumeRole
Path: "/"
ManagedPolicyArns:
- arn:aws:iam::aws:policy/service-role/AmazonEC2RoleforSSM

InstanceProfile1:
Type: AWS::IAM::InstanceProfile
Properties:
Path: "/"
Roles:
- Ref: IAMRole

ec2instance1:
Type: AWS::EC2::Instance
Properties:
SubnetId: subnet-0da86f65478f3d30a
KeyName: spt-lab
ImageId: ami-00344ae218e7aae62
InstanceType: t2.nano
IamInstanceProfile: !Ref InstanceProfile1
SecurityGroupIds:
- sg-0d3fae6860ce71c91

这只能执行一次,因为当循环第二次执行命令时,角色 SPTvacmRole 已经存在,堆栈失败。

我已经使用 AmazonEC2RoleForSSM 策略从控制台手动创建了一个角色并将其命名为 EC2RoleForSSM,但是当我尝试在 InstanceProfile1 中按其名称 -Ref: EC2RoleForSSM 引用该角色而不创建时IAMRole,它给出一个错误,指出模板格式错误:模板的资源 block 中 Unresolved 资源依赖关系 [EC2RoleForSSM]

如何在脚本中使用预先存在的角色 EC2RoleForSSM,而无需再次创建它?

最佳答案

您不应包含 Ref 函数,因为该函数用于从参数或资源中检索值。

只需使用字符串 EC2RoleForSSM 即可,如下所示。

  InstanceProfile1:
Type: AWS::IAM::InstanceProfile
Properties:
Path: "/"
Roles:
- EC2RoleForSSM

关于amazon-web-services - 如何在 CloudFormation 脚本中将 AmazonEC2RoleforSSM 附加到 ec2 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62828544/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com