

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

# 运行 Flink 应用程序的安全角色权限
<a name="jobruns-flink-kubernetes-security"></a>

本主题介绍了部署和运行 Flink 应用程序的安全角色。管理部署以及创建和管理作业需要两个角色：Operator 和 Job。本主题介绍了两个角色并列出了其权限。

## 基于角色的访问控制
<a name="jobruns-flink-kubernetes-security-rbac"></a>

要部署 Operator 并运行 Flink 任务，必须创建两个 Kubernetes 角色：一个 Operator 角色和一个任务角色。安装 Operator 时 Amazon EMR 会默认创建这两个角色。

## Operator 角色
<a name="jobruns-flink-kubernetes-security-operator-role"></a>

我们使用操作员角色`flinkdeployments`来管理每个 Flink 作业和其他资源（例如服务）的创建和管理。 JobManager 

Operator 角色的默认名称为 `emr-containers-sa-flink-operator` 并且需要以下权限。

```
rules:
- apiGroups:
  - ""
  resources:
  - pods
  - services
  - events
  - configmaps
  - secrets
  - serviceaccounts
  verbs:
  - '*'
- apiGroups:
  - rbac.authorization.k8s.io
  resources:
  - roles
  - rolebindings
  verbs:
  - '*'
- apiGroups:
  - apps
  resources:
  - deployments
  - deployments/finalizers
  - replicasets
  verbs:
  - '*'
- apiGroups:
  - extensions
  resources:
  - deployments
  - ingresses
  verbs:
  - '*'
- apiGroups:
  - flink.apache.org
  resources:
  - flinkdeployments
  - flinkdeployments/status
  - flinksessionjobs
  - flinksessionjobs/status
  verbs:
  - '*'
- apiGroups:
  - networking.k8s.io
  resources:
  - ingresses
  verbs:
  - '*'
- apiGroups:
  - coordination.k8s.io
  resources:
  - leases
  verbs:
  - '*'
```

## 任务角色
<a name="jobruns-flink-security-job-role"></a>

 JobManager 使用作业角色 ConfigMaps 为每个作业创建和管理 TaskManagers 和。

```
rules:
- apiGroups:
  - ""
  resources:
  - pods
  - configmaps
  verbs:
  - '*'
- apiGroups:
  - apps
  resources:
  - deployments
  - deployments/finalizers
  verbs:
  - '*'
```