amazon-web-services - AWS Systems Manager - 实例未显示
问题描述
谁能帮我调查 EC2 实例配置文件的问题?我创建了一个 EC2 实例并设置了一个 IAM 角色。但是,当我检查实例时,我看到:没有角色附加到实例配置文件:xxx-instance-profile。
知道我必须在哪里看吗?因为,当我检查该实例配置文件(角色)时,我信任它:
受信任的实体 身份提供者 ec2.amazonaws.com
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "ec2.amazonaws.com"
},
"Action": "sts:AssumeRole"
}
]
}
我已附加一项权限策略 AmazonSSMManagedInstanceCore
当我转到我的实例时,我看到没有附加任何角色。而且,在 Systems Manager -> Session Manager 中,我看不到我的实例。
我不知道我做错了什么:(有什么建议吗?
问候,
解决方案
我不确定您所说的 EC2 实例配置文件问题是什么意思。实例配置文件是您授予 EC2 实例的权限集,方法是定义包含所需权限的策略并将该策略附加到角色。该角色附加到 EC2 实例。因为该角色将由服务使用,所以它必须与该服务具有信任关系。
您要使用哪个 Systems Manager 服务?您可以使用特定服务和对特定 AWS 实例的限制创建自己的自定义策略。或者,您可以使用托管策略。
以下是各种政策的一些例子。
假设您想要一个附加到 EC2 实例的角色,以便您可以使用Systems Manager Session Manager远程登录到该实例。
假设该实例位于具有到 Internet 的路由的VPC中,可以直接通过Internet 网关或通过NAT 网关到 Internet 网关。
在这种情况下,您的实例具有到 Systems Manager Session Manager 的 AWS 公共服务的路由。该实例必须安装Systems Manager Session Manager 代理。此代理预安装在 Amazon Linux 2、Amazon Linux 和 Ubuntu 16.04、18.04、20.04 上。
假设已安装代理并且有到服务的路由,那么您提到的实例需要通过 IAM 访问服务的权限。这是通过向 EC2 实例授予角色来完成的。
- 为此,请访问 IAM - https://console.aws.amazon.com/iam/。
- 从导航面板中选择角色,创建一个新角色
- 选择受信任实体的类型作为 AWS 服务
- 选择常见用例下的 EC2 选项
- 按下一个:权限
- 如果需要,您可以在此处创建自定义策略,我建议使用托管策略
- 通过搜索 AmazonEC2RoleforSSM 选择现有的托管策略,还有其他 SSM 托管策略,AmazonEC2RoleforSSM 专门用于管理 EC2
- 选择它并按下一步:标签
- 按下一个:审查,
- 给它一个名字 - my-ec2-ssm-role
现在我们有了 EC2 实例的角色,接下来我们需要将该角色添加到实例中。
转到 EC2 - https://console.aws.amazon.com/ec2
- 选择您的实例
- 从右上角的菜单中,选择操作、安全性、修改 IAM 角色。
- 选择刚刚创建的角色 my-ec2-ssm-role
- 按保存
现在该角色已链接到 Systems Manager Session Manager https://console.aws.amazon.com/systems-manager/session-manager
- 按开始会话
- 您的实例应该是可见的,您可以选择它并按开始会话
如果您的实例不可见,则可能是您没有到AWS Service Endpoints的路由。例如,EC2 实例不在公共子网中或没有到 Internet 的路由。在这种情况下,您需要将 3 个 VPC 终端节点添加到您的子网。这些端点是:
- com.amazonaws.[地区].ssm
- com.amazonaws.[区域].ssmmessages
- com.amazonaws.[区域].ec2messages
您可以在此处阅读如何设置它。
推荐阅读
- netlogo - 如何从同一链接的另一个节点复制链接的一个节点的属性?
- amazon-cloudwatch - ECS AWS Cloudwatch 日志
- mysql - MySQL 可以显示表但不能访问数据 (errno: 13 - Permission denied)
- html - 我的 SVG 似乎有数据,但没有呈现
- java - 无法将 [...ReloadableResourceBundleMessageSource] 转换为所需类型 [...ResourceBundleMessageSource]
- apollo - 如何为不使用 Apollo 引擎的项目正确配置 `apollo` CLI?
- python - 在 Flask 中使用 for 循环更新数据库?
- asp.net - Web 窗体用户控制事件,需要在页面加载后添加
- r - R:如何使用别名调用数据框列?
- c# - 如何在 MVC 主控制器中将 http post 请求数据读取为 JSON?