因为部署完Spinnaker后,默认没有任何认证机制,需要我们自己配置登录认证和权限认证机制,spinnaker支持gitlab、github、ldap等认证机制,这里我们采用ldap(AD域)的方式。
登录认证配置
在halyard容器中执行
//配置ldap认证
bash-5.0$ hal config security authn ldap enable
bash-5.0$ hal config security authn ldap edit \
> --url ldap://172.16.0.19:389/dc=test,dc=com \
> --manager-dn CN=spinnaker,OU=ServiceAccount,OU=信息与数据中心,OU=小牛电动,DC=test,DC=com \
> --manager-password 密码 \
> --userSearchFilter (&(objectClass=user)(sAMAccountName={0})) \
> --user-search-base OU=信息与数据中心,OU=小牛电动
//更新spinnaker
hal deploy apply
如何设置成功,刷新spinnaker会跳转到登录认证页面
权限认证配置
在AD域服务器根DN(test.com)下创建一个OU取名为groups,在该OU下创建两个组Admin、User
将管理员用户分别添加到Admin、User组中
将普通用户添加到User中
在运行halyard的容器中执行以下命令
bash-5.0$ hal config security authz ldap edit \
> --url ldap://172.16.0.19:389/dc=niudian,dc=com \
> --manager-dn CN=spinnaker,OU=ServiceAccount,DC=test,DC=com \
> --manager-password 密码 \
> --user-search-base OU=信息与数据中心,OU=小牛电动
> --userSearchFilter (&(objectClass=user)(sAMAccountName={0})) \
> --group-search-base ou=groups \
> --group-search-filter "(member={0})" \
> --group-role-attributes cn
bash-5.0$ hal config security authz edit --type ldap
bash-5.0$ hal config security authz enable
bash-5.0$ hal deploy apply
大家可以参考下英文配置文档
https://spinnaker.io/setup/security/authorization/ldap/ spinnaker authz ldap
https://github.com/spinnaker/halyard/blob/master/docs/commands.md#hal-config-security-authz-ldap hal config配置命令大全
https://blog.csdn.net/levinzhang1981/article/details/84130407 LDAP集成到使用Spring Security的应用中以提供认证、授权和用户信息服务
如果大家使用的是openldap,有可能修改的地方包括–group-search-filter、 --userSearchFilter
登录spinnaker,新建应用或者在已有应用上配置该应用权限
Admin组中的成员具有read、write、execute权限
User组中的成员具有read、execute权限
自动化管道触发
Spinnaker中的一个流行功能是能够基于触发事件(例如A git push或Jenkins构建完成)自动运行管道,完成发布流程。当为应用设置了操作权限后,应该为管道触发器配置足够的权限以允许触发器触发管道,否则会造成触发器无权限不自动触发。
这可以通过两种方式完成:
- 使用管道权限
- 使用Fiat服务账号
这里我们使用管道权限的方式
管道权限默认情况下处于禁用状态,可以通过设置以下标志来启用:
-
对于orca,将以下内容添加到 orca-local.yml
[root@idc-hk-proxy ~]#cat .hal/default/profiles/orca-local.yml tasks: useManagedServiceAccounts: true
-
对于Deck,将以下内容添加到 settings-local.js
[root@idc-hk-proxy ~]# cat .hal/default/profiles/settings-local.js window.spinnakerSettings.feature.managedServiceAccounts = true;
设置完后,清理下历史记录,重新登录打开管道配置界面,会在触发器模块里出现权限选择器,选择一个拥有EXECUTE权限的角色即可,这样触发器就可以自动触发了。
参考链接
https://spinnaker.io/setup/security/authorization/pipeline-permissions/