为资源设置安全组
您可以配置安全组,以定义允许该资源接收和发送的入站和出站流量。 例如,在根据公司的安全策略为子网配置 ACL 规则后,可以根据特定实例的工作负载,进一步限制这些实例的流量。
在控制台中为资源设置安全组
要使用 UI 配置安全组,请执行以下步骤:
-
从浏览器中,打开 IBM Cloud 控制台。
-
选择导航菜单
,然后单击基础架构
> 网络 > 安全组。
-
在安全组列表上单击 创建。
-
在“位置”部分,请提供以下信息:
- 地理位置-指示要在其中创建安全组的常规区域。
- 区域-指示要在其中创建安全组的区域。
-
在“详细信息”部分,请提供以下信息:
- 名称-输入安全组的唯一标识,例如
my-security-group。 - 资源组- 为安全组选择一个资源组。
配置完成后,您将无法更改资源组。
- 标记-添加用户标记。 用户标记在帐户范围内可见。 有关更多信息,请参阅使用标记。
用户标记在帐户范围内可见。 请避免在标记名称中包含敏感数据。
- 可选: 访问管理标记-添加访问管理标记以帮助组织访问控制关系。 有关更多信息,请参阅 使用标记控制对资源的访问。
- 可选: 虚拟私有云 ——选择您的 VPC。
- 名称-输入安全组的唯一标识,例如
-
在“规则”下,单击 “创建” 以配置入站和出站规则,用于定义允许向该实例发送和从该实例接收的流量类型。 对于每个规则,请指定以下信息:
- 选择将应用规则的协议和端口。
- 指定用于所允许流量的 CIDR 块或 IP 地址。 或者,可以在同一 VPC 中指定安全组,以允许连接到所选安全组的所有实例的进出流量。
提示:
- 系统将对所有规则求值,而不考虑这些规则的添加顺序。
- 规则是有状态的,这意味着会自动允许响应所允许流量的返回流量。 例如,创建了规则以允许端口 80 上的入站 TCP 流量。 该规则还会允许将端口 80 上的出站 TCP 流量返回给发起主机,而无需额外的规则。
- 对于 Windows 映像,请确保与该实例关联的安全组允许远程桌面协议( TCP 端口 3389)的入站和出站流量。
- 可选: 在其余部分中连接接口,裸机接口,负载均衡器,虚拟专用端点网关和 VPN 服务器 (如果这些目标可用于连接)。
从 CLI 设置资源的安全组
在此示例中,您将使用命令行界面 (CLI) 创建一个已启用安全组的虚拟服务器实例。 图1展示了该场景的具体情况。
请注意图1中,名为 SG4 除了其内部 VPC 地址 10.10.10.5 之外,还被分配了浮动 IP 地址 169.60.208.144 ;因此,SG4 该实例可以访问公共互联网。 分配给该实例的安全组 SG4 的安全组名为 demosg。
实例 SG8 仅供 VPC 内部使用,并带有专用 IP 地址。 分配给实例 SG8 的安全组名为 my_vpc_sg。 这两个实例都位于名为 sgvpc 的VPC中,并且都在同一个子网 10.10.10.0/24 上,因此它们可以相互通信。
创建连接了安全组的资源
my_vpc_sg 的安全组规则包含SSH、PING以及出站 TCP 等基本功能。
请注意,您必须先使用 ibmcloud is sgc 命令创建安全组,然后再创建使用该安全组的资源。
必须输入 ibmcloud plugin install vpc-infrastructure 才能获取对 ibmcloud is 的访问权。 有关创建 VPC 和子网的详细信息,请参阅 使用 CLI 创建 VPC 资源。
您可以复制并粘贴此示例 CLI 代码中的命令,开始创建一个已关联安全组的实例。 此样本代码中未完全显示系统响应。 您必须将命令中的 VPC、子网、镜像、密钥的资源 ID 以及安全组的 ID 号更新为正确的值。
-
创建一个名为“
my_vpc_sg”的安全组:ibmcloud is security-group-create my_vpc_sg $vpc将该 ID 保存在一个变量中,以便日后使用;例如,保存在名为
sg的变量中:sg=0738-2d364f0a-a870-42c3-a554-000000632953 -
添加规则以允许SSH、PING以及出站 TCP 连接:
ibmcloud is security-group-rule-add $sg inbound tcp --port-min 22 --port-max 22 ibmcloud is security-group-rule-add $sg inbound icmp --icmp-type 8 --icmp-code 0 ibmcloud is security-group-rule-add $sg outbound tcp -
最后,使用该安全组创建一个实例:
ibmcloud is instance-create test-instance $vpc us-south-2 b-4x16 $subnet 1000 \ --image $image --keys $key --sgs $sg
命令列表备忘单
要查看安全组可用 VPC CLI 命令的完整列表,请输入:
ibmcloud is help | grep sg
要查看您的安全组及其元数据(包括规则),您可以输入(以上面那个示例为例):
ibmcloud is sg $sg
要添加安全组规则,下面是向安全组添加 PING 入站规则的示例命令:
ibmcloud is security-group-rule-add $sg inbound icmp --icmp-type 8 --icmp-code 0
有关使用 CLI 设置安全组的更多信息,请参阅 设置 API 和 CLI 环境。
使用 API 设置资源的安全组
以下示例演示了如何使用 IBM Cloud VPC API 来创建和管理安全组。
要使用安全组,首先必须有一个正在运行的 IBM Cloud VPC。
有关创建 VPC 和子网的指示信息,请参阅创建 VPC。
步骤 1:创建安全组
在 IBM Cloud VPC 中创建名为 my-security-group 的安全组。
curl -X POST "$vpc_api_endpoint/v1/security_groups?version=$api_version&generation=2" \
-H "Authorization: Bearer $iam_token" \
-d '{
"name": "my-security-group",
"vpc": { "id": "'$vpc'" }
}'
将 ID 保存到一个变量中,以便稍后使用;例如,变量 sg:
sg=0738-2d364f0a-a870-42c3-a554-000000632953
步骤 2:添加规则以允许 SSH 连接
在安全组中创建规则以允许端口 22 上的入站连接。
curl -X POST "$vpc_api_endpoint/v1/security_groups/$sg/rules?version=$api_version&generation=2" \
-H "Authorization: Bearer $iam_token" \
-d '{
"direction": "inbound",
"protocol": "tcp",
"port_min": 22,
"port_max": 22
}'
步骤 3:删除安全组(可选)
要清除安全组,该安全组不能与任何网络接口相关联,也不能由其他安全组中的规则引用。
curl -X DELETE "$vpc_api_endpoint/v1/security_groups/$sg?version=$api_version&generation=2" \
-H "Authorization: Bearer $iam_token"
有关使用 API 设置安全组的更多信息,请参阅 安全组。