AWS IAM策略限制仅访问c7g.large实例



如何编写一个poilicy来完全访问单个c7g.large ec2实例并限制其余实例?

启动、启动和停止Amazon EC2实例的能力由IAM使用策略控制。

例如:Amazon EC2:允许以编程方式和控制台中启动或停止EC2实例并修改安全组-AWS身份和访问管理

然而,通过SSH登录实例的能力通常由Amazon EC2密钥对和Linux实例-Amazon Elastic Compute Cloud控制。您负责生成和管理密钥对。然后,实例上的操作系统将对照~/.ssh/authorized_keypairs中存储的密钥对来验证密钥对。这不涉及AWS IAM。

但是,还有另外两种登录实例的方法。

您可以使用EC2实例连接进行连接,该连接使用SSH,但可以将密钥对动态发送到实例。它强制IAM权限来控制谁可以连接到实例。

或者,AWS Systems Manager会话管理器使用安装在实例上的代理来建立与实例的连接。它不使用SSH,但提供了类似的功能。好的部分是,会话管理器使能够连接到私有子网中的实例,因为安装的代理建立了用于通信的出站连接。(而SSH只能用于公开的实例。(会话管理器还使用IAM权限来控制访问。

如果它是一个特定的实例,您想限制访问,可以在实例上使用标记,并从策略中引用它们。以下示例取自AWS,使用内置变量${aws:username}-这允许用户管理自己的实例,也可以根据需要使用硬编码值/其他内置变量。

{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "ec2:*",
"Resource": "*",
"Condition": {
"StringEquals": {
"ec2:ResourceTag/UserName": "${aws:username}"
}
}
},
{
"Effect": "Allow",
"Action": "ec2:Describe*",
"Resource": "*"
},
{
"Effect": "Deny",
"Action": [
"ec2:CreateTags",
"ec2:DeleteTags"
],
"Resource": "*"
}
]
}

最新更新