spinnaker 配置认证

spinnaker 配置认证

Spinnaker是一个开源的持续交付平台,用于自动化在云环境中的应用程序部署。在Spinnaker中,安全性是一个关键的考虑因素,尤其是在大型组织或在多团队环境中。认证(Authentication)和授权(Authorization)是确保安全的两个主要方面。

在这里插入图片描述

Spinnaker部署完成后,默认没有任何认证机制,需要自行配置登录认证和权限认证机制,spinnaker支持gitlab、github、ldap等认证机制,下面介绍ldap和基于github的认证方式。

配置LDAP认证

官方文档:https://spinnaker.io/docs/setup/other_config/security/authentication/ldap/

部署openldap

创建自定义网络

docker network create openldap

使用 docker 安装openldap

docker run -d --name openldap --restart always \
  -p 389:389 -p 636:636 --net openldap \
  --env LDAP_ORGANISATION="myorg" \
  --env LDAP_DOMAIN="example.com" \
  --env LDAP_ADMIN_PASSWORD="Ldap#123456" \
  -v openldap-db:/var/lib/ldap \
  -v openldap-config:/etc/ldap/slapd.d \
  osixia/openldap

部署ldapadmin

docker run -d --name phpldapadmin --restart always \
    -p 8443:443 --net openldap \
    --env PHPLDAPADMIN_LDAP_HOSTS=openldap \
    osixia/phpldapadmin

登录ldapadmin 管理界面

DOMAIN: https://192.168.72.16:8443
Login DN:cn=admin,dc=example,dc=com
Password:Ldap#123456

创建OU,然后在OU下创建组及用户,依次选择:

  • Generic: Organisational Unit
  • Generic: Posix Group
  • Generic: User Account

创建流程如下:

1、创建OU

点击 Create a child entry
在这里插入图片描述
选择Generic: Organisational Unit
在这里插入图片描述
名称自定义,这里为devops
在这里插入图片描述
2、创建用户组

选择Generic: Posix Group
在这里插入图片描述
名称自定义,这里为group01
在这里插入图片描述
3、创建用户

选择Generic: User Account
在这里插入图片描述
名称自定义,这里为testuser
在这里插入图片描述
创建后结构如下
在这里插入图片描述

执行以下命令测试账号

ldapsearch -D "CN=admin,dc=example,dc=com" \
    -w "Ldap#123456" \
    -H ldap://192.168.72.16 \
    -x -b "ou=devops,dc=example,dc=com" \
    "CN=testuser"

执行结果如下:

root@ubuntu:~# docker exec -it openldap bash
root@ba6d8d2f01d8:/# ldapsearch -D "CN=admin,dc=example,dc=com" \
>     -w "Ldap#123456" \
>     -H ldap://192.168.72.16 \
>     -x -b "ou=devops,dc=example,dc=com" \
>     "CN=testuser"
# extended LDIF
#
# LDAPv3
# base <ou=devops,dc=example,dc=com> with scope subtree
# filter: CN=testuser
# requesting: ALL
#

# testuser, devops, example.com
dn: cn=testuser,ou=devops,dc=example,dc=com
sn: testuser
cn:: IHRlc3R1c2Vy
uid: testuser
userPassword:: e01ENX1HMDFuMVJQejdPekVYbWNRR3ZnbFJ3PT0=
uidNumber: 1000
gidNumber: 500
homeDirectory: /home/users/testuser
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1

配置halyard

启用ldap验证

hal config security authn ldap enable

配置ldap对接

hal config security authn ldap edit \
  --user-search-base 'ou=devops,dc=example,dc=com' \
  --url 'ldap://192.168.72.16:389' \
  --user-search-filter 'cn={0}' \
  --manager-dn 'cn=admin,dc=example,dc=com' \
  --manager-password 'Ldap#123456'

参数说明:

  • –user-search-base 用户搜索的部分
  • –url LDAP服务器
  • –user-search-filter 搜索用户DN时使用的过滤器
  • –manager-dn LDAP管理器用户
  • –manager-password LDAP管理器用户的密码

重新部署spinnaker,等待spinnaker pods running.

hal deploy apply

登录spinnaker,验证是否需要认证,账号为testuser,密码为openldap创建的对应账号密码

在这里插入图片描述

配置GitHub认证

官方文档:https://spinnaker.io/setup/security/authentication/oauth/github/

创建OAuth APP

首先需要登录GitHub,转到https://github.com/settings/developers,然后创建一个OAuth APP。

注意:这里的Authorization callback URL基于kubernetes离线部署spinnanker进行配置。请适当调整配置,适配您的环境,例如可能为http://spin-gate.example.com/login
在这里插入图片描述

生成client-secret
在这里插入图片描述

记录client-id及client-secret,

client_id=b7xxxxxxxc9397
client_secret=7574b463cbc4xxxxxxxxxxxxxxxx8ebad0f2630 

配置halyard

hal config security authn oauth2 edit --provider github \
  --client-id ${client_id} \
  --client-secret ${client_secret}
hal config security authn oauth2 enable

重新部署spinnaker,等待spinnaker pods running.

hal deploy apply

登录spinnaker,验证是否需要认证

在这里插入图片描述

  • 17
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值