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 可以将集群范围的角色和绑定附加到集群中的所有项目。有一些默认的集群角色可以分配以提供admin
、basic-user
、cluster-admin
和 cluster-status
访问权限。
虽然 RBAC 控制用户和组与可用项目之间的访问规则,但准入插件定义对 OpenShift Container Platform 主 API 的访问。准入插件形成一个规则链,该规则链由以下部分组成:
默认准入插件:这些实现应用于 OpenShift Container Platform 控制平面组件的默认策略集和资源限制。
变异准入插件:这些插件动态扩展准入链。它们调用 Webhook 服务器,并且可以同时验证请求和修改选定的资源。
验证准入插件:这些插件验证选定资源的请求,并且可以同时验证请求并确保资源不会再次更改。
API 请求会依次通过一系列准入插件,任何环节的失败都会导致请求被拒绝。每个准入插件都与特定的资源相关联,并且只响应对这些资源的请求。
您可以通过身份验证和授权进行 API 访问控制来保护您的容器平台。OpenShift Container Platform 主节点包含一个内置的 OAuth 服务器。用户可以获取 OAuth 访问令牌以向 API 进行身份验证。
作为管理员,您可以配置 OAuth 以使用身份提供程序(例如 LDAP、GitHub 或 Google)进行身份验证。身份提供程序默认用于新的 OpenShift Container Platform 部署,但您可以在初始安装时或安装后进行配置。
应用程序可以具有多个独立的 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 单点登录服务器通过提供基于标准的 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。