要限制使用AWS Identity and Access Management(IAM)策略通过EC2实例连接服务访问特定EC2实例,您可以使用以下步骤进行设置。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "AllowEC2InstanceConnect",
"Effect": "Allow",
"Action": [
"ec2-instance-connect:SendSSHPublicKey",
"ec2-instance-connect:SendSerialConsoleSSHPublicKey"
],
"Resource": "arn:aws-cn:ec2:region:account-id:instance/instance-id"
}
]
}
请确保将region
替换为您的实际区域,account-id
替换为您的实际AWS帐户ID,instance-id
替换为您要限制访问的EC2实例的ID。
将此策略附加到您希望允许访问的IAM用户、IAM角色或IAM组上。
确保用户或角色具有适当的权限来调用ec2-instance-connect:SendSSHPublicKey
和ec2-instance-connect:SendSerialConsoleSSHPublicKey
操作。
配置EC2实例以允许通过EC2实例连接服务进行访问。您可以在实例的用户数据中添加以下命令:
#!/bin/bash
echo "ec2-user ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers.d/cloud-init-ec2-user
这将确保允许IAM用户ec2-user
通过EC2实例连接服务使用sudo权限。
现在,用户将只能通过EC2实例连接服务访问特定的EC2实例,并且仅具有sudo权限。
请注意,上述策略只适用于通过EC2实例连接服务访问EC2实例,而不是通过SSH直接访问。如果您希望限制通过SSH直接访问,请考虑使用EC2安全组和密钥对来实现进一步的限制。