会话管理器何如连接到公共子网中的实例?

0

【以下的问题经过翻译处理】 我无法通过会话管理器连接公共子网中的实例。实例部署所在的子网设置了“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,
})

profile picture
专家
已提问 5 个月前23 查看次数
1 回答
0

【以下的回答经过翻译处理】 事实证明,问题在于EC2实例没有公共IP地址。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则