安全篇-为Spinnaker配置LDAP登录和操作认证

为Spinnaker配置LDAP登录和操作认证


因为部署完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/
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Spinnaker 是一个持续交付平台,它定位于将产品快速且持续的部署到多种云平台上。Spinnaker 主要特性:配置一次,随时运行;随地部署,集中化管理;开源。Spinnaker 组件:Spinnaker 最初是以实现内部的端到端持续交付为目标,作为 Asgard 的替代,该项目期望重建一个持续交付平台,能够实现:通过灵活和可配置的管道实现可重复的自动部署提供一个所有环境的全局视图,一个应用程序可以看见自己的在所属管道中的状态通过一致且可靠的API,提供可编程配置易于配置、维护和扩展兼容Asgard特性同时,Spinnaker作为云平台部署工具,Spinnaker团队和Google、微软、Pivotal等公司合作,致力于提供在多种平台上实现开箱即用的集群管理和部署功能。目前,Spinnaker可以部署管理AWS和Google云平台(GCP),针对Azure等平台的支持也在进行中。Spinnaker主要包含2块内容,集群管理和部署管理。集群管理功能,主要用于管理云上的资源。集群管理将云上资源做了逻辑划分:机器组:机器组是Spinnaker管理资源的单位。机器组标识了机器实例,并且关联了一个负载均衡器和安全组。每个机器组都拥有独立的配置信息(如机器帐号等);安全组:安全组定义了网络访问权限,也就是一般意义上的一组防火墙规则;负载均衡器:负载均衡器用于将网络流量重定向到机器组中的机器实例,负载均衡器还可以指定一系列规则,用于对机器组中的机器实例做健康检查;集群:集群是由用户定义的,对机器组的逻辑分组;部署管理功能用于创建一个持续交付流程。部署管理的核心是管道,在Spinnaker的定义中,管道由一系列的阶段(stages)组成。管道可以 由Jenkins、定时器、其他管道或者人工触发。同时,管道可以配置参数和通知,可以在管道一些节点上发出消息。Spinnaker已经内置了一些阶 段,如执行自定义脚本、触发Jenkins任务等。介绍来自 InfoQ 标签:Spinnaker
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浅抒流年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值