

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# Flink 애플리케이션을 실행하기 위한 보안 역할 권한
<a name="jobruns-flink-kubernetes-security"></a>

이 주제에서는 Flink 애플리케이션을 배포하고 실행하기 위한 보안 역할에 대해 설명합니다. 배포를 관리하고 작업을 생성 및 관리하는 데 필요한 두 가지 역할(작업자 역할과 작업 역할)이 있습니다. 이 주제에서는 이러한 역할을 소개하고 해당 권한을 나열합니다.

## 역할 기반 액세스 제어
<a name="jobruns-flink-kubernetes-security-rbac"></a>

운영자를 배포하고 Flink 작업을 실행하려면 두 개의 Kubernetes 역할(즉, 운영자 하나와 작업 역할 하나)을 생성해야 합니다. Amazon EMR은 운영자를 설치할 때 기본적으로 두 가지 역할을 생성합니다.

## 운영자 역할
<a name="jobruns-flink-kubernetes-security-operator-role"></a>

운영자 역할을 사용하여 `flinkdeployments`를 관리함으로써 각 Flink 작업 및 기타 리소스(예: 서비스)에 대한 JobManager를 생성하고 관리합니다.

운영자 역할의 기본 이름은 `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는 작업 역할을 사용하여 각 작업에 대한 TaskManager 및 ConfigMap을 생성하고 관리합니다.

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