이 문서에서는 gdcloud CLI를 사용하여 Google Distributed Cloud (GDC) 에어 갭에서 표준 클러스터의 권한을 관리하는 방법을 설명합니다. 표준 클러스터는 맞춤 워크로드에 더 큰 유연성과 제어 기능을 제공하는 최소 기본 서비스가 포함된 프로젝트 범위의 구성 가능한 Kubernetes 환경입니다.
표준 클러스터 및 기타 클러스터 유형에 대한 자세한 내용은 Kubernetes 클러스터 구성을 참조하세요.
이 문서는 GDC 프로젝트 내에서 리소스를 관리하고 보호해야 하는 개발자 운영 또는 데이터 과학자와 같은 애플리케이션 운영자 그룹 내의 사용자를 대상으로 합니다. 자세한 내용은 GDC 에어 갭 문서의 대상을 참조하세요.
시작하기 전에
표준 클러스터에 대한 액세스를 관리하기 전에 필요한 권한이 있어야 하고 환경을 준비해야 합니다.
IAM 역할 요청
수행해야 하는 작업에 따라 조직 IAM 관리자에게 다음 역할을 요청하세요.
- 프로젝트 IAM 관리자 (
project-iam-admin): 프로젝트 내에서 표준 클러스터의 역할 바인딩을 만들고, 업데이트하고, 삭제합니다. - 표준 클러스터 관리자 (
standard-cluster-admin): 특정 표준 클러스터 내에서 역할 바인딩을 만들고, 업데이트하고, 삭제합니다.
개발 환경 준비
gdcloud CLI를 다운로드하고 설치하지 않았다면 다운로드하고 설치합니다.
표준 클러스터 액세스 권한 부여
프로젝트 IAM 관리자 (project-iam-admin) 역할이 있는 사용자는 표준 클러스터 내에서 액세스를 관리하는 데 필요한 역할을 다른 사용자에게 부여할 수 있습니다.
구성된 ID 공급업체로 로그인합니다. gdcloud CLI를 사용하여
사용자에게 프로젝트의 표준 클러스터 관리자 (
standard-cluster-admin) 역할을 부여합니다. 이 명령어는 사용자를 역할에 바인딩하여 표준 클러스터 내에서 액세스를 관리할 수 있도록 합니다.역할에 대한 자세한 내용은 사전 정의된 역할 설명 및 프로젝트의 역할 정의 를 참조하세요.
gdcloud projects add-iam-policy-binding PROJECT \ --role=ROLE \ --member=user:USER_ACCOUNT다음 변수를 바꿉니다.
PROJECT: 표준 클러스터가 있는 프로젝트의 이름입니다.ROLE: 부여할 역할의 이름입니다(예:standard-cluster-admin).USER_ACCOUNT: 조직과 연결된 ID 공급업체 프리픽스 (예:idpprefix-user@example.com)를 포함하여 역할을 부여할 사용자 계정입니다. 사용되는 특정 프리픽스는 조직의 IdP 구성에 따라 다릅니다. 자세한 내용은 ID 공급업체에 연결 을 참조하세요.
다음 예시에서는 ID 공급업체 프리픽스가 프로젝트
foo의fop-라고 가정하고user@example.com에 표준 클러스터 관리자 역할을 부여합니다.gdcloud projects add-iam-policy-binding foo \ --role=standard-cluster-admin \ --member=user:fop-user@example.com
표준 클러스터 내에서 액세스 관리
표준 클러스터 관리자 (standard-cluster-admin) 역할이 있는 사용자는 표준 클러스터 내에서 액세스 권한을 부여할 수 있습니다.
구성된 ID 공급업체로 로그인합니다. gdcloud CLI를 사용하여
--standard플래그를 사용하여 표준 클러스터의 kubeconfig 파일을 생성합니다. 이 플래그는 표준 클러스터를 타겟팅하는 데 필요합니다.export KUBECONFIG=KUBECONFIG_FILE gdcloud clusters get-credentials STANDARD_CLUSTER_NAME --standard --project=PROJECT다음 변수를 바꿉니다.
KUBECONFIG_FILE: kubeconfig 파일의 경로(예:standard-cluster-kubeconfig.yaml)입니다.STANDARD_CLUSTER_NAME: 표준 클러스터의 이름입니다.PROJECT: 표준 클러스터가 있는 프로젝트의 이름입니다.
kubectl을 사용하여 표준 클러스터 내에서 권한을 정의합니다.standard-cluster-admin권한이 있는 사용자는 커스텀Role및ClusterRole객체를 만들 수 있습니다. 이러한 권한을 부여하기 위해 사용자는 해당Rolebinding및ClusterRoleBinding객체를 만들어 역할을 사용자 또는 서비스 계정과 같은 특정 주체에 바인딩할 수 있습니다.다음 예시에서는
kubectl을 사용하여test네임스페이스에test-role이라는 샘플 커스텀Role을 만듭니다.kubectl apply -f - <<EOF apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: name: test-role namespace: test rules: - apiGroups: - "" resources: - configmaps verbs: - get EOF다음 예시에서는
test네임스페이스에서test-role이라는Role의RoleBinding을 만듭니다. ID 공급업체 프리픽스가fop-인 사용자 alice@example.com과default네임스페이스의my-service-account라는ServiceAccount에 권한을 부여합니다.kubectl apply -f - <<EOF apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: name: test-role-binding namespace: test subjects: - kind: User name: fop-alice@example.com apiGroup: rbac.authorization.k8s.io - kind: ServiceAccount name: my-service-account namespace: default roleRef: kind: Role name: test-role apiGroup: rbac.authorization.k8s.io EOF