多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Securing your deployed applications > 原文:[https://docs.gitlab.com/ee/user/project/clusters/securing.html](https://docs.gitlab.com/ee/user/project/clusters/securing.html) * [Overview](#overview) * [Requirements](#requirements) * [Understanding how GitLab Managed Apps are installed](#understanding-how-gitlab-managed-apps-are-installed) * [Connect the cluster to GitLab](#connect-the-cluster-to-gitlab) * [Set up a GitLab Runner](#set-up-a-gitlab-runner) * [Create a Cluster Management Project](#create-a-cluster-management-project) * [Install GitLab Container Network Policy](#install-gitlab-container-network-policy) * [Install GitLab Container Host Security](#install-gitlab-container-host-security) # Securing your deployed applications[](#securing-your-deployed-applications "Permalink") 使用 GitLab 可以轻松保护在[连接的 Kubernetes 集群中](index.html)部署的应用程序的安全. 您可以从[Web 应用程序防火墙](../../../topics/web_application_firewall/quick_start_guide.html) , [网络策略](../../../topics/autodevops/stages.html#network-policy)甚至[容器主机安全性](../../clusters/applications.html#install-falco-using-gitlab-cicd)的保护中受益. 无论您的应用程序是否通过 GitLab CI / CD 进行部署,此页面均包含将群集连接到 GitLab 并安装这些功能的完整的端到端步骤和说明. 如果您使用[Auto DevOps](../../../topics/autodevops/index.html)与 GitLab 一起构建和部署您的应用程序,请参见上面有关[GitLab 托管应用程序](../../clusters/applications.html)的文档. ## Overview[](#overview "Permalink") 在较高级别,所需步骤包括以下步骤: * 将集群连接到 GitLab. * 设置一个或多个跑步者. * 设置集群管理项目. * 安装 Web 应用程序防火墙,网络策略和/或容器主机安全性. * 安装 Prometheus,以在[威胁监视](../../application_security/threat_monitoring/)仪表板中获取统计信息和指标. ### Requirements[](#requirements "Permalink") 最低要求(取决于您要安装的 GitLab 管理应用程序): * 您的群集已连接到 GitLab(ModSecurity,Cilium 和 Falco). * 至少安装了一个 GitLab Runner(仅限 Cilium 和 Falco). ### Understanding how GitLab Managed Apps are installed[](#understanding-how-gitlab-managed-apps-are-installed "Permalink") **注意:**为简单起见,这些图使用术语*Kubernetes* . 实际上,Sidekiq 连接到在集群中的 Pod 中运行的 Helm Tiller 守护程序. 您可以通过一键式安装过程从 GitLab Web 界面安装 GitLab 托管应用程序. GitLab 使用 Sidekiq(后台处理服务)来简化此过程. sequenceDiagram 自动编号 GitLab->> + Sidekiq:安装 GitLab 托管应用程序 Sidekiq->> + Kubernetes:Helm 安装 Kubernetes->>-Sidekiq:安装完成 Sidekiq->>-GitLab:刷新 UI 尽管此安装方法比较容易,因为它是用户界面中的"点击"操作,但它不灵活且难以调试. 当出现问题时,您将看不到部署日志. Web 应用程序防火墙功能使用此安装方法. 但是,下一代的 GitLab 托管应用程序 V2( [基于 CI / CD 的 GitLab 托管应用程序](https://gitlab.com/groups/gitlab-org/-/epics/2103) )不使用 Sidekiq 进行部署. 所有应用程序都使用 GitLab CI / CD 管道以及因此使用的 GitLab Runners 进行部署. sequenceDiagram 自动编号 GitLab->> + GitLab:触发管道 GitLab->> + Runner:运行部署作业 Runner->> + Kubernetes:Helm 安装 Kubernetes->>-Runner:安装完成 Runner->>-GitLab:报告工作状态和更新流程 调试更容易,因为您可以访问这些作业的原始日志(在失败的情况下,可以将 Helm Tiller 输出作为工件使用),并且灵活性要好得多. 由于这些部署仅在管道正在运行时触发(很可能在集群管理存储库中有新提交时才触发),因此每个操作都具有书面记录,并遵循经典的合并请求工作流程(批准,合并,部署). 网络模型(Cilium)托管的应用程序和容器主机安全性(Falco)都使用此模型进行部署. ## Connect the cluster to GitLab[](#connect-the-cluster-to-gitlab "Permalink") 要将 GitLab 托管应用程序部署到群集,必须首先[将群集添加](add_remove_clusters.html)到 GitLab. 然后从项目或组 Kubernetes 页面[安装](../../clusters/applications.html#installing-applications) Web 应用程序防火墙. 请注意,您的项目不必通过 GitLab 托管或部署. 您可以独立于使用群集的应用程序来管理群集. ## Set up a GitLab Runner[](#set-up-a-gitlab-runner "Permalink") 要安装基于 CI / CD 的 GitLab 托管应用程序,必须在 GitLab 中运行使用 GitLab Runner 的管道. 您可以在上一步中添加的 Kubernetes 集群中[安装 GitLab 运行程序](../../clusters/applications.html#gitlab-runner) ,或者如果使用的是 GitLab.com,则可以使用 GitLab 提供的共享运行程序之一. 将群集连接到 GitLab 并安装好 GitLab Runner 之后,您可以继续执行下一步,并开始安装 Cilium 和 Falco GitLab 托管应用程序以保护托管在此群集上的应用程序. ## Create a Cluster Management Project[](#create-a-cluster-management-project "Permalink") [群集管理项目](../../clusters/management_project.html)是一个 GitLab 项目,其中包含一个`.gitlab-ci.yml`文件,用于将 GitLab 托管应用程序部署到您的群集中. 该项目使用 Kubernetes [`cluster-admin`](https://kubernetes.io/docs/reference/access-authn-authz/rbac/#user-facing-roles)特权运行所需的图表. 该项目的创建与其他任何 GitLab 项目一样开始. 使用一个空项目,并在根目录下添加一个`gitlab-ci.yml`文件,其中包含以下模板: ``` include: - template: Managed-Cluster-Applications.gitlab-ci.yml ``` 要使该项目成为集群管理项目,请遵循以下[说明](../../clusters/management_project.html#selecting-a-cluster-management-project) . 即使您的应用程序未托管在 GitLab 上,也可以这样指定该项目. 在这种情况下,请创建一个新的空项目,您可以在其中选择新创建的集群管理项目. ## Install GitLab Container Network Policy[](#install-gitlab-container-network-policy "Permalink") GitLab 容器网络策略基于[Cilium](https://cilium.io/) . 要安装 Cilium GitLab 托管应用程序,请将`.gitlab/managed-apps/config.yaml`文件添加到群集管理项目中: ``` # possible values are gke, eks or you can leave it blank clusterType: gke cilium: installed: true ``` 您的应用程序不必由 GitLab 进行管理或部署即可利用此功能. [阅读](../../clusters/applications.html#install-cilium-using-gitlab-cicd)有关配置容器网络策略的[更多](../../clusters/applications.html#install-cilium-using-gitlab-cicd)信息. ## Install GitLab Container Host Security[](#install-gitlab-container-host-security "Permalink") 同样,您可以在`.gitlab/managed-apps/config.yaml`基于[Falco](https://falco.org/)安装 Container Host Security: ``` falco: installed: true ``` [阅读](../../clusters/applications.html#install-falco-using-gitlab-cicd)有关配置容器主机安全性的[更多](../../clusters/applications.html#install-falco-using-gitlab-cicd)信息.