Flink 애플리케이션을 실행하기 위한 보안 역할 권한
이 주제에서는 Flink 애플리케이션을 배포하고 실행하기 위한 보안 역할에 대해 설명합니다. 배포를 관리하고 작업을 생성 및 관리하는 데 필요한 두 가지 역할(작업자 역할과 작업 역할)이 있습니다. 이 주제에서는 이러한 역할을 소개하고 해당 권한을 나열합니다.
역할 기반 액세스 제어
운영자를 배포하고 Flink 작업을 실행하려면 두 개의 Kubernetes 역할(즉, 운영자 하나와 작업 역할 하나)을 생성해야 합니다. Amazon EMR은 운영자를 설치할 때 기본적으로 두 가지 역할을 생성합니다.
운영자 역할
운영자 역할을 사용하여 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: - '*'
작업 역할
JobManager는 작업 역할을 사용하여 각 작업에 대한 TaskManager 및 ConfigMap을 생성하고 관리합니다.
rules: - apiGroups: - "" resources: - pods - configmaps verbs: - '*' - apiGroups: - apps resources: - deployments - deployments/finalizers verbs: - '*'