이 페이지에서는 Google Distributed Cloud (GDC) 에어 갭 어플라이언스의 애플리케이션 운영자 (AO)를 위한 ID 및 액세스 관리 (IAM) 관행을 설명합니다.
ID 공급업체 (IdP)는 주체의 ID 정보를 생성, 유지, 관리하는 시스템 엔티티입니다. 또한 IdP는 제휴 또는 분산 네트워크 내의 애플리케이션에 인증 서비스를 제공합니다.
로그인
이 섹션에서는 웹 사용자 인터페이스 (UI) 또는 명령줄 인터페이스 (CLI)를 통해 워크로드에 액세스하는 방법을 설명합니다.
웹 UI에 로그인
이 페이지에서는 Google Distributed Cloud (GDC) 에어 갭 어플라이언스 내에서 워크로드와 리소스에 액세스하고 이를 관리하는 방법을 설명합니다. 인증, 관리 API 서버와 Kubernetes 클러스터 모두에 대한 kubeconfig 파일 생성, 세션 비활성 관리 방법을 설명합니다. 이러한 프로세스를 이해하면 프로젝트와 워크로드에 안전하고 안정적으로 액세스할 수 있습니다.
GDC 콘솔 또는 gdcloud CLI를 통해 워크로드에 액세스합니다.
로그인
GDC 콘솔 또는 클러스터에 로그인하려면 다음 단계를 따르세요.
콘솔
새 브라우저 탭에서 다음 URL을 열어 GDC 에어갭 어플라이언스 사용자 인터페이스 (UI)에 액세스합니다.
https://GDC_URL
GDC_URL
을 인프라 운영자 (IO)가 제공하는 GDC에 액세스하는 데 사용하는 도메인 이름으로 바꿉니다. URL을 처음 열면 인프라 운영자 (IO)가 페이지를 구성한 경우 GDC가 ID 공급업체 로그인 페이지로 리디렉션합니다.
예를 들어 `org-1`이라는 조직의 콘솔에 로그인하면 다음 페이지가 표시됩니다.
CLI
액세스 권한이 있는 클러스터에 로그인할 수 있습니다. 모든 클러스터의 CLI 로그인 프로세스는 동일합니다. 클러스터 이름과 관련 kubeconfig
파일만 제공하고 각 클러스터에 별도로 로그인해야 합니다.
로그인하기 전에 다음 사항을 확인하세요.
- gdcloud CLI 바이너리를 다운로드하고 시스템에 설치합니다. 자세한 내용은 gdcloud CLI 다운로드를 참고하세요.
- gdcloud CLI 기본 구성을 설정하고 초기화합니다. 로그인 구성 엔드포인트를 가져오는 데 사용되는 올바른 조직 URL을 설정해야 합니다. 자세한 내용은 gdcloud CLI 설치를 참고하세요.
- 인증 플러그인
gdcloud-k8s-auth-plugin
을 설치합니다. 자세한 내용은 gdcloud CLI 인증을 참고하세요.
클러스터에 로그인하려면 다음 단계를 완료하세요.
gdcloud CLI 인스턴스를 인증하여 로그인합니다. 인증하는 방법에는 두 가지가 있습니다.
표준 브라우저 로그인: 브라우저에서 로그인할 때 이 인증 흐름을 사용합니다.
gdcloud auth login
보조 기기 로그인: 기본 기기에 브라우저가 없는 경우 이 인증 흐름을 사용합니다. 이 흐름은 브라우저 액세스 권한이 없는 기본 기기에서 로그인을 시작하고 브라우저 액세스 권한이 있는 보조 기기에서 로그인을 계속합니다.
브라우저가 없는 기본 기기에서 로그인을 시작합니다.
gdcloud auth login --no-browser
기본 기기의 명령어는 c단계에서 보조 기기에서 실행해야 하는 다른
gdcloud
명령어를 출력합니다.클러스터에 로그인의 1단계를 반복하여 보조 기기에 인증서를 다운로드합니다.
기본 기기에 인쇄된 명령어를 입력하여 보조 기기에서 로그인을 완료합니다(a단계).
이 작업은 구성된 ID 공급자(IdP)에 로그인하기 위해 브라우저를 엽니다. 초기 gcloud CLI 설정 중에 설정한 사용자 및 비밀번호를 제공하여 로그인합니다.
사용자 ID
kubeconfig
파일을 변수로 내보냅니다.export KUBECONFIG=/tmp/admin-kubeconfig-with-user-identity.yaml
사용자 ID로
kubeconfig
파일을 생성합니다.gdcloud clusters get-credentials CLUSTER_NAME
사용자 ID로
kubeconfig
파일이 생성됩니다. 다음 YAML 파일은 예시를 보여줍니다.apiVersion: v1 clusters: - cluster: certificate-authority-data: <REDACTED> server: https://10.200.0.32:443 name: cluster-name contexts: - context: cluster: cluster-name user: cluster-name-anthos-default-user name: cluster-name-cluster-name-anthos-default-user current-context: cluster-name-cluster-name-anthos-default-user kind: Config preferences: {} users: - name: cluster-name-anthos-default-user user: exec: apiVersion: client.authentication.k8s.io/v1 args: - --audience=root-admin command: gdcloud-k8s-auth-plugin env: null installHint: Run 'gdcloud components install gdcloud-k8s-auth-plugin' to use plugin interactiveMode: Never provideClusterInfo: false
클러스터에 액세스할 수 있는지 확인하려면 생성된
kubeconfig
파일로 사용자 ID를 사용하여 로그인합니다.kubectl --kubeconfig /tmp/admin-kubeconfig-with-user-identity.yaml version
로그아웃
GDC 콘솔에서 로그아웃하려면 다음 단계를 따르세요.
콘솔
메뉴 바에서
로그아웃을 클릭합니다.CLI
CLI에서 로그아웃합니다.
gdcloud auth revoke
kubeconfig 파일 수동 생성
KRM API를 직접 호출하여 kubectl CLI로 리소스를 관리하는 경우 관리하는 리소스 유형에 따라 리소스를 호스팅하는 클러스터의 kubeconfig 파일을 생성해야 합니다. 필요한 kubeconfig 파일을 확인하려면 리소스의 문서를 참고하세요.
리소스 유형에 따라 해당 설정을 완료합니다.
관리 API 서버 리소스
Management API 서버의 kubeconfig 파일을 생성하려면 다음 단계를 완료하세요.
MANAGEMENT_API_SERVER
환경 변수를 설정합니다.export MANAGEMENT_API_SERVER="root-admin"
관리 API 서버 kubeconfig 파일을 생성하고 사용자 인증 정보를 검증합니다.
export KUBECONFIG=${HOME}/${MANAGEMENT_API_SERVER:?}-kubeconfig.yaml rm ${KUBECONFIG:?} gdcloud clusters get-credentials ${MANAGEMENT_API_SERVER:?} [[ $(kubectl config current-context) == *${MANAGEMENT_API_SERVER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
rm ${KUBECONFIG:?}
명령어는 홈 디렉터리의 기존 kubeconfig 파일을 삭제합니다. 새 kubeconfig 파일을 생성하면 기존 파일이 덮어쓰여집니다. 기존 파일을 덮어쓰거나 삭제하지 않으려면 다른 안전한 위치에 백업하세요.
Kubernetes 클러스터 리소스
다음 단계를 완료하여 베어메탈 Kubernetes 클러스터의 kubeconfig 파일을 생성합니다.
KUBERNETES_CLUSTER
환경 변수를 설정합니다.export KUBERNETES_CLUSTER="root-infra"
Kubernetes 클러스터 kubeconfig 파일을 생성하고 사용자 인증 정보를 검증합니다.
export KUBECONFIG=${HOME}/${KUBERNETES_CLUSTER:?}-kubeconfig.yaml rm ${KUBECONFIG:?} gdcloud clusters get-credentials ${KUBERNETES_CLUSTER:?} [[ $(kubectl config current-context) == *${KUBERNETES_CLUSTER:?}* ]] && echo "Success. Your kubeconfig is at $KUBECONFIG" || echo "Failure"
rm ${KUBECONFIG:?}
명령어는 홈 디렉터리의 기존 kubeconfig 파일을 삭제합니다. 새 kubeconfig 파일을 생성하면 기존 파일이 덮어쓰여집니다. 기존 파일을 덮어쓰거나 삭제하지 않으려면 다른 안전한 위치에 백업하세요.
세션 비활성 로그아웃
세션에서 15분 이상 활동이 없으면 GDC 콘솔과 gdcloud CLI에서 로그아웃됩니다. GDC는 세션 비활성 상태를 열려 있는 세션 중에 커서나 키보드 움직임과 같은 활성 참여가 없는 기간으로 간주합니다. 활성 세션은 사용자 활동이 있는 경우 최대 12시간 동안 지속됩니다.
콘솔
세션 비활성 상태의 경우 GDC 콘솔에서 로그아웃됩니다. GDC 콘솔에서 비활성으로 인해 로그아웃되기 2분 전에 로그아웃을 경고하는 대화상자가 표시됩니다.
활동이 없어 로그아웃된 후 다음 화면이 표시됩니다.
GDC 콘솔에 다시 로그인하려면 ID 공급업체를 선택하고 로그인 사용자 인증 정보를 추가합니다. 모니터링 대시보드와 같은 서비스를 사용하고 있는데 비활성으로 인해 GDC 콘솔에서 로그아웃된 경우 다시 로그인하여 액세스 권한을 얻으세요.
CLI
세션이 비활성 상태이면 gdcloud CLI에서 로그아웃됩니다. gdcloud CLI에서 로그아웃한 후 명령어를 실행하려고 하면 다음과 같은 승인 오류가 표시됩니다.
Error: error when creating kube client: unable to create k8sclient: Unauthorized
gdcloud CLI에 다시 로그인하려면 로그인의 CLI 단계를 따르세요.
kubectl
gdcloud CLI는 세션 비활성 상태가 되면 kubeconfig 파일을 만료합니다. 비활성 상태 후에 kubectl
명령어를 실행하려고 하면 승인 오류가 발생합니다.
error: You must be logged in to the server (Unauthorized)
다시 로그인하고 kubeconfig 파일을 사용하려면 로그인의 CLI 단계를 따르세요. 세션 제한 시간이 초과될 때마다 kubeconfig 파일을 재생성해야 합니다.
IAM 허용 정책 설정
사전 정의된 역할 설명
애플리케이션 운영자 (AO)는 플랫폼 관리자 (PA) 조직 내 개발팀의 구성원입니다. AO는 프로젝트 수준 리소스와 상호작용합니다. 팀 구성원에게 다음과 같은 사전 정의된 역할을 할당할 수 있습니다.
- 프로젝트 IAM 관리자: 프로젝트의 IAM 허용 정책을 관리합니다.
- AI OCR 개발자: 광학 문자 인식 서비스에 액세스하여 이미지의 텍스트를 감지합니다.
- AI Speech Developer: Speech-to-Text 서비스에 액세스하여 음성을 인식하고 오디오를 스크립트로 변환합니다.
- AI 번역 개발자: Vertex AI Translation 서비스에 액세스하여 텍스트를 번역합니다.
- 아티팩트 관리 관리자: 프로젝트 네임스페이스의 모든 Harbor 프로젝트에 있는 리소스에 대한 관리 액세스 권한이 있습니다.
- 아티팩트 관리 편집자: 프로젝트 네임스페이스의 모든 Harbor 프로젝트에 있는 리소스에 대한 읽기 및 쓰기 액세스 권한이 있습니다.
- Certificate Authority Service 관리자: 프로젝트에서 인증 기관 및 인증서 요청을 관리할 수 있습니다.
- 인증서 서비스 관리자: 프로젝트에서 인증서 및 인증서 발급자를 관리할 수 있습니다.
- 대시보드 편집자:
Dashboard
맞춤 리소스에 대한 읽기 및 쓰기 액세스 권한이 있습니다. - 대시보드 뷰어:
Dashboard
커스텀 리소스에 대한 읽기 전용 액세스 권한이 있습니다. - Harbor 인스턴스 관리자: 프로젝트에서 Harbor 인스턴스를 관리할 수 있는 전체 액세스 권한이 있습니다.
- Harbor 인스턴스 뷰어: 프로젝트에서 Harbor 인스턴스를 볼 수 있는 읽기 전용 액세스 권한이 있습니다.
- Harbor 프로젝트 생성자: Harbor 인스턴스 프로젝트를 관리할 수 있는 액세스 권한이 있습니다.
- K8s 네트워크 정책 관리자: Kubernetes 클러스터의 네트워크 정책을 관리합니다.
- LoggingRule Creator: 프로젝트 네임스페이스에서
LoggingRule
커스텀 리소스를 만듭니다. - LoggingRule 편집기: 프로젝트 네임스페이스에서
LoggingRule
커스텀 리소스를 수정합니다. - LoggingRule 뷰어: 프로젝트 네임스페이스에서
LoggingRule
커스텀 리소스를 확인합니다. - LoggingTarget Creator: 프로젝트 네임스페이스에
LoggingTarget
커스텀 리소스를 만듭니다. - LoggingTarget 편집기: 프로젝트 네임스페이스에서
LoggingTarget
커스텀 리소스를 수정합니다. - LoggingTarget 뷰어: 프로젝트 네임스페이스에서
LoggingTarget
커스텀 리소스를 봅니다. - 부하 분산기 관리자: 프로젝트 네임스페이스의 모든 부하 분산기 리소스에 대한 읽기 및 쓰기 권한이 있습니다.
- MonitoringRule 편집자:
MonitoringRule
리소스에 대한 읽기 및 쓰기 액세스 권한이 있습니다. - MonitoringRule 뷰어:
MonitoringRule
맞춤 리소스에 대한 읽기 전용 액세스 권한이 있습니다. - MonitoringTarget Editor:
MonitoringTarget
맞춤 리소스에 대한 읽기 및 쓰기 액세스 권한이 있습니다. - MonitoringTarget 뷰어:
MonitoringTarget
맞춤 리소스에 대한 읽기 전용 액세스 권한이 있습니다. - NAT 뷰어: Kubernetes 클러스터의 배포에 대한 읽기 전용 액세스 권한이 있습니다.
- 네임스페이스 관리자: 프로젝트 네임스페이스 내의 모든 리소스를 관리합니다.
- 관측 가능성 파이프라인 편집자:
ObservabilityPipeine
맞춤 리소스에 대한 읽기 및 쓰기 액세스 권한이 있습니다. - 관측 가능성 파이프라인 뷰어:
ObservabilityPipeline
맞춤 리소스에 대한 읽기 전용 액세스 권한이 있습니다. - 프로젝트 버킷 관리자: 버킷 내의 스토리지 버킷과 객체를 관리합니다.
- 프로젝트 버킷 객체 관리자: 프로젝트 내 버킷에 대한 읽기 전용 액세스 권한과 해당 버킷의 객체에 대한 읽기-쓰기 액세스 권한이 있습니다.
- 프로젝트 버킷 객체 뷰어: 프로젝트 내 버킷과 해당 버킷의 객체에 대한 읽기 전용 액세스 권한이 있습니다.
- Project Cortex Alertmanager Editor: 프로젝트 네임스페이스에서 Cortex Alertmanager 인스턴스를 수정할 권한을 부여합니다.
- Project Cortex Alertmanager Viewer: 프로젝트 네임스페이스의 Cortex Alertmanager 인스턴스에 액세스할 수 있는 권한을 부여합니다.
- Project Cortex Prometheus Viewer: 프로젝트 네임스페이스의 Cortex Prometheus 인스턴스에 액세스할 수 있는 권한을 부여합니다.
- 프로젝트 Grafana 뷰어: Fleet 관리 클러스터의 프로젝트 네임스페이스에 있는 Grafana 인스턴스에 액세스합니다.
- 프로젝트 NetworkPolicy 관리자: 프로젝트 네임스페이스에서 프로젝트 네트워크 정책을 관리합니다.
- 프로젝트 뷰어: 프로젝트 네임스페이스 내의 모든 리소스에 대한 읽기 전용 액세스 권한이 있습니다.
- 프로젝트 VirtualMachine 관리자: 프로젝트 네임스페이스의 VM을 관리합니다.
- 프로젝트 VirtualMachine 이미지 관리자: 프로젝트 네임스페이스의 VM 이미지를 관리합니다.
- 보안 비밀 관리자: 프로젝트의 Kubernetes 보안 비밀을 관리합니다.
- 보안 비밀 뷰어: 프로젝트의 Kubernetes 보안 비밀을 봅니다.
- 서비스 구성 관리자: 프로젝트 네임스페이스 내의 서비스 구성에 대한 읽기 및 쓰기 액세스 권한이 있습니다.
- 서비스 구성 뷰어: 프로젝트 네임스페이스 내의 서비스 구성에 대한 읽기 액세스 권한이 있습니다.
- 볼륨 복제 관리자: 볼륨 복제 리소스를 관리합니다.
- Workbench Notebooks 관리자: 프로젝트 네임스페이스 내의 모든 노트북 리소스에 대한 읽기 및 쓰기 액세스 권한을 얻습니다.
- Workbench Notebooks 뷰어: 프로젝트 네임스페이스 내의 모든 노트북 리소스에 대한 읽기 전용 액세스 권한을 얻고 Vertex AI Workbench 사용자 인터페이스를 볼 수 있습니다.
- 워크로드 뷰어: 프로젝트의 워크로드에 대한 읽기 액세스 권한이 있습니다.
일반적인 역할
다음 사전 정의된 일반 역할은 인증된 모든 사용자에게 적용됩니다.
- AI Platform 뷰어: 사전 학습된 서비스를 볼 수 있는 권한을 부여합니다.
- DNS 서픽스 뷰어: 도메인 이름 서비스 (DNS) 서픽스 구성 맵에 액세스합니다.
- 흐름 로그 관리자: 모든 흐름 로그 리소스에 대한 읽기 및 쓰기 액세스 권한이 있습니다.
- 흐름 로그 뷰어: 모든 흐름 로그 리소스에 대한 읽기 전용 액세스 권한이 있습니다.
- 프로젝트 검색 뷰어: 인증된 모든 사용자가 프로젝트 보기에 대한 읽기 액세스 권한을 보유합니다.
- 공개 이미지 뷰어: 네임스페이스
vm-images
의 공개 VM 이미지에 대해 인증된 모든 사용자의 읽기 액세스 권한이 있습니다. - 시스템 아티팩트 레지스트리 anthos-creds 보안 비밀 모니터:
anthos-creds
네임스페이스의 보안 비밀에 대한 읽기 전용 액세스 권한이 있습니다. - 시스템 Artifact Registry gpc-system 보안 비밀 모니터:
gpc-system
네임스페이스의 보안 비밀에 대한 읽기 전용 액세스 권한이 있습니다. - 시스템 Artifact Registry harbor-system 보안 비밀 모니터:
harbor-system
네임스페이스의 보안 비밀에 대한 읽기 전용 액세스 권한이 있습니다. - 가상 머신 유형 뷰어: 클러스터 범위 가상 머신 유형에 대한 읽기 액세스 권한이 있습니다.
- VM 유형 뷰어: 관리자 클러스터의 사전 정의된 가상 머신 유형에 대한 읽기 액세스 권한이 있습니다.
역할 정의
이 섹션의 표에서는 다양한 사전 정의된 역할과 해당 권한을 설명합니다. 표에는 다음 열이 포함되어 있습니다.
- 이름: 사용자 인터페이스 (UI)에 표시되는 역할의 이름입니다.
- Kubernetes 리소스 이름: 해당 Kubernetes 커스텀 리소스의 이름입니다.
- 수준: 이 역할의 범위가 조직인지 프로젝트인지 지정합니다.
- 유형: 이 역할의 유형입니다. 예를 들어 가능한 값은
Role
,ProjectRole
,ClusterRole
,ProjectClusterRole
입니다. - 바인딩 유형: 이 역할에 적용해야 하는 바인딩 유형입니다.
- 관리 API 서버 또는 Kubernetes 클러스터 권한: 이 역할에 부여된 관리 API 서버 또는 Kubernetes 클러스터 권한입니다. 예를 들어 가능한 값은 read, write, read and write 또는 not applicable (N/A)입니다.
- 에스컬레이션 대상: 이 역할이 다른 역할로 에스컬레이션되는지 여부를 지정합니다.
AO 페르소나, 사전 정의된 ID, 액세스 역할
AO 페르소나 | ||||
---|---|---|---|---|
이름 | Kubernetes 리소스 이름 | 초기 관리자 | 레벨 | 유형 |
프로젝트 IAM 관리자 | project-iam-admin |
참 | 프로젝트 | Role |
AI OCR 개발자 | ai-ocr-developer |
거짓 | 프로젝트 | Role |
AI Platform 뷰어 | ai-platform-viewer |
거짓 | 프로젝트 | Role |
AI 음성 개발자 | ai-speech-developer |
거짓 | 프로젝트 | Role |
AI 번역 개발자 | ai-translation-developer |
거짓 | 프로젝트 | Role |
아티팩트 관리 관리자 | artifact-management-admin |
거짓 | 프로젝트 | Role |
아티팩트 관리 편집자 | artifact-management-editor |
거짓 | 프로젝트 | Role |
Certificate Authority Service 관리자 | certificate-authority-service-admin |
거짓 | 프로젝트 | Role |
인증서 서비스 관리자 | certificate-service-admin |
거짓 | 프로젝트 | Role |
대시보드 편집기 | dashboard-editor |
거짓 | 프로젝트 | Role |
대시보드 뷰어 | dashboard-viewer |
거짓 | 프로젝트 | Role |
Harbor 인스턴스 관리자 | harbor-instance-admin |
거짓 | 프로젝트 | Role |
Harbor 인스턴스 뷰어 | harbor-instance-viewer |
거짓 | 프로젝트 | Role |
Harbor 프로젝트 생성자 | harbor-project-creator |
거짓 | 프로젝트 | Role |
K8s 네트워크 정책 관리자 | k8s-networkpolicy-admin |
거짓 | 프로젝트 | ProjectRole |
부하 분산기 관리자 | load-balancer-admin |
거짓 | 프로젝트 | ProjectRole |
LoggingRule Creator | loggingrule-creator |
거짓 | 프로젝트 | Role |
LoggingRule 편집기 | loggingrule-editor |
거짓 | 프로젝트 | Role |
LoggingRule Viewer | loggingrule-viewer |
거짓 | 프로젝트 | Role |
LoggingTarget Creator | loggingtarget-creator |
거짓 | 프로젝트 | Role |
LoggingTarget 편집기 | loggingtarget-editor |
거짓 | 프로젝트 | Role |
LoggingTarget 뷰어 | loggingtarget-viewer |
거짓 | 프로젝트 | Role |
MonitoringRule 편집자 | monitoringrule-editor |
거짓 | 프로젝트 | Role |
MonitoringRule 뷰어 | monitoringrule-viewer |
거짓 | 프로젝트 | Role |
MonitoringTarget 편집자 | monitoringtarget-editor |
거짓 | 프로젝트 | Role |
MonitoringTarget 뷰어 | monitoringtarget-viewer |
거짓 | 프로젝트 | Role |
네임스페이스 관리자 | namespace-admin |
거짓 | 프로젝트 | ProjectRole |
NAT 뷰어 | nat-viewer |
거짓 | 프로젝트 | ProjectRole |
ObservabilityPipeline 편집자 | observabilitypipeline-editor |
거짓 | 프로젝트 | Role |
ObservabilityPipeline 뷰어 | observabilitypipeline-viewer |
거짓 | 프로젝트 | Role |
프로젝트 버킷 관리자 | project-bucket-admin |
거짓 | 프로젝트 | Role |
프로젝트 버킷 객체 관리자 | project-bucket-object-admin |
거짓 | 프로젝트 | Role |
프로젝트 버킷 객체 뷰어 | project-bucket-object-viewer |
거짓 | 프로젝트 | Role |
Project Cortex Alertmanager 편집자 | project-cortex-alertmanager-editor |
거짓 | 프로젝트 | Role |
Project Cortex Alertmanager 뷰어 | project-cortex-alertmanager-viewer |
거짓 | 프로젝트 | Role |
Project Cortex Prometheus 뷰어 | project-cortex-prometheus-viewer |
거짓 | 프로젝트 | Role |
프로젝트 Grafana 뷰어 | project-grafana-viewer |
거짓 | 프로젝트 | Role |
프로젝트 NetworkPolicy 관리자 | project-networkpolicy-admin |
거짓 | 프로젝트 | Role |
프로젝트 뷰어 | project-viewer |
거짓 | 프로젝트 | Role |
프로젝트 VirtualMachine 관리자 | project-vm-admin |
거짓 | 프로젝트 | Role |
프로젝트 VirtualMachine 이미지 관리자 | project-vm-image-admin |
거짓 | 프로젝트 | Role |
Secret Admin | secret-admin |
거짓 | 프로젝트 | Role |
Secret Viewer | secret-viewer |
거짓 | 프로젝트 | Role |
서비스 구성 관리자 | service-configuration-admin |
거짓 | 프로젝트 | Role |
서비스 구성 뷰어 | service-configuration-viewer |
거짓 | 프로젝트 | Role |
Workbench Notebooks 관리자 | workbench-notebooks-admin |
거짓 | 프로젝트 | Role |
볼륨 복제 관리자 | app-volume-replication-admin |
거짓 | 클러스터 | Role |
Workbench Notebooks 뷰어 | workbench-notebooks-viewer |
거짓 | 프로젝트 | Role |
워크로드 뷰어 | workload-viewer |
거짓 | 프로젝트 | Role |
AO 페르소나, 사전 정의된 ID, 액세스 역할
AO 페르소나 | ||||
---|---|---|---|---|
이름 | 바인딩 유형 | Management API 서버 권한 | Kubernetes 클러스터 권한 | 에스컬레이션 대상 |
프로젝트 IAM 관리자 | RoleBinding |
|
해당 사항 없음 | 기타 모든 AO 역할 |
AI OCR 개발자 | RoleBinding |
OCR 리소스: 읽기 및 쓰기 | 해당 사항 없음 | 해당 사항 없음 |
AI 음성 개발자 | RoleBinding |
음성 리소스: 읽기 및 쓰기 | 해당 사항 없음 | 해당 사항 없음 |
AI 번역 개발자 | RoleBinding |
번역 리소스: 읽기 및 쓰기 | 해당 사항 없음 | 해당 사항 없음 |
아티팩트 관리 관리자 | RoleBinding |
HarborProjects : 관리, 생성, 읽기, 쓰기, 삭제, 보기 |
해당 사항 없음 | 해당 사항 없음 |
아티팩트 관리 편집자 | RoleBinding |
HarborProjects : 읽기, 쓰기, 보기 |
해당 사항 없음 | 해당 사항 없음 |
Certificate Authority Service 관리자 | RoleBinding |
인증 기관 및 인증서 요청: 가져오기, 나열, 감시, 업데이트, 생성, 삭제, 패치 | 해당 사항 없음 | 해당 사항 없음 |
인증서 서비스 관리자 | RoleBinding |
인증서 및 인증서 발급자: 가져오기, 나열, 감시, 업데이트, 생성, 삭제, 패치 | 해당 사항 없음 | 해당 사항 없음 |
대시보드 편집기 | RoleBinding |
Dashboard 맞춤 리소스: 가져오기, 읽기, 생성, 업데이트, 삭제, 패치 |
해당 사항 없음 | 해당 사항 없음 |
대시보드 뷰어 | RoleBinding |
Dashboard : 가져오기 및 읽기 |
해당 사항 없음 | 해당 사항 없음 |
Harbor 인스턴스 관리자 | RoleBinding |
Harbor 인스턴스: 생성, 읽기, 업데이트, 삭제, 패치 | 해당 사항 없음 | 해당 사항 없음 |
Harbor 인스턴스 뷰어 | RoleBinding |
Harbor 인스턴스: 읽기 | 해당 사항 없음 | 해당 사항 없음 |
Harbor 프로젝트 생성자 | RoleBinding |
Harbor 인스턴스 프로젝트: 만들기, 가져오기, 감시 | 해당 사항 없음 | 해당 사항 없음 |
K8s NetworkPolicy 관리자 | ProjectRoleBinding |
해당 사항 없음 | NetworkPolicy 리소스: 생성, 읽기, 가져오기, 업데이트, 삭제, 패치 |
해당 사항 없음 |
부하 분산기 관리자 | RoleBinding |
해당 사항 없음 |
|
해당 사항 없음 |
LoggingRule Creator | RoleBinding |
LoggingRule 커스텀 리소스: 생성, 읽기, 업데이트, 삭제, 패치 |
해당 사항 없음 | 해당 사항 없음 |
LoggingRule 편집기 | RoleBinding |
LoggingRule 커스텀 리소스: 생성, 읽기, 업데이트, 삭제, 패치 |
해당 사항 없음 | 해당 사항 없음 |
LoggingRule Viewer | RoleBinding |
LoggingRule 커스텀 리소스: 읽기 |
해당 사항 없음 | 해당 사항 없음 |
LoggingTarget Creator | RoleBinding |
LoggingTarget 커스텀 리소스: 생성, 읽기, 업데이트, 삭제, 패치 |
해당 사항 없음 | 해당 사항 없음 |
LoggingTarget 편집기 | RoleBinding |
LoggingTarget 커스텀 리소스: 생성, 읽기, 업데이트, 삭제, 패치 |
해당 사항 없음 | 해당 사항 없음 |
LoggingTarget 뷰어 | RoleBinding |
LoggingTarget 커스텀 리소스: 읽기 |
해당 사항 없음 | 해당 사항 없음 |
MonitoringRule 편집자 | RoleBinding |
MonitoringRule 커스텀 리소스: 생성, 읽기, 업데이트, 삭제, 패치 |
해당 사항 없음 | 해당 사항 없음 |
MonitoringRule 뷰어 | RoleBinding |
MonitoringRule 커스텀 리소스: 읽기 |
해당 사항 없음 | 해당 사항 없음 |
MonitoringTarget 편집자 | RoleBinding |
MonitoringTarget 커스텀 리소스: 생성, 읽기, 업데이트, 삭제, 패치 |
해당 사항 없음 | 해당 사항 없음 |
MonitoringTarget 뷰어 | RoleBinding |
MonitoringTarget 커스텀 리소스: 읽기 |
해당 사항 없음 | 해당 사항 없음 |
네임스페이스 관리자 | ProjectRoleBinding |
해당 사항 없음 | 모든 리소스: 프로젝트 네임스페이스의 읽기 및 쓰기 액세스 권한 | 해당 사항 없음 |
NAT 뷰어 | ProjectRoleBinding |
해당 사항 없음 | 배포: 가져오기 및 읽기 | 해당 사항 없음 |
ObservabilityPipeline 편집자 | RoleBinding |
ObservabilityPipeline 리소스: 가져오기, 읽기, 만들기, 업데이트, 삭제, 패치 |
해당 사항 없음 | 해당 사항 없음 |
ObservabilityPipeline 뷰어 | RoleBinding |
ObservabilityPipeline 리소스: 가져오기 및 읽기 |
해당 사항 없음 | 해당 사항 없음 |
프로젝트 버킷 관리자 | RoleBinding |
버킷: 프로젝트 네임스페이스에서 읽기 및 쓰기 | 해당 사항 없음 | 해당 사항 없음 |
프로젝트 버킷 객체 관리자 | RoleBinding |
|
해당 사항 없음 | 해당 사항 없음 |
프로젝트 버킷 객체 뷰어 | RoleBinding |
버킷 및 객체: 읽기 | 해당 사항 없음 | 해당 사항 없음 |
Project Cortex Alertmanager 편집자 | RoleBinding |
Cortex 시스템 및 Cortex Alertmanager: 읽기 및 쓰기 | 해당 사항 없음 | 해당 사항 없음 |
Project Cortex Alertmanager 뷰어 | RoleBinding |
Cortex 시스템 및 Cortex Alertmanager: 읽기 | 해당 사항 없음 | 해당 사항 없음 |
Project Cortex Prometheus 뷰어 | RoleBinding |
Cortex 시스템 및 Cortex Prometheus: | 해당 사항 없음 | 해당 사항 없음 |
프로젝트 Grafana 뷰어 | RoleBinding |
Grafana 시스템 및 Grafana: 읽기 및 쓰기 | 해당 사항 없음 | 해당 사항 없음 |
프로젝트 NetworkPolicy 관리자 | RoleBinding |
프로젝트 네트워크 정책: 프로젝트 네임스페이스에서 읽기 및 쓰기 | 해당 사항 없음 | 해당 사항 없음 |
프로젝트 뷰어 | RoleBinding |
프로젝트 네임스페이스의 모든 리소스: 읽기 | 해당 사항 없음 | 해당 사항 없음 |
프로젝트 VirtualMachine 관리자 | RoleBinding |
|
해당 사항 없음 | 해당 사항 없음 |
프로젝트 VirtualMachine 이미지 관리자 | RoleBinding |
|
해당 사항 없음 | 해당 사항 없음 |
Secret Admin | RoleBinding |
Kubernetes 보안 비밀: 읽기, 만들기, 업데이트, 삭제, 패치 | 해당 사항 없음 | 해당 사항 없음 |
Secret Viewer | RoleBinding |
Kubernetes 보안 비밀: 읽기 | 해당 사항 없음 | 해당 사항 없음 |
서비스 구성 관리자 | RoleBinding |
ServiceConfigurations : 읽기 및 쓰기
|
해당 사항 없음 | 해당 사항 없음 |
서비스 구성 뷰어 | RoleBinding |
ServiceConfigurations : 읽음
|
해당 사항 없음 | 해당 사항 없음 |
볼륨 복제 관리자 | ClusterRoleBinding |
Volume failovers, volume relationship replicas :
만들기, 가져오기, 목록, 보기, 삭제
|
해당 사항 없음 | 해당 사항 없음 |
Workbench Notebooks 관리자 | RoleBinding |
해당 사항 없음 |
|
해당 사항 없음 |
Workbench Notebooks 뷰어 | RoleBinding |
해당 사항 없음 |
|
해당 사항 없음 |
워크로드 뷰어 | ProjectRoleBinding |
해당 사항 없음 |
|
해당 사항 없음 |
일반적인 사전 정의된 ID 및 액세스 역할
일반적인 역할 | ||||
---|---|---|---|---|
이름 | Kubernetes 리소스 이름 | 초기 관리자 | 레벨 | 유형 |
AI Platform 뷰어 | ai-platform-viewer |
거짓 | 프로젝트 | Role |
DNS 서픽스 뷰어 | dnssuffix-viewer |
거짓 | 조직 | Role |
흐름 로그 관리자 | flowlog-admin |
거짓 | 조직 | ClusterRole |
흐름 로그 뷰어 | flowlog-viewer |
거짓 | 프로젝트 | ClusterRole |
프로젝트 검색 뷰어 | projectdiscovery-viewer |
거짓 | 프로젝트 | ClusterRole |
공개 이미지 뷰어 | public-image-viewer |
거짓 | 조직 | Role |
시스템 Artifact Registry anthos-creds 보안 비밀 모니터 | sar-anthos-creds-secret-monitor |
거짓 | 조직 | Role |
시스템 Artifact Registry gpc-system secret 모니터 | sar-gpc-system-secret-monitor |
거짓 | 조직 | Role |
시스템 Artifact Registry harbor-system 보안 비밀 모니터 | sar-harbor-system-secret-monitor |
거짓 | 조직 | Role |
가상 머신 유형 뷰어 | virtualmachinetype-viewer |
거짓 | 조직 | OrganizationRole |
VM 유형 뷰어 | vmtype-viewer |
거짓 | 조직 | Role |
일반적인 사전 정의된 ID 및 액세스 역할
일반적인 역할 | ||||
---|---|---|---|---|
이름 | 바인딩 유형 | 관리자 클러스터 권한 | Kubernetes 클러스터 권한 | 에스컬레이션 대상 |
AI Platform 뷰어 | RoleBinding |
사전 학습된 서비스: 읽기 | 해당 사항 없음 | 해당 사항 없음 |
DNS 서픽스 뷰어 | ClusterRoleBinding |
DNS 서픽스 구성 맵: 읽기 | 해당 사항 없음 | 해당 사항 없음 |
흐름 로그 관리자 | ClusterRoleBinding |
흐름 로그 리소스: 가져오기 및 읽기 | 흐름 로그 리소스: 가져오기 및 읽기 | 해당 사항 없음 |
흐름 로그 뷰어 | ClusterRoleBinding |
흐름 로그 리소스: 생성, 가져오기, 읽기, 패치, 업데이트, 삭제 | 흐름 로그 리소스: 생성, 가져오기, 읽기, 패치, 업데이트, 삭제 | 해당 사항 없음 |
프로젝트 검색 뷰어 | ClusterRoleBinding |
프로젝트: 읽기 | 해당 사항 없음 | 해당 사항 없음 |
공개 이미지 뷰어 | RoleBinding |
VM 이미지: 읽기 | 해당 사항 없음 | 해당 사항 없음 |
시스템 Artifact Registry anthos-creds 보안 비밀 모니터 | RoleBinding |
anthos-creds 보안 비밀: 가져오기 및 읽기 |
anthos-creds 보안 비밀: 가져오기 및 읽기 |
해당 사항 없음 |
시스템 Artifact Registry gpc-system secret 모니터 | RoleBinding |
gpc-system 보안 비밀: 가져오기 및 읽기 |
gpc-system 보안 비밀: 가져오기 및 읽기 |
해당 사항 없음 |
시스템 Artifact Registry harbor-system 보안 비밀 모니터 | RoleBinding |
harbor-system 보안 비밀: 가져오기 및 읽기 |
harbor-system 보안 비밀: 가져오기 및 읽기 |
해당 사항 없음 |
가상 머신 유형 뷰어 | OrganizationRoleBinding |
해당 사항 없음 | VM 유형: 읽기 | 해당 사항 없음 |
VM 유형 뷰어 | ClusterRoleBinding |
VM 유형: 읽기 | 해당 사항 없음 | 해당 사항 없음 |
리소스에 대한 액세스 권한을 부여하는 방법에는 두 가지가 있습니다.
CLI를 사용하여 역할 바인딩 설정
관리자 클러스터의 AO 액세스
인프라 운영자 (IO) 및 플랫폼 관리자 (PA)와 달리 GDC는 애플리케이션 운영자 (AO)를 ClusterRoleBinding
가 아닌 RoleBinding
를 통해 Project
에 바인딩합니다.
AO에 관리자 클러스터 액세스 권한을 부여하려면 다음 단계를 완료하세요.
AO 액세스에 사용하는 이메일을 내보냅니다. 예를 들어
ao-alice@example.com
과 같은 이메일입니다.export AO_EMAIL=AO_EMAIL
iam-test
네임스페이스에서${AO_EMAIL}
프로젝트 IAM 관리자 액세스 권한을 부여하는 역할 바인딩을 만듭니다.kubectl create --kubeconfig PA_KUBECONFIG \ rolebinding $AO_EMAIL-project-iam-admin \ --role=project-iam-admin --user=$AO_EMAIL \ --namespace=iam-test
project-iam-admin
역할은 GDC의 사전 정의된 역할입니다.iam-test
Kubernetes 네임스페이스는 관리자 클러스터의iam-test
프로젝트에 해당합니다.AO 계정에
iam-test
네임스페이스에서 역할 바인딩을 만들 권한이 있는지 확인합니다.kubectl --kubeconfig AO_KUBECONFIG auth can-i create rolebinding -n iam-test
다음과 같이 출력이 표시됩니다.
yes
bar
네임스페이스에서${AO_EMAIL}
프로젝트 뷰어 액세스 권한을 부여하는 역할 바인딩을 만듭니다.kubectl create --kubeconfig PA_KUBECONFIG \ rolebinding $AO_EMAIL-project-viewer \ --role=project-viewer --user=$AO_EMAIL \ --namespace=bar
project-viewer
역할은 GDC의 사전 설정된 역할입니다.bar
Kubernetes 네임스페이스는 조직 관리자 클러스터의bar
프로젝트에 해당합니다.AO 계정에
bar
네임스페이스에서 역할 바인딩을 만들 권한이 없는지 확인합니다.kubectl --kubeconfig AO_KUBECONFIG auth can-i create rolebinding -n bar
다음과 같이 출력이 표시됩니다.
no
선택사항: 역할 바인딩을 삭제하여 AO 계정에 부여된 권한을 취소합니다.
kubectl --kubeconfig PA_KUBECONFIG delete rolebinding $AO_EMAIL-project-iam-admin -n iam-test
사용자 클러스터의 AO 액세스
AO는 ProjectRole
및 ProjectRoleBinding
리소스를 사용하여 사용자 클러스터에 대한 네임스페이스 액세스 권한을 획득합니다. 하지만 PA는 사전 설정된 OrganizationRole
및 ProjectRoleBinding
리소스를 사용하여 사용자 클러스터에서 AO 조직 전체 권한을 부여할 수 있습니다.
다음 단계에 따라 AO에게 사용자 클러스터에 대한 액세스 권한을 제공하세요.
사용자 클러스터에 대한 액세스 권한을 부여하려면 프로젝트 IAM 관리자 역할이 있어야 합니다.
iam-test
네임스페이스의 모든 사용자 클러스터에서${AO_EMAIL}
네임스페이스 관리자 액세스 권한을 부여하는ProjectRoleBinding
리소스를 만듭니다.kubectl --kubeconfig AO_KUBECONFIG apply -f - <<EOF apiVersion: resourcemanager.gdc.goog/v1 kind: ProjectRoleBinding metadata: name: ${AO_EMAIL%@*}-namespace-admin namespace: iam-test spec: roleRef: apiGroup: resourcemanager.gdc.goog kind: ProjectRole name: namespace-admin subjects: - apiGroup: rbac.authorization.k8s.io kind: User name: ${AO_EMAIL} EOF
CLI 및 kubectl로 로그인 섹션의 안내에 따라 사용자 클러스터의 사용자 인증 정보를 가져와
AO_USER_CLUSTER_KUBECONFIG
변수로 내보냅니다.export AO_USER_CLUSTER_KUBECONFIG=GENERATED_KUBECONFIG
AO 계정에
iam-test
네임스페이스에서 배포를 만들 권한이 있는지 확인합니다.kubectl --kubeconfig ${AO_USER_CLUSTER_KUBECONFIG} auth can-i create deployment -n iam-test
다음과 같이 출력이 표시됩니다.
yes
선택사항: 테스트 AO 계정에 부여된 권한을 취소하려면 프로젝트 역할 바인딩을 삭제합니다.
kubectl --kubeconfig ${AO_USER_CLUSTER_KUBECONFIG} delete projectrolebinding ${AO_EMAIL%@*}-namespace-admin -n iam-test
UI를 사용하여 프로젝트 전체 역할 바인딩 설정
애플리케이션 운영자는 프로젝트 리소스에 액세스할 수 있도록 다른 애플리케이션 운영자를 프로젝트에 추가합니다.
역할 바인딩을 설정하는 데 필요한 권한을 얻으려면 프로젝트 IAM 관리자에게 프로젝트 IAM 관리자 역할을 부여해 달라고 요청하세요.
다음 단계에 따라 역할 바인딩을 설정합니다.
- GDC 오프라인 어플라이언스 콘솔에 로그인합니다.
- 프로젝트를 선택합니다.
- 탐색 메뉴에서 액세스 관리를 클릭합니다.
- 구성원 추가를 클릭합니다.
- ID 공급업체 목록에서 ID 공급업체를 선택합니다.
- 개별 사용자 또는 그룹을 추가할지 선택합니다.
- 사용자 이름 또는 그룹 별칭 필드에 사용자 이름, 이메일 주소 또는 별칭을 입력합니다.
- 역할 목록에서 사용자 또는 그룹에 할당할 역할을 선택합니다(예: 프로젝트 뷰어).
- 추가를 클릭합니다.
UI를 사용하여 역할 바인딩 삭제
더 이상 액세스 권한이 필요하지 않으면 구성원과 연결된 역할, 권한, 액세스 권한을 삭제합니다.
다음 단계를 따라 회원을 삭제하세요.
- GDC 오프라인 어플라이언스 콘솔에 로그인합니다.
- 프로젝트를 선택합니다.
- 탐색 메뉴에서 액세스 관리를 클릭합니다.
- 승인된 구성원 목록에서 구성원을 선택합니다.
- 구성원 삭제를 클릭합니다.
- 메시지가 표시되면 구성원 삭제를 클릭하여 확인합니다.