이 페이지에서는 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) | ||||||
소스 제어 저장소 구성 | ||||||
네임스페이스에서 파이프라인 동기화 | ||||||
계보 | ||||||
계보 보기 | ||||||
로그 | ||||||
로그 보기 |
보안 권장사항
보안 모델을 채택하고 이를 조직의 필요와 요구사항에 맞춰 조정하기가 어려울 수 있습니다. 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 정책 분석 도구를 참조하세요.
다음 단계
- Cloud Data Fusion에서 RBAC를 사용하는 방법 알아보기