控制网站的访问权限

AWSBeginner
立即练习

介绍

服务器正在运行,不代表网站一定可以访问。移除并恢复一条访问规则,观察真实连接的变化,不修改应用或 SSH 规则。

请先完成前两个作品站实验,本节提供独立的网站与网络。 每节使用独立的新环境,无需保留上一节的资源、文件或凭据。工具、连接和无关素材均已准备好。

认证考点

认证 考试任务 练习内容
AWS Certified Cloud Practitioner (CLF-C02) Task 3.5 使用安全组控制 EC2 网站连接。

实验概览

概念图:安全组规则决定访客连接能否到达网站。

观察被阻止的网站连接

本步骤,你将仅移除网站访问规则,对照网页响应与服务器状态。

本节提供自己的新服务器。先从当前实验的 AWS View 打开作品站,确认显示 Alex Morgan,再开始修改。回到 Terminal,进入项目目录:

cd /home/labex/project

像上一节一样,source 读入当前服务器的资源标识。显示本次要修改的安全组 SECURITY_GROUP_ID:

source website.env
echo "$SECURITY_GROUP_ID"

安全组(security group)控制实例的网络连接。入站规则允许连接到达实例。端口标识接收请求的服务:SSH 使用 22,本节网站在 8081 上提供 HTTP。其他网站通常使用 HTTP 80 或 HTTPS 443;这里使用当前应用配置的端口。

修改之前,先读取安全组:

--query 像第一节一样选择响应中的部分字段。这里只保留第一个安全组的入站规则 SecurityGroups[0].IpPermissions,让你专注于需要的两条权限。

aws ec2 describe-security-groups \
  --group-ids "$SECURITY_GROUP_ID" \
  --query 'SecurityGroups[0].IpPermissions'

输出直接列出入站规则。FromPort 和 ToPort 表示端口范围,应能找到 22 与 8081 两条规则。来源 198.51.100.10/32 表示本节准备好的一个网站访客;/32 指单个 IPv4 地址。它不是你电脑的公网地址,因此保留提供的值即可。

只移除网站权限。revoke-security-group-ingress 删除匹配的入站规则;--protocol tcp 选择协议,--port 8081 选择网站服务,--cidr 选择允许的来源:

aws ec2 revoke-security-group-ingress \
  --group-id "$SECURITY_GROUP_ID" \
  --protocol tcp \
  --port 8081 \
  --cidr 198.51.100.10/32

响应确认规则已改变。刷新作品站,检查实际影响:页面应显示 Website connection unavailable,而 AWS View 中的实例仍为 running。

实际检查点:移除网站规则后,新页面请求失败,但服务器仍在运行。

AWS View 仍显示 running,但网站连接已被规则阻止;标识仅为示例。

应用没有被卸载,服务器也没有停止,是网络规则阻止了连接。安全组会跟踪已允许的连接;本节刷新页面产生的新请求用于检查改后的规则。保留独立的 SSH 规则。

恢复网站访问

本步骤,你将恢复指定的网站权限,并确认应用重新响应。

authorize-security-group-ingress 添加入站规则。使用同一个安全组、TCP 端口和准备好的单个访客地址:

aws ec2 authorize-security-group-ingress \
  --group-id "$SECURITY_GROUP_ID" \
  --protocol tcp \
  --port 8081 \
  --cidr 198.51.100.10/32

刷新作品站,Alex Morgan 和三组作品应重新出现。你只恢复了访问,无需重装应用或重启服务器。再读取安全组,确认配置也正确:

恢复指定规则后,实际作品页面重新响应。

aws ec2 describe-security-groups \
  --group-ids "$SECURITY_GROUP_ID" \
  --query 'SecurityGroups[0].IpPermissions'

确认网站端口 8081 的指定规则和未改动的 SSH 22 规则,来源均为 198.51.100.10/32。0.0.0.0/0 会允许所有 IPv4 来源,比本节需要的范围更宽。应恢复提供的来源,而不是增加额外权限。

你已经同时确认了配置与实际效果:需要的规则存在,访客请求也成功了。下一节会提供新的独立网站,并介绍如何存储它的作品素材。

总结

你移除并恢复了一条网站访问规则,观察到真实页面从不可访问恢复正常,同时保留了 SSH 连接权限。你区分了“服务器运行”和“应用可达”,并确认恢复后的权限仍限于指定访客。

官方参考:安全组规则。