×

OpenShift Container Platform 和 Kubernetes API 是大规模自动化容器管理的关键。API 用于

  • 验证和配置 Pod、服务和复制控制器的数 据。

  • 对传入请求执行项目验证并调用其他主要系统组件上的触发器。

OpenShift Container Platform 中基于 Kubernetes 的安全相关功能包括

  • 多租户,它结合了基于角色的访问控制和网络策略,可在多个级别隔离容器。

  • 准入插件,它在 API 与向 API 发出请求的用户之间形成边界。

OpenShift Container Platform 使用 Operators 来自动化和简化 Kubernetes 级安全功能的管理。

使用多租户隔离容器

多租户允许在 OpenShift Container Platform 集群上运行的、由多个用户拥有并在多个主机和命名空间中运行的应用程序彼此隔离,并与外部攻击隔离。您可以通过将基于角色的访问控制 (RBAC) 应用于 Kubernetes 命名空间来获得多租户。

在 Kubernetes 中,命名空间是应用程序可以以与其他应用程序分开的方式运行的区域。OpenShift Container Platform 使用并扩展了命名空间,方法是添加额外的注释,包括 SELinux 中的 MCS 标签,并将这些扩展的命名空间标识为项目。在项目的范围内,用户可以维护自己的集群资源,包括服务帐户、策略、约束以及各种其他对象。

RBAC 对象被分配给项目以授权选定的用户访问这些项目。该授权采取规则、角色和绑定的形式。

  • 规则定义用户可以在项目中创建或访问的内容。

  • 角色是可以绑定到选定用户或组的规则集合。

  • 绑定定义用户或组与角色之间的关联。

本地 RBAC 角色和绑定将用户或组附加到特定项目。集群 RBAC 可以将集群范围的角色和绑定附加到集群中的所有项目。有一些默认的集群角色可以分配以提供adminbasic-usercluster-admincluster-status 访问权限。

使用准入插件保护控制平面

虽然 RBAC 控制用户和组与可用项目之间的访问规则,但准入插件定义对 OpenShift Container Platform 主 API 的访问。准入插件形成一个规则链,该规则链由以下部分组成:

  • 默认准入插件:这些实现应用于 OpenShift Container Platform 控制平面组件的默认策略集和资源限制。

  • 变异准入插件:这些插件动态扩展准入链。它们调用 Webhook 服务器,并且可以同时验证请求和修改选定的资源。

  • 验证准入插件:这些插件验证选定资源的请求,并且可以同时验证请求并确保资源不会再次更改。

API 请求会依次通过一系列准入插件,任何环节的失败都会导致请求被拒绝。每个准入插件都与特定的资源相关联,并且只响应对这些资源的请求。

安全上下文约束 (SCC)

您可以使用安全上下文约束 (SCC) 来定义一组条件,Pod 必须满足这些条件才能被系统接受。

SCC 可以管理的一些方面包括:

  • 特权容器的运行

  • 容器可以请求添加的功能

  • 使用主机目录作为卷

  • 容器的 SELinux 上下文

  • 容器用户 ID

如果您拥有必要的权限,则可以根据需要调整默认 SCC 策略使其更宽松。

向服务帐户授予角色

您可以像为用户分配基于角色的访问权限一样,为服务帐户分配角色。每个项目都会创建三个默认服务帐户。服务帐户:

  • 其作用域限制在特定项目内

  • 其名称源自其项目

  • 会自动分配 API 令牌和凭据以访问 OpenShift Container Registry

与平台组件关联的服务帐户的密钥会自动轮换。

身份验证和授权

使用 OAuth 控制访问

您可以通过身份验证和授权进行 API 访问控制来保护您的容器平台。OpenShift Container Platform 主节点包含一个内置的 OAuth 服务器。用户可以获取 OAuth 访问令牌以向 API 进行身份验证。

作为管理员,您可以配置 OAuth 以使用身份提供程序(例如 LDAP、GitHub 或 Google)进行身份验证。身份提供程序默认用于新的 OpenShift Container Platform 部署,但您可以在初始安装时或安装后进行配置。

API 访问控制和管理

应用程序可以具有多个独立的 API 服务,这些服务具有需要管理的不同端点。OpenShift Container Platform 包含容器化的 3scale API 网关版本,以便您可以管理您的 API 并控制访问。

3scale 为您提供了各种标准的 API 身份验证和安全选项,这些选项可以单独使用或组合使用来颁发凭据和控制访问:标准 API 密钥、应用程序 ID 和密钥对以及 OAuth 2.0。

您可以限制对特定端点、方法和服务的访问,并为用户组应用访问策略。应用程序计划允许您设置 API 使用速率限制并控制开发人员组的流量。

有关使用 APIcast v2(容器化 3scale API 网关)的教程,请参阅 3scale 文档中的在 Red Hat OpenShift 上运行 APIcast

Red Hat 单点登录

Red Hat 单点登录服务器通过提供基于标准的 Web 单点登录功能(包括 SAML 2.0、OpenID Connect 和 OAuth 2.0)来保护您的应用程序。该服务器可以充当基于 SAML 或 OpenID Connect 的身份提供程序 (IdP),与您的企业用户目录或第三方身份提供程序协调身份信息,并使用基于标准的令牌与您的应用程序交互。您可以将 Red Hat 单点登录与基于 LDAP 的目录服务集成,包括 Microsoft Active Directory 和 Red Hat Enterprise Linux Identity Management。

安全的自助服务 Web 控制台

OpenShift Container Platform 提供了一个自助服务 Web 控制台,以确保团队未经授权无法访问其他环境。OpenShift Container Platform 通过提供以下功能来确保安全的多分租户主节点:

  • 对主节点的访问使用传输层安全 (TLS)

  • 对 API 服务器的访问使用 X.509 证书或 OAuth 访问令牌

  • 项目配额限制了恶意令牌可能造成的损害

  • etcd 服务不会直接暴露给集群

管理平台证书

OpenShift Container Platform 的框架内包含多个组件,这些组件使用基于 REST 的 HTTPS 通信,并利用 TLS 证书进行加密。OpenShift Container Platform 的安装程序在安装期间配置这些证书。一些主要组件会生成此流量:

  • 主节点(API 服务器和控制器)

  • etcd

  • 节点

  • 注册表

  • 路由器

配置自定义证书

您可以在初始安装期间或重新部署证书时,为 API 服务器和 Web 控制台的公共主机名配置自定义服务证书。您还可以使用自定义 CA。