容器是在linux命名空间和CGroup的基础上,通过SELinux限制容器进程对资源的读取访问或限制容器的容量。容器的安全隔离已经达到了生产可用级别。
容器安全涉及到多个层面:1、容器自身安全;2、容器镜像安全;3、宿主机安全;
1、用户认证
openshift通过OAuth进行用户认证,OAuth是一个开源的认证和授权框架,OAuth通过用户登录认证以后,返回一个token,用户可以在有效的时间内对系统进行访问。
获取token:oc whoami -t
获取tokenAPI:/oauth/token/request
2、身份验证 identity provider
openshift提供不同的适配器链接不同的用户信息管理系统:LDAP、Active Directory、AllowALL、DenyAll、HTPasswd、GitHub、Google。
openshift示例程序采用HTPasswd的文件存储用户信息。该文件测存储位置在:/var/lib/origin/openshift.local.config/master/master-config.yaml
使用htpasswd命令可以对用户数据库进行曾删改查
3、用户组
查看provider来源:oc get identity
认证系统:authentication
授权系统:authorization
角色访问控制系统:RBAC (role based access control)
4、权限cluster local
- role:角色,一组权限的集合,RBAC系统中,权限–>role–>用户或者组
- rule:规则,rule三要素:角色role、资源resource、动作verb。
- policy:策略,若干role组成的集合
- role binding ,角色与用户或者组的绑定关系
- policy binding,若干role组成的集合与用户或者组的绑定关系。
5、权限操作
- 授予用户查看当前项目权限:
oc policy add-role-to-user view user2 - 编辑权限:
oc policy add-role-to-user edit user2
删除:oc policy remove-role-from-user edit user2 - 查看角色绑定关系:
oc get rolebinding - 查看role的详细信息
oc describe clusterrole admin - 创建组:
oc adm groups new newgroups - 增加用户到组
oc adm groups add-users