You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

是否可创建OpenStack跨项目共享的安全组?

解决方案

Neutron安全组默认仅所属项目可见可用,要实现全项目共享,需通过RBAC(基于角色的访问控制)规则配置共享权限,操作步骤如下:

操作步骤(命令行方式)

  1. 首先获取已创建的corey-sg安全组ID:
openstack security group show corey-sg -f value -c id

记好输出的安全组ID,后续替换<corey-sg-id>参数。

  1. 为该安全组创建全局共享RBAC规则:
openstack network rbac create --target-all-projects --action access_as_shared --type security_group <corey-sg-id>

参数说明:

  • --target-all-projects:授权所有项目可访问该安全组
  • --action access_as_shared:授权动作是作为共享资源被访问
  • --type security_group:指定操作的资源类型为安全组
  1. 验证配置生效:
  • 管理员侧执行openstack network rbac list --type security_group可看到刚创建的RBAC规则
  • 切换到任意其他项目,执行openstack security group list可看到corey-sg即配置成功

Heat模板直接创建共享安全组示例

如果你要在编排模板中直接生成可全局共享的corey-sg,可直接在模板中新增RBACPolicy资源:

corey_sg:
  type: OS::Neutron::SecurityGroup
  properties:
    name: corey-sg
    # 此处添加corey-sg自身的出入站规则

# 全局共享规则配置
corey_sg_shared_rbac:
  type: OS::Neutron::RBACPolicy
  properties:
    object_type: security_group
    target_tenant: "*"
    action: access_as_shared
    object_id: { get_resource: corey_sg }

注意事项

  • 上述操作需要管理员权限执行,普通项目用户无权限配置安全组全局共享
  • 如果仅需要共享给指定项目,可将命令中的--target-all-projects替换为--target-project <指定项目ID>,模板中的target_tenant: "*"替换为对应项目ID即可
  • 其他项目引用该共享安全组作为远程访问源时,直接填写安全组ID即可,Neutron会自动识别跨项目的安全组规则

内容的提问来源于stack exchange,提问作者Corey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 14:24:03