2

我想我已经完成了作为先决条件列出的所有事情,但是我无法让这些实例作为托管实例出现在 Systems Manager 中。

我选择了一个 AMI,我认为默认情况下应该有代理。

ami-032598fcc7e9d1c7a

PS C:\Users\*> aws ec2 describe-images --image-ids ami-032598fcc7e9d1c7a
{
    "Images": [
        {
            "ImageLocation": "amazon/amzn2-ami-hvm-2.0.20200520.1-x86_64-gp2",
            "Description": "Amazon Linux 2 AMI 2.0.20200520.1 x86_64 HVM gp2",

我还创建了自己的角色,并包含了我之前用于将实例导入 Systems Manager 的以下策略。

角色

最后,我将角色附加到实例。

附加到实例的角色

我已将 Systems Manager 设置为 30 分钟的计划并等待此时间结束,但实例未出现。我显然在这里错过了一些东西,不胜感激。

代理是否使用某种背板进行通信,或者我是否应该启用与安全组中的基础的某种通信?

这可能是因为实例只有私有 IP 吗?以前的工作示例有公共 IP,但我不希望这个集群使用它。

4

2 回答 2

2

除了 ec2 实例的角色外,SSM 还需要能够承担角色以在实例上安全地运行命令。你只做了第一步。所有步骤都在SSM 的 AWS 文档中进行了描述。

但是,我强烈建议您使用 System Manager 中的快速设置功能立即为您设置所有内容!

在 AWS 控制台中:

  1. 转到系统管理器
  2. 点击快速设置
  3. 保留所有默认值
  4. 在底部的目标框中,选择手动选择实例并勾选您的 ec2 实例
  5. 完成设置
  6. 它将自动创建AmazonSSMRoleForInstancesQuickSetup角色并将其分配给选定的 ec2 实例,并为 SSM 创建适当的 AssumeRole
  7. 转到 EC2 控制台,找到该 ec2 实例,右键单击并通过选择Instance State > Reboot 重新启动它
  8. 等待几分钟
  9. 刷新页面并尝试通过会话管理器选项卡连接

备注

  • 如果您不需要从 Internet 访问它们,建议您在私有子网中创建您的 ec2 实例。但是,请确保私有子网本身可以通过 NAT 访问 Internet。这是SSM的一个隐藏要求!
  • 某些 AmazonLinux2 映像(例如amzn2-ami-hvm-2.0.20200617.0-x86_64-gp2)没有预安装正确的 SSM 代理。因此,请使用不同的 AMI 重新创建您的实例,如果不起作用,请使用上述步骤重试。

在此处输入图像描述

于 2020-07-10T03:40:07.783 回答
0

这可能是因为实例只有私有 IP 吗?以前的工作示例具有公共 IP,但我不希望此集群使用公共 IP。

如果您将实例放置在私有子网(或公共子网但没有公共 IP)中,则SSM 代理无法连接到 SSM 服务。因此它无法注册到它。

这个问题有两种解决方案:

  • 在 SSM System Manger 的私有子网中设置VPC 接口终端节点。有了这个,您的实例将能够在没有互联网的情况下连接到 SSM 服务。
  • 使用NAT 网关/实例创建一个公共子网,并设置路由表以将 Internet 流量从私有子网路由到 NAT 网关。这样,您的私有实例将能够通过 NAT 设备通过 Internet访问 SSM 服务。
于 2020-06-12T08:36:39.570 回答