역할 기반 액세스 제어(RBAC) 개요

이 페이지에서는 Cloud Data Fusion 버전 6.5 이상에서 사용할 수 있는 역할 기반 액세스 제어(RBAC)의 세분화된 승인을 설명합니다.

RBAC는 Cloud Data Fusion에서 파이프라인을 개발하는 환경 내에서의 액세스를 제한합니다. RBAC는 Cloud Data Fusion 리소스에 액세스할 수 있는 사용자, 해당 리소스로 수행할 수 있는 작업, 액세스할 수 있는 영역 (예: 인스턴스 또는 네임스페이스)을 관리하는 데 도움이 됩니다. Cloud Data Fusion RBAC는 Identity and Access Management(IAM)를 기반으로 한 세분화된 액세스 관리를 제공하는 승인 시스템입니다.

RBAC를 사용해야 하는 경우

역할 기반 액세스 제어는 단일 Cloud Data Fusion 인스턴스 내에서 네임스페이스 수준 격리를 제공합니다. 다음 사용 사례에 권장됩니다.

  • 조직에서 사용하는 인스턴스 수를 최소화하는 데 도움이 됩니다.
  • 여러 개발자, 팀 또는 사업부가 단일 Cloud Data Fusion 인스턴스를 사용하도록 지원합니다.

조직에서 Cloud Data Fusion RBAC를 사용하여 허용할 수 있는 권한은 다음과 같습니다.

  • 사용자는 네임스페이스 하나 내에서만 파이프라인을 실행할 수 있으며 아티팩트나 런타임 컴퓨팅 프로필을 수정할 수는 없습니다.
  • 사용자가 파이프라인만 볼 수만 있으며 파이프라인을 수정하거나 실행할 수는 없습니다.
  • 사용자가 파이프라인을 생성, 배포, 실행할 수 있습니다.

권장: RBAC를 사용하는 경우에도 격리, 보안, 성능 안정성을 유지하려면 개발 환경과 프로덕션 환경에 별도의 프로젝트와 인스턴스를 사용합니다.

제한사항

  • 인스턴스 또는 네임스페이스 수준에서 한 사용자에게 역할을 1개 이상 부여할 수 있습니다.
  • RBAC는 Cloud Data Fusion Enterprise 버전에서만 사용할 수 있습니다.
  • 네임스페이스 수: 인스턴스당 네임스페이스 수에 적용되는 엄격한 제한은 없습니다.
  • 사용자: 사용자는 인스턴스당 최대 50명까지 지원됩니다.
  • 커스텀 역할: 커스텀 RBAC 역할 만들기는 지원되지 않습니다.
  • Cloud Data Fusion RBAC는 연결 관리에 대한 승인을 지원하지 않습니다.
  • 서비스 계정 OAuth 액세스 토큰을 사용하여 버전 6.5 RBAC 지원 인스턴스에 액세스할 경우 다음 범위, 특히 userinfo.email 범위를 지정해야 합니다. 그렇지 않으면 권한 거부 오류가 발생합니다.
    • https://www.googleapis.com/auth/userinfo.email
    • https://www.googleapis.com/auth/cloud-platform 또는 https://www.googleapis.com/auth/servicecontrol

Role assignments(역할 할당)

역할 할당은 3가지 요소(주 구성원, 역할 정의, 범위)로 이루어집니다.

주 구성원

주 구성원(이전에는 멤버라고 함)은 Google 계정(최종 사용자의 경우), 서비스 계정(앱 및 가상 머신의 경우) 또는 Cloud Data Fusion 리소스에 대한 액세스를 요청하는 Google 그룹일 수 있습니다. 이러한 주 구성원에 역할을 할당할 수 있습니다.

역할 정의

역할에는 Google Cloud 리소스에서 특정 작업을 수행할 수 있는 일련의 권한이 포함되어 있습니다.

Cloud Data Fusion은 개발자가 사용할 수 있는 사전 정의된 역할을 몇 가지 제공합니다.

예시:

  • 인스턴스 관리자 역할(datafusion.admin)을 받은 주 구성원은 네임스페이스를 만들고 삭제하고 권한을 부여할 수 있습니다.
  • 개발자 역할(datafusion.developer)을 통해 주 구성원은 파이프라인을 생성, 삭제, 배포하고 미리보기를 실행할 수 있습니다.

범위

범위는 액세스 권한이 적용되는 리소스 집합입니다. 역할을 할당할 때 범위(예: 인스턴스 또는 네임스페이스)를 정의하여 허용되는 작업을 추가로 제한할 수 있습니다. 누군가에게 개발자 역할을 할당하되 네임스페이스 하나에만 해당하는 권한을 할당하려는 경우에 유용합니다.

사전 정의된 Cloud Data Fusion 역할

Cloud Data Fusion RBAC에는 사전 정의된 역할이 몇 가지 포함되어 있습니다.

인스턴스 액세스 역할(datafusion.accessor)
Cloud Data Fusion 인스턴스에 대한 주 구성원 액세스 권한을 부여하지만 인스턴스 내 리소스에 대한 액세스 권한을 부여하지 않습니다. 이 역할을 다른 네임스페이스별 역할과 함께 사용하여 네임스페이스에 대한 세분화된 액세스 권한을 제공합니다.
뷰어 역할(datafusion.viewer)
네임스페이스 하나의 주 구성원에게 파이프라인을 볼 수 있지만 파이프라인을 작성하거나 실행할 수 없는 액세스 권한을 부여합니다.
운영자 역할(datafusion.operator)
네임스페이스 하나의 주 구성원에게 파이프라인에 액세스하여 실행하거나 컴퓨팅 프로필을 변경하거나 컴퓨팅 프로필을 만들거나 아티팩트를 업로드할 수 있는 액세스 권한을 부여합니다. 파이프라인 미리보기를 제외하고 개발자와 같은 작업을 수행할 수 있습니다.
개발자 역할(datafusion.developer)
네임스페이스 하나의 주 구성원에게 네임스페이스 내에서 파이프라인과 같은 제한된 리소스를 만들고 수정할 수 있는 액세스 권한을 부여합니다.
편집자 역할(datafusion.editor)
주 구성원에게 Cloud Data Fusion 인스턴스 하나에 있는 네임스페이스 하나의 모든 Cloud Data Fusion 리소스에 대한 전체 액세스 권한을 부여합니다. 이 역할은 주 구성원에게 인스턴스 접근자 역할과 함께 부여되어야 합니다. 주 구성원은 이 역할을 사용하여 네임스페이스의 리소스를 생성, 삭제, 수정할 수 있습니다.
인스턴스 관리자 역할(datafusion.admin)
Cloud Data Fusion 인스턴스 내 모든 리소스에 대한 액세스 권한을 부여합니다. IAM을 통해 할당됩니다. RBAC를 통해 네임스페이스 수준에서 할당되지 않습니다.
작업 datafusion.accessor datafusion.viewer datafusion.operator datafusion.developer datafusion.editor datafusion.admin
인스턴스
인스턴스 액세스
네임스페이스
네임스페이스 만들기 *
명시적 액세스 권한이 부여된 액세스 네임스페이스
명시적 액세스 권한이 부여되지 않은 네임스페이스 액세스 *
네임스페이스 수정
네임스페이스 삭제
네임스페이스 서비스 계정
서비스 계정 추가
서비스 계정 수정
서비스 계정 삭제
서비스 계정 사용
RBAC
네임스페이스에서 다른 주 구성원에 대한 권한 부여 또는 취소 *
일정
일정 만들기
일정 보기
일정 변경
컴퓨팅 프로필
컴퓨팅 프로필 만들기
컴퓨팅 프로필 보기
컴퓨팅 프로필 수정
컴퓨팅 프로필 삭제
연결
연결 만들기
연결 보기
연결 수정
연결 삭제
연결 사용
파이프라인
파이프라인 만들기
파이프라인 보기
파이프라인 수정
파이프라인 삭제
파이프라인 미리보기
파이프라인 배포
파이프라인 실행
보안 키
보안 키 만들기
보안 키 보기
보안 키 삭제
태그
태그 만들기
태그 보기
태그 삭제
Cloud Data Fusion 허브
플러그인 배포
소스 제어 관리(SCM)
소스 제어 저장소 구성
네임스페이스에서 파이프라인 동기화
계보
계보 보기
로그
로그 보기

* 주 구성원은 인스턴스 관리자 RBAC 역할이 아닌 Data Fusion 관리자 IAM 역할이 있어야 합니다.

보안 권장사항

보안 모델을 채택하고 이를 조직의 필요와 요구사항에 맞춰 조정하기가 어려울 수 있습니다. Cloud Data Fusion의 RBAC 모델을 채택하는 과정을 간소화하는 데 도움이 되는 권장사항을 소개합니다.

  • 인스턴스 관리자 역할은 주의해서 부여해야 합니다. 이 역할은 인스턴스 및 모든 기본 Cloud Data Fusion 리소스에 대한 전체 액세스를 사용 설정합니다. 이 역할이 있는 주 구성원은 REST API를 사용하여 다른 사용자에게 권한을 부여할 수 있습니다.
  • 주 구성원이 Cloud Data Fusion 인스턴스 내 개별 네임스페이스에 액세스해야 하는 경우 인스턴스 관리자 역할을 부여해서는 안 됩니다. 대신 네임스페이스의 하위 집합에 부여된 뷰어/개발자/작업자/편집자 역할 중 하나로 인스턴스 접근자 역할을 부여합니다.
  • 인스턴스 접근자 역할은 주 구성원의 인스턴스에 대한 액세스를 사용 설정하지만 인스턴스 내의 리소스에 대한 액세스 권한을 부여하지 않으므로 먼저 할당해도 안전합니다. 일반적으로 뷰어/개발자/운영자/편집자 중 하나와 함께 이 역할을 사용해 한 인스턴스에 있는 네임스페이스 하나 또는 네임스페이스 하위 집합에 대한 액세스 권한을 제공합니다.
  • 뷰어 역할은 실행 중인 작업의 상태를 이해하고 Cloud Data Fusion 인스턴스가 포함된 파이프라인 또는 로그를 보려는 사용자 또는 Google 그룹에 할당하는 것이 좋습니다. 처리가 완료되었는지 여부를 알고 싶은 일일 보고서의 소비자가 그 예에 해당합니다.
  • 파이프라인 생성, 테스트, 관리를 담당하는 ETL 개발자에게는 개발자 역할을 부여하는 것이 좋습니다.
  • 작업 관리자나 DevOps 서비스를 제공하는 사용자에게는 네임스페이스에 대한 운영자 역할을 부여하는 것이 좋습니다. 개발자가 수행할 수 있는 모든 작업(파이프라인 미리보기 제외)을 수행할 수 있으며 아티팩트를 배포하고 컴퓨팅 프로필을 관리할 수도 있습니다.
  • 네임스페이스의 편집자 역할은 사용자 또는 Google 그룹에게 네임스페이스의 모든 리소스에 대한 전체 액세스 권한을 부여하는 높은 권한의 역할입니다. 편집자는 개발자 및 운영자 역할을 합친 것으로 간주할 수 있습니다.
  • 운영자관리자는 신뢰할 수 없는 플러그인이나 아티팩트를 설치할 경우 보안 위험을 초래할 수 있으므로 주의해야 합니다.

문제 해결

이 페이지에서는 Cloud Data Fusion에서 RBAC와 관련된 문제를 해결하는 방법을 설명합니다.

RBAC의 네임스페이스에 대한 Cloud Data Fusion 뷰어 역할이 있는 주 구성원이 파이프라인 수정 가능

액세스는 IAM 역할과 RBAC 역할의 조합을 기반으로 합니다. IAM 역할이 RBAC 역할보다 우선 적용됩니다. 주 구성원에게 프로젝트 편집자 또는 Cloud Data Fusion 관리자 IAM 역할이 있는지 확인합니다.

RBAC에서 인스턴스 관리자 역할이 있는 주 구성원이 Google Cloud 콘솔에서 Cloud Data Fusion 인스턴스를 볼 수 없음

Cloud Data Fusion에는 인스턴스 관리자 역할이 있는 주 구성원이 Google Cloud 콘솔에서 인스턴스를 볼 수 없다는 알려진 문제가 있습니다. 이 문제를 해결하려면 주 구성원이 인스턴스를 관리할 수 있도록 프로젝트 뷰어Cloud Data Fusion IAM 역할 중 하나를 주 구성원에게 추가로 부여합니다. 이렇게 하면 주 구성원에게 프로젝트의 모든 인스턴스에 대한 뷰어 액세스 권한이 부여됩니다.

주 구성원이 역할이 없는 네임스페이스를 볼 수 없도록 차단

주 구성원이 역할이 없는 네임스페이스를 볼 수 없게 하려면 주 구성원에게 프로젝트 뷰어Cloud Data Fusion IAM 역할이 없어야 합니다. 대신 작동해야 하는 네임스페이스의 주 구성원에게 RBAC 역할만 부여합니다.

이러한 유형의 액세스 권한이 있는 주 구성원은 Google Cloud 콘솔에서 Cloud Data Fusion 인스턴스 목록을 볼 수 없습니다. 대신 https://INSTANCE_NAME-PROJECT_ID.REGION_NAME.datafusion.googleusercontent.com/과 비슷하게 인스턴스에 대한 직접 링크를 제공합니다.

주 구성원이 인스턴스를 열면 Cloud Data Fusion에는 주 구성원에게 RBAC 역할이 부여된 네임스페이스 목록이 표시됩니다.

주 구성원에게 Cloud Data Fusion 접근자 역할 부여

접근자 역할은 다른 RBAC 역할이 Cloud Data Fusion 인스턴스에 할당되면 주 구성원에게 암시적으로 할당됩니다. 주 구성원에게 특정 인스턴스에 대한 역할이 있는지 확인하려면 IAM 정책 분석 도구를 참조하세요.

다음 단계