使用基于角色的访问控制(RBAC)设置集群访问权限 - Amazon EMR
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用基于角色的访问控制(RBAC)设置集群访问权限

为了部署 Spark Operator,Amazon EMR on EKS 会为 Spark Operator 和 Spark 应用程序创建两个角色和服务账户。

Operator 服务账户和角色

Amazon EMR on EKS 会创建 Operator 服务账户和角色来管理 Spark 任务的 SparkApplications 以及其他资源(例如服务)。

此服务账户的默认名称为 emr-containers-sa-spark-operator

以下规则适用于此服务角色:

rules: - apiGroups: - "" resources: - pods verbs: - "*" - apiGroups: - "" resources: - services - configmaps - secrets verbs: - create - get - delete - update - apiGroups: - extensions - networking.k8s.io resources: - ingresses verbs: - create - get - delete - apiGroups: - "" resources: - nodes verbs: - get - apiGroups: - "" resources: - events verbs: - create - update - patch - apiGroups: - "" resources: - resourcequotas verbs: - get - list - watch - apiGroups: - apiextensions.k8s.io resources: - customresourcedefinitions verbs: - create - get - update - delete - apiGroups: - admissionregistration.k8s.io resources: - mutatingwebhookconfigurations - validatingwebhookconfigurations verbs: - create - get - update - delete - apiGroups: - sparkoperator.k8s.io resources: - sparkapplications - sparkapplications/status - scheduledsparkapplications - scheduledsparkapplications/status verbs: - "*" {{- if .Values.batchScheduler.enable }} # required for the `volcano` batch scheduler - apiGroups: - scheduling.incubator.k8s.io - scheduling.sigs.dev - scheduling.volcano.sh resources: - podgroups verbs: - "*" {{- end }} {{ if .Values.webhook.enable }} - apiGroups: - batch resources: - jobs verbs: - delete {{- end }}

Spark 服务账户和角色

Spark 驱动程序 Pod 需要一个与该 Pod 位于同一命名空间的 Kubernetes 服务账户。此服务账户需要权限才能创建、获取、列出、修补和删除执行程序 Pod,以及为驱动程序创建 Kubernetes 无头服务。除非 Pod 命名空间中的默认服务账户具有所需权限,否则驱动程序会失败并在没有服务账户的情况下退出。

此服务账户的默认名称为 emr-containers-sa-spark

以下规则适用于此服务角色:

rules: - apiGroups: - "" resources: - pods verbs: - "*" - apiGroups: - "" resources: - services verbs: - "*" - apiGroups: - "" resources: - configmaps verbs: - "*" - apiGroups: - "" resources: - persistentvolumeclaims verbs: - "*"