【以下的问题经过翻译处理】 我无法通过会话管理器连接公共子网中的实例。实例部署所在的子网设置了“0.0.0.0/0”以连接互联网的网关。安全组没有入站规则,出站规则为“允许”“0.0.0.0/0”。
实例配置文件具有AmazonSSMManagedInstanceCore托管策略,并且该实例位于具有允许所有出站请求的互联网网关和安全组的公共子网上,并且正在运行AmazonLinux2,因此应该已安装SSM代理。我甚至添加了一个UserData命令来安装最新的代理,但这并没有改变任何事情。
从控制台中,我看到以下错误消息:
** 我们无法连接到您的实例。出现此问题的常见原因包括:**
以下是复制问题的CDK代码示例:
const region = 'us-east-2'
const myInstanceRole = new Role(this, 'MyRole', {
assumedBy: new ServicePrincipal('ec2.amazonaws.com'),
})
myInstanceRole.addManagedPolicy(
ManagedPolicy.fromAwsManagedPolicyName('AmazonSSMManagedInstanceCore')
)
const myUserData = UserData.forLinux()
myUserData.addCommands(
`sudo yum install -y https://s3.${region}.amazonaws.com/amazon-ssm-${region}/latest/linux_amd64/amazon-ssm-agent.rpm`,
'sudo systemctl restart amazon-ssm-agent',
)
const myInstance = new Instance(this, 'MyInstance', {
instanceType: InstanceType.of(InstanceClass.C6I, InstanceSize.LARGE),
machineImage: MachineImage.latestAmazonLinux({
generation: AmazonLinuxGeneration.AMAZON_LINUX_2,
cpuType: AmazonLinuxCpuType.X86_64,
}),
vpc: Vpc.fromLookup(this, 'ControlTowerVPC', {
vpcName: 'aws-controltower-VPC',
}),
vpcSubnets: {
subnetType: SubnetType.PUBLIC,
},
blockDevices: [
{
deviceName: '/dev/xvda',
volume: BlockDeviceVolume.ebs(30, {
volumeType: EbsDeviceVolumeType.GP2,
encrypted: true,
}),
},
],
userData: myUserData,
role: myInstanceRole,
detailedMonitoring: true,
})