Openstack Keystone身份管理

  • Domain
    Domain可以认为是project,user,group的namespace。一个domain内,这些元素的名称不可以重复,但是在两个不同的domain内,它们的名称可以重复。
  • Group
    一个domain中的部分用户的集合,其目的是为了方便分配role。给一个group分配 role,结果会给group内的所有 users分配这个role。
  • Projects
    用于将OpenStack的资源(计算、存储和网络)进行分组和隔离,对应公有云上的一个租户。
  • Users
    指任何使用 OpenStack 的实体,可以是真正的用户,其他系统或者服务。一个User可以属于多个Project。

    除了admin,OpenStack也为nova、cinder、glance、neutron服务创建了相应的User。admin也可以管理这些 User。

  • Roles
    表示一个user/group对一个project resource的权限

    role 的名称没有意义,其意义在于policy.json文件根据role的名称所指定的允许进行的操作。
    默认只有admin_member_两个role,前者表示管理员,后者表示普通用户。但是,结合domain和project的限定,admin可以分为cloud admin,domain admin和project admin。
    policy.json 文件中定义了role对某种类型的资源所能进行的操作。


创建project(YMS、Cloud)

1
2
[root@control01 ~]# openstack project create YMS
[root@control01 ~]# openstack project create Cloud

创建user(operator、ymsadmin、cloudadmin)

operator用于管理所有project(权限相当于admin),ymsadmin用于管理YMS的project,cloudadmin用于管理Cloud的project

1
2
3
[root@control01 ~]# openstack user create --project admin --password 123456 operator
[root@control01 ~]# openstack user create --project YMS --password 123456 ymsadmin
[root@control01 ~]# openstack user create --project Cloud --password 123456 cloudadmin

创建group(Operator、YMS、Cloud)

1
2
3
[root@control01 ~]# openstack group create Operator
[root@control01 ~]# openstack group create YMS
[root@control01 ~]# openstack group create Cloud

添加user到group

添加operator、admin用户到Operator的group中
添加ymsadmin用户到YMS的group中
添加cloudadmin用户到Cloud的group中

1
2
3
4
[root@control01 ~]# openstack group add user Operator operator
[root@control01 ~]# openstack group add user Operator admin
[root@control01 ~]# openstack group add user YMS ymsadmin
[root@control01 ~]# openstack group add user Cloud cloudadmin

对group分配具有相应project的role

分别授权group(YMS)对project(YMS)具有member权限,授权group(Cloud)对project(Cloud)具有member权限,授权group(Operator)对project(YMS和Cloud)具有admin权限

1
2
3
4
[root@control01 ~]# openstack role add --project YMS --group YMS _member_
[root@control01 ~]# openstack role add --project Cloud --group Cloud _member_
[root@control01 ~]# openstack role add --project YMS --group Operator admin
[root@control01 ~]# openstack role add --project Cloud --group Operator admin

创建完成后operator用户具有对project(YMS和Cloud)的admin权限,而ymsadmin和cloudadmin只具有对project(YMS或Cloud)的member权限。

坚持原创技术分享,您的支持将鼓励我继续创作!
0%