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

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,
})

1 Antwort
0

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

profile picture
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen