7 步提升私有化部署的极狐GitLab 实例安全等级

news2024/11/16 15:35:21

目录

指导准则

分层安全,纵深防御

保密 ≠ 安全

减少攻击面

7 步保障私有化部署实例安全

第一步:开启多因素认证

第二步:加强额外的注册检查

第三步:限制群组和项目可见性

第四步:强化 SSH 设置

第五步:审核账户和限制设置

第六步:保障 CI 密钥

第七步:保护所有分支的流水线


本文来源:about.gitlab.com

作者:Ayoub Fandi 

译者:极狐(GitLab) 市场部内容团队

“系统安全程度取决于系统最薄弱的环节” 是一句非常易懂的谚语,好比安全防护的木桶效应。

如果攻击者找到了入侵方法,就会利用安全配置文件中的任何漏洞。「强化」,即关闭未使用功能,并把对安全有影响的设置进行调整的过程,对于限制攻击面并减少潜在攻击向量是非常重要的。

「强化」可以确保应用程序(比如极狐GitLab)尽可能的安全。目标很简单:保留高效工作所需功能的同时,将风险最小化。

指导准则


以下列举的安全活动需要和其中的一项或者多项结合使用。可以尝试组合尽可能多的方法。

分层安全,纵深防御

分层安全背后的逻辑很简单:尽可能尝试将多种安全方法结合起来。例如,有两种方式实现安全,则应该实现两种,而非只实现一种。

举个例子,如果想保障服务访问安全,可将复杂密码、硬件访问令牌及多因素认证结合起来。这种方法也被称为纵深防御

保密 ≠ 安全

“如果某些东西被隐藏,那么它会变得更安全”的想法,在现如今的信息安全世界里,是行不通的。

当前攻击者的扫描能力足够强大,能够突破严密的安全防控。任何人都很容易对系统的开放端口进行扫描,例如将 SSH 的 22 端口修改为其他端口,诸如 Nmap 之类的网络工具就可以扫描出来。

减少攻击面

极狐GitLab/GitLab 包含众多组件、服务及依赖,提供强大的产品功能。但拥有的组件越多,攻击者的攻击入口就越多。所以牢记一个法则:禁用运行应用程序不需要的服务。如果有未使用功能,禁用相关服务将减少潜在攻击面,更加安全。

7 步保障私有化部署实例安全


让我们通过简单 7 步,快速强化私有化部署实例。这些速效措施是保障安全的重要开端。额外细节及进一步指导,可参考官方文档。

第一步:开启多因素认证

管理员 → 设置 → 通用 → 登陆限制

确保勾选双重认证(Two-Factor authentication,2FA)选项。双因素宽限期的默认值是 48h,将其调整为一个更低的值,比如 8h。

确认勾选管理员模式。具有管理员访问权限的用户,将需要额外的认证操作来执行管理任务。启用 2FA 后,将需要用户进行额外的 2FA 认证操作。

第二步:加强额外的注册检查

管理员 → 设置 → 通用 → 注册限制

确保勾选启用注册功能。

在电子邮件确认设置下,确认开启高级设置。这将要求用户在允许访问其帐户之前,在注册过程中验证其电子邮件地址。

如果强制执行其他身份验证技术,则 12 个字符的最小密码长度(字符数)默认设置是比较合适的。可用的密码复杂度选项包括需包含数字、大小写字母及特殊字符。是否启用密码复杂度功能,取决于你公司内部的密码标准。

如果所有用户邮箱地址都位于单一域名(比如 example.com ) 下面,可在注册限制里,将其添加到允许域名一栏中。这将阻止非此域名下的邮箱进行注册。

第三步:限制群组和项目可见性

管理员 → 设置 → 通用 → 可见性和访问控制

对于新创建的项目和群组,其默认项目可见性和群组可见性都应该设置为私有。只有被赋予特定访问权限的用户,才能访问特定资源。如有必要或在创建新项目或组时,可以对此进行调整。

这能够确保默认模式安全,防止信息意外泄漏。

第四步:强化 SSH 设置

管理员 → 设置 → 通用 → 可见性和访问控制

通常,在启用 Git 访问协议中选择 Both SSH and HTTP(S)。如果用户不用其中某一个 Git 协议,将其设置为 Only SSH 或者 Only HTTP(S)。

这可以通过限制未使用协议来限制危害可能性,减少攻击面。对于 SSH key 的类型,推荐使用的算法有:

  • ED25519;

  • RSA;

  • ECDSA。

当配置默认类型及 SSH key 长度时,请记住上述列表。

第五步:审核账户和限制设置

管理员 → 设置 → 通用 → 账户和限制设置

这部分允许限制附件、推送、导出、导入及仓库的大小。对于特定大小(MB)可以根据公司内部策略来设置并审核。

用户会话时长(分钟)及 SSH key 和所有访问令牌时长(天)也支持配置,以确保时长与公司内部策略相一致并满足安全最佳实践。

第六步:保障 CI 密钥

管理员 → 设置 → CI

密码、令牌、密钥及其他需要任何保护级别保护的敏感信息,都不应该以纯文本形式存储。相反,应该实施加密容器技术(密钥管理器),比如 GCP Secret Manager 及 HashiCorp Vault,许多极狐GitLab 功能都可以利用 Vault 。

对于外部沟通,需确保 CI/CD 流程中任何外部连接都使用加密通道。强烈推荐使用 TLS 1.2 及以上版本,且在可能的情况下使用 mTLS。

第七步:保护所有分支的流水线

管理员 → 设置 → CI

流水线是工作的一部分,它分阶段执行步骤,代表用户自动化执行任务,是 CI/CD 的核心组成部分。默认情况下,只有默认分支会获得受保护的流水线。遵循这些简单步骤,对其他分支配置同等级别的安全措施,将大大强化你的流水线。

一旦流水线运行起来,代码就会被部署到一个环境上。要限制与该环境的交互,保护它免受未经授权的用户的影响,可将关键环境设为“受保护”。

本文从不同维度阐述了如何强化加固私有化部署极狐GitLab/GitLab 实例。如果想要学习更多关于极狐GitLab/GitLab是如何保障安全的,可查阅安全文档 ,希望能够对你有帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/593844.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

labelimg闪退解决方法(之前使用过labelimg,但新一次使用,打开文件夹无反应,再次打开闪退的问题)

问题描述: 之前使用过labelimg进行好多次的标注,但新一次运行使用,发现打开目录无反应,再次打开闪退的问题,重启电脑并且从新运行labelimg仍然无效。 解决方法: 关闭labelimg,然后删除文件C…

RK平台使用i2c-tools调试

简介 i2ctool是嵌入式开发过程中调试i2c设备常用的工具包,其中比较常用的有:i2cdetect、i2cdump、i2cset、i2cget。 RK平台的SDK大部分默认都会带这个工具,如果没有编译进去或者找不到的情况下可以自己从网上下载编译进去:https:…

数据结构与算法08:二分查找和哈希算法

目录 【二分查找】 二分查找的特殊情况 【哈希算法】 应用一:安全加密 应用二:唯一标识 应用三:数据校验 应用四:散列函数 应用五:负载均衡 应用六:数据分片 应用七:分布式存储&…

vscode:快捷输入代码片段

背景 每次调试代码输入 console.log() 的时候都会想,有没有什么指令我按下了就能生成这行代码,甚至更多我想自定义的代码,然后就去搜了搜果然有,vscode 提供了自定义代码片段的功能。 步骤 打开 vscode,点击 Prefer…

idea连接HiveServer2

一、 启动hive 启动hive的元数据服务 [aahadoop102 hive]$ bin/hive --service metastore根据你hive的配置方式启动hiveserver2 [aahadoop102 hive]$ bin/hive --service hiveserver2二、配置idea连接Hive服务 打开idea,在项目界面中的右边栏找到Database&#…

学术小白如何写好论文引言

文章目录 1.引言写作逻辑1.1 第一段:从现实出发1.2 第二段:文献综述1.3 第三段:引入研究理论和中介变量1.4 第四段:介绍调节变量的概念1.5 第五段:总结 Hello,宝子们,接下来,我们将持续不断更新一系列围绕论文写作的tips建议&…

vue3学习笔记(附加铺垫知识)

Vue3 1.铺垫知识 1.1ES6 默认导出与默认导入: 按需导出与按需导入: 直接导入并执行模块中的代码: 1.2Promise 回调地狱: 基本概念: 使用promise封装自己的读文件方法: 第一步: 第二步&a…

IP地址和MAC地址

1、MAC地址 MAC(Media Access Control,介质访问控制)地址,或称为物理地址,也叫硬件地址,用来定义网络设备的位置,MAC地址是网卡出厂时设定的,是固定的(但可以通过在设备…

二进制安装K8S

阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区 (aliyun.com)https://developer.aliyun.com/mirror/所有节点yum源更换为 ,按照aliyun给的容器里面的kubenetes源和docker源,当然最好把之前的centos源也换成aliyun的 所有节点安装docker yum install -…

git 环境配置 + gitee拉取代码

好嘛 配环境的时候 老是忘记这个命令行 干脆自己写一个记录一下 也不用搜了 1.先从git官网下载git 安装 2.然后从gitee拉取代码的时候提示 这是因为换了新电脑没有加入新的公钥啦 哎 所以老是记不住命令行 first : git config --global user.name “Your Name” …

windows下上架iOS应用到appstore

windows下上架iOS应用到appstore 背景步骤申请苹果开发者账号创建唯一标示符App IDs申请发布证书申请发布描述文件创建App并填写信息选择证书编译打包上传IPA到App Store提交审核 尾巴 背景 现在由于跨平台技术的兴起,不使用原生技术就能开发出Android和iOS应用。A…

redis cluster集群常见错误问题记录

错误信息一: [ERR] Node 127.0.0.1:6379 is not empty. Either the node already knows other nodes (check with CLUSTER NODES) or contains some key in database 0. 这个报错是因为集群配置信息有被修改后导致的,比如某个节点里的redis.conf配置有变…

儿童节小游戏——HTML+JS实现贪吃蛇

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

AI时代,保障安全刻不容缓!

原创 | 文 BFT机器人 01 AI诈骗层出不穷 近年来,深度伪造行为呈现出快速增长的趋势。据统计,2019年至2020年期间,深度伪造网络内容的数量增加了900%,这一令人担忧的趋势预计将在未来数年内持续发展。一些研究人员甚至预测&#xf…

Nova 和 SuperNova:无需通用电路的通用机器执行证明系统

1. 引言 前序博客有: Nova: Recursive Zero-Knowledge Arguments from Folding Schemes学习笔记SuperNova:为多指令虚拟机执行提供递归证明基于Nova/SuperNova的zkVMSangria:PLONK Folding2023年 ZK Hack以及ZK Summit 亮点记Sangria&…

如何把多个pdf合并成一个pdf?常见渠道一览

PDF是一种非常常见的文件格式,它通常用于文档的传输和共享。在日常工作中,我们可能需要将多个PDF文件合并成一个文件以便于管理和浏览。这篇文章将会介绍如何使用在线工具和桌面应用程序来合并PDF文件。 PDF转换器:常用的PDF处理软件&#xf…

Language Models as Knowledge Embeddings:语言模型用作知识嵌入 IJCAI 2022

1.相关工作 1)基于结构的知识嵌入 进一步分成基于翻译的模型和基于语义匹配的模型 基于翻译的模型采用基于距离的评分函数,TransE把实体和关系嵌入到一个维度为d的共享向量空间中;TransH,TransR,RotatE. 语义匹配模型采用基于相似性的评分函…

【Unity】简单的边缘高亮

【Unity】简单的边缘高亮 工程文件下载地址 全部文件 使用方法 方法功能On()打开单帧高亮显示On(Color color)打开单帧高亮显示FlashingParams(Color color1, Color color2, float freq)闪烁的参数设置FlashingOn打开闪烁FlashingOn(Color color1, Color color2)从颜色1切换到…

Python实战基础16-模块

Python中的模块 Python提供了强大的模块支持,主要体现为不仅在python标注库中包含了大量的模块(称为标准模块),而且还有很多第三方模块,另外开发者自己也可以开发自定义模块。 说的通俗点:模块就好比是工具…

ATA-L系列水声功率放大器-宽频带-大功率

水声功率放大器是一种专门用于水声信号放大的电子设备。水声功率放大器在水声通信中具有重要的作用,它可以将微弱的水声信号放大至足够强度,以提高信噪比和传输距离;同时,还可以进行信号处理和优化,以及温度控制等功能…