【发布时间】:2021-12-16 02:44:06
【问题描述】:
我正在尝试为 EC2 实例设置 EC2 Instance Connect:
AWSTemplateFormatVersion: 2010-09-09
Description: Part 1 - Spawn Ec2 instance with CloudFormation
Resources:
WebAppInstance:
Type: AWS::EC2::Instance
Properties:
AvailabilityZone: us-east-2a
ImageId: ami-074cce78125f09d61
InstanceType: t2.micro
虽然上面的模板允许我创建一个 EC2 实例,但它不允许我使用 EC2 Instance Connect 访问它。
如何在 CloudFormation 模板中配置 EC2 Instance Connect?
解决方案
AWSTemplateFormatVersion: 2010-09-09
Description: Part 1 - Build a webapp stack with CloudFormation
Resources:
WebAppInstance:
Type: AWS::EC2::Instance
Properties:
AvailabilityZone: us-east-2a
ImageId: ami-074cce78125f09d61
InstanceType: t2.micro
SecurityGroupIds:
- !Ref WebAppSecurityGroup
WebAppSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupName: !Join ["-", [webapp-security-group, dev]]
GroupDescription: "Allow HTTP/HTTPS and SSH inbound and outbound traffic"
SecurityGroupIngress:
- IpProtocol: tcp
FromPort: 80
ToPort: 80
CidrIp: 0.0.0.0/0
- IpProtocol: tcp
FromPort: 443
ToPort: 443
CidrIp: 0.0.0.0/0
- IpProtocol: tcp
FromPort: 22
ToPort: 22
CidrIp: 0.0.0.0/0
WebAppEIP:
Type: AWS::EC2::EIP
Properties:
Domain: vpc
InstanceId: !Ref WebAppInstance
Tags:
- Key: Name
Value: !Join ["-", [webapp-eip, dev]]
Outputs:
WebsiteURL:
Value: !Sub http://${WebAppEIP}
Description: WebApp URL
【问题讨论】:
-
阻止用户通过 IAM 创建 SSH 密钥
-
@ErmiyaEskandary 这不是我要解决的问题。我使用上面的模板创建的实例确实创建了一个 EC2 实例,但它不允许我使用 EC2 Instance connect 连接到它。
-
嗯,好的 - 编辑您的问题,因为看起来您正在尝试强制执行 EC2 实例连接(“获得 ssh 访问机器的唯一可能方法应该是通过 EC2 实例连接” )
-
除了 Marcin 的回答之外,您是否尝试通过 UI 进行连接?如果是这样,您的 EC2 实例必须具有公有 IPv4 地址。是吗?
-
设置公网ip解决了问题
标签: amazon-web-services amazon-ec2 amazon-cloudformation