本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用基于角色的访问控制(RBAC)设置 Apache Livy 和 Spark 应用程序权限
为了部署 Livy,Amazon EMR on EKS 会创建一个服务器服务账户和角色,以及一个 Spark 服务账户和角色。这些角色必须具有必要的 RBAC 权限才能完成设置和运行 Spark 应用程序。
服务器服务账户和角色的 RBAC 权限
Amazon EMR on EKS 会创建 Livy 服务器服务账户和角色,来管理 Spark 作业的 Livy 会话,以及路由进出入口和其他资源的流量。
此服务账户的默认名称为 emr-containers-sa-livy
。必须拥有以下权限。
rules: - apiGroups: - "" resources: - "namespaces" verbs: - "get" - apiGroups: - "" resources: - "serviceaccounts" "services" "configmaps" "events" "pods" "pods/log" verbs: - "get" "list" "watch" "describe" "create" "edit" "delete" "deletecollection" "annotate" "patch" "label" - apiGroups: - "" resources: - "secrets" verbs: - "create" "patch" "delete" "watch" - apiGroups: - "" resources: - "persistentvolumeclaims" verbs: - "get" "list" "watch" "describe" "create" "edit" "delete" "annotate" "patch" "label"
Spark 服务账户和角色的 RBAC 权限
Spark 驱动程序 Pod 需要一个与该 Pod 位于同一命名空间的 Kubernetes 服务账户。该服务账户需要拥有权限才能管理执行程序容器组(pod)和驱动程序容器组(pod)所需的任何资源。除非命名空间中的默认服务账户具有所需的权限,否则驱动程序会失败并退出。需要以下 RBAC 权限。
rules: - apiGroups: - "" "batch" "extensions" "apps" resources: - "configmaps" "serviceaccounts" "events" "pods" "pods/exec" "pods/log" "pods/portforward" "secrets" "services" "persistentvolumeclaims" "statefulsets" verbs: - "create" "delete" "get" "list" "patch" "update" "watch" "describe" "edit" "deletecollection" "patch" "label"